/*  Program: newsbrowse.js
 *     Date: 9 Sep 2009
 *   Author: Steven James Tierney
 * Comments: JS for news browse page
 */
function f_DispNews ( ipContainerObj, ipNewsArray ) {
	// Show News
	var vSnapContDiv;
	var vSnapHeadDiv;
	var vSpan01;
	var vSpan02;
	var vH3;
	var vA;
	var vSnapBodyDiv;
	var vSnapTextDiv;
	var vPlainTextDiv;
	var vSpanBold;
	var vHr;
	var vSnapFootDiv;
	var vSpan03;
	var vSpan04;
	var vSpanText;
	
	// Initialise the container
	ipContainerObj.innerHTML = "";

	ipNewsArray.each( function( vNews, index ) {
		
		var vPhotoArray = [];

		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "news_" + vNews._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "newshead_" + vNews._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "newsspan01_" + vNews._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "newsspan02_" + vNews._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "newsh3_" + vNews._ID;
		vSnapHeadDiv.appendChild(vH3);

		vA = document.createElement('a');
		vA.id        = "newsa_" + vNews._ID;
		vA.href      = f_GetBaseUrl() + "/www/site/showitem.php?type="+vNews._Type+"&id="+vNews._ID;
		vA.innerHTML = vNews._Headline;
		vH3.appendChild(vA);

		vSnapBodyDiv = document.createElement('div');
		vSnapBodyDiv.className = "snap-body";
		vSnapContDiv.appendChild(vSnapBodyDiv);

		vSnapTextDiv = document.createElement('div');
		vSnapTextDiv.className = "snap-body-text";
		vSnapBodyDiv.appendChild(vSnapTextDiv);

		vPlainTextDiv = document.createElement('div');
		vPlainTextDiv.className = "plaintext";
		vSnapTextDiv.appendChild(vPlainTextDiv);

		vSpanBold = document.createElement('span');
		vSpanBold.className = "boldtext";
		vSpanBold.innerHTML = vNews._Date;
		vPlainTextDiv.appendChild(vSpanBold);

		vPhotoDiv = document.createElement('div');
		vPhotoDiv.id = "photodiv";
		vPhotoDiv.className = "photocont";
		vPlainTextDiv.appendChild(vPhotoDiv);

		vSpanText = document.createElement('span');
		vSpanText.innerHTML = vNews._Text;
		vPlainTextDiv.appendChild(vSpanText);
		
		vHr = document.createElement('hr');
		vSnapTextDiv.appendChild(vHr);

		vSnapFootDiv = document.createElement('div');
		vSnapFootDiv.className = "snap-footer";
		vSnapContDiv.appendChild(vSnapFootDiv);

		vSpan03 = document.createElement('span');
		vSpan03.id        = "newsspan03_" + vNews._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "newsspan04_" + vNews._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);

		// Get the Photos for the About article
		vPhotoArray = f_GetPhoto( vPhotoDiv, 'news', vNews._ID, 1, 0 );		
		
		if (index==(vNumToFetch-1)) { throw $break; }
	}); // each

} // f_DispNews

function f_GetNews( ipNewsType, ipStart ) {

	var vTargetDiv = $('browse_article');
	var vQtyToFetch = parseFloat(vNumToFetch+1);
	
	// Get the first two news articles
	new Ajax.Request(f_GetBaseUrl() + '/src/inc/ajax.php?action=fetch&type='+ipNewsType+'&qty='+vQtyToFetch+'&start='+ipStart, {
		evalJS: false,
		onCreate: function () {
			  f_DispSpinner( vTargetDiv );
		      }, // onCreate
		onComplete: function (transport) {
		var vMsgArray = [];
		var vNewsArray = [];
		if (transport.responseText.isJSON()) {
			// alert("is json");
			// alert("transport.responseText\n" + transport.responseText);
			var vJSON = transport.responseText.evalJSON();
			// Use the JSON to create the News Objects & Message Objects
			vNewsArray = vJSON.Response[0].News;
			vMsgArray = vJSON.Response[1].Message;
			
			if (vMsgArray[0].msgtype == "Success") {
				if (vNewsArray.length > 0) {
					// Create & show the News objects
					vNewsArray = f_CreateNews( vNewsArray );
	
					// Display the News Articles
					f_DispNews( vTargetDiv, vNewsArray );

					// Set the Prev and Next links
					f_SetLinks( ipNewsType, ipStart, vNewsArray.length==vQtyToFetch );
				} else {
					vTargetDiv.innerHTML = "No News was found";

					// Set the Prev and Next links
					f_SetLinks( ipNewsType, ipStart, false );
				} // zero-length array
			}
			else {
				f_DispErrors( vMsgArray );
			}
		}  // if Is JSON
		else {
			// alert('Error: News NOT JSON' + transport.responseText);
		}												 
	} // onComplete
	}); // new Ajax.Request
} // f_GetNews

function f_SetLinks( ipNewsType, ipStart, ipShowPrev ) {
	// Set the Prev (Older) and Next (Newer) links
	var vNext = parseFloat(ipStart) - parseFloat(vNumToFetch);
	var vPrev = parseFloat(ipStart) + parseFloat(vNumToFetch);
	var vLinkParam = "";


	// Set the Next link (Newer articles)
	if (vNext < 0) { 
		vNext = 0; 
		$('nextlink').hide();
	}
	else {
		$('nextlink').show();
	}
	
	if (ipShowPrev==true){ $('prevlink').show(); }
	else { $('prevlink').hide(); }

    vLinkParam = "'"+vNewsType+"','"+vNext+"'";
	$('nextlink').href = "javascript: f_GetNews("+vLinkParam+");"
    vLinkParam = "'"+vNewsType+"','"+vPrev+"'";
	$('prevlink').href = "javascript: f_GetNews("+vLinkParam+");"
} // f_SetLinks

Event.observe(window,'load',function(){
	f_GetNews( vNewsType, 0 );
	f_WatchForEmails();
}); // observe load 


