/*  Program: sitelib.js
 *     Date: 9 May 2009
 *   Author: Steven James Tierney
 * Comments: JS library of stuff
 */

function f_DispErrors( ipMsgArray ) {
	var vErrors = "";
	ipMsgArray.each( function(vMsg) {
		vErrors += f_AddError( vMsg.msgtext );
	});
	alert( vErrors );
} // f_DispErrors

function f_GetBaseUrl() {
  return document.getElementsByTagName('base')[0].href;
}

function f_LoadPage(ip_url) {
  $('mainiframe').src = ip_url;
} // function loadPage

function f_SetSelect( ipSelObj, ipSelVal ) {
  // Sets the Selection Box object passed in to the value passed in.
  var vLoop = 0;
  var vOptions = ipSelObj.options;
  var vOption = "";
  
  for (vLoop = 0; vLoop < vOptions.length; vLoop++ ) {
    vOption = vOptions[vLoop];
    if (vOption.value == ipSelVal) {
    
      // Got it, set the select
      ipSelObj.selectedIndex = vLoop;
      vLoop = vOptions.length;  // exit
		}
	} // for vLoop
} // f_SetSelect
	
function f_AddError( ipErrMsg ) {
  var vAlertText = ipErrMsg + "\n";
  return vAlertText;
}
	
function f_DropSelectOptions ( ipSelectObj ) {
  // Drop all options in the Select
	while (ipSelectObj.options.length > 0) {
	  try {
		  // Standards Compliant
		  ipSelectObj.options[0].remove(); 
		  } 
	  catch (e) {
		  // Internet Explorer
		  ipSelectObj.remove(0);
	      }
	} // for
} // function f_DropSelectOptions

function f_DispAbout ( ipContainerObj, ipAboutArray ) {
	// Show News
	var vSnapContDiv;
	var vSnapHeadDiv;
	var vSpan01;
	var vSpan02;
	var vH3;
	var vSnapBodyDiv;
	var vSnapTextDiv;
	var vPlainTextDiv;
	var vPhotoDiv;
	var vHr;
	var vSnapFootDiv;
	var vSpan03;
	var vSpan04;
	var vSpanText;

	ipContainerObj.innerHTML = "";

	ipAboutArray.each( function( vAbout ) {
		var vPhotoArray = [];
		
		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "about_" + vAbout._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "abouthead_" + vAbout._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "aboutspan01_" + vAbout._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "aboutspan02_" + vAbout._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "abouth3_" + vAbout._ID;
		vH3.innerHTML = "About Us";
		vSnapHeadDiv.appendChild(vH3);

		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.id = "about_plaintext";
		vPlainTextDiv.className = "plaintext";
		vSnapTextDiv.appendChild(vPlainTextDiv);
		
		vPhotoDiv = document.createElement('div');
		vPhotoDiv.id = "photodiv";
		vPhotoDiv.className = "photocont";
		vPlainTextDiv.appendChild(vPhotoDiv);

		vSpanText = document.createElement('span');
		vSpanText.innerHTML = vAbout._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        = "aboutspan03_" + vAbout._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "aboutspan04_" + vAbout._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);

		// Get the Photos for the About article
		vPhotoArray = f_GetPhoto( vPhotoDiv, 'index', '1', '', '' );
	}) // each

} // f_DispAbout

function f_DispPhoto ( ipContainerObj, ipPhotoArray ) {
	var vImg;
	var vDiv;

	// Remove the Spinner
	ipContainerObj.innerHTML = '';
	
	if (ipPhotoArray.length==0) {
		// Get the parent of the photo container
//		var vElt = ipContainerObj.parentNode.parentNode;
		// Remove the Photo Container
		ipContainerObj.remove();
		// Re-size the Photo Container parent
//		vElt.style.height="auto";
	}
	else {
		ipPhotoArray.each( function( vPhoto ) {
			
			// Create a photo for the Div
			vImg = $(document.createElement('img'));
			vImg.id = "photo_" + vPhoto._ID;
			vImg.src = f_GetBaseUrl() + "/www/site/showphoto.php?id="+vPhoto._ID;
			vImg.className = "photo_thumb";
			vImg.alt=vPhoto._Caption;
			vImg.title=vPhoto._Caption;
			ipContainerObj.appendChild(vImg);
			ipContainerObj.style.visibility = "visible";
			
			vDiv = document.createElement('div');
			vDiv.id="photo_caption_" + vPhoto._ID;
			vDiv.className="photo_caption";
			vDiv.innerHTML=vPhoto._Caption;
			ipContainerObj.appendChild(vDiv);
						
			vImg.observe('click', function(event) { 
				window.location.href = f_GetBaseUrl() + "/www/site/viewphoto.php?id="+vPhoto._ID;
			}); // observe
			
		    // observe the vFileOpImg and do stuff appropriately
			vImg.observe('mouseover', function(event) {
				event.stop();
				try { vImg.style.cursor = "pointer"; } catch (err) {
					try { vImg.style.cursor = "hand"; } catch (err2) {  }
				}
			});
			
		}); // ipPhotoArray
	} // length > 0
} // f_DispPhoto


function f_DispStadium ( ipContainerObj, ipStadiumArray ) {
	// Show Stadium
	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;

	var vMapDiv;
	var vMapForm;
	var vMapP;
	var vMapFromInp;
	var vMapToInp;
	var vMapSubmit;
	var vMapLogo;
	
	
	ipContainerObj.innerHTML = "";
	
	ipStadiumArray.each( function( vStadium ) {
		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "stadium_" + vStadium._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "stadiumhead_" + vStadium._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "stadiumspan01_" + vStadium._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "stadiumspan02_" + vStadium._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "stadiumh3_" + vStadium._ID;
		vSnapHeadDiv.appendChild(vH3);

		vA = document.createElement('a');
		vA.id        = "stadiuma_" + vStadium._ID;
		vA.href      = f_GetBaseUrl() + "/www/site/showitem.php?type=stadium&id="+vStadium._ID;
		vA.innerHTML = vStadium._Name;
		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 = vStadium._Desc;
		vPlainTextDiv.appendChild(vSpanBold);

		if (vStadium._UseMap == 't') {

			vMapContDiv = document.createElement('div');
			vMapContDiv.id = "mapcont";
			vPlainTextDiv.appendChild(vMapContDiv);
			
			vMapDiv = document.createElement('div');
			vMapDiv.id = "map";
			vMapContDiv.appendChild(vMapDiv);
			
			f_DispStadiumMap( vStadium );

			vMapFormCont = document.createElement('div');
			vMapFormCont.id = "formcont";
			vMapContDiv.appendChild(vMapFormCont);
			
			vMapForm = document.createElement('form');
			vMapForm.action = "http://maps.google.com/maps";
			vMapForm.method = "get";
			vMapForm.target = "_blank";
			vMapFormCont.appendChild(vMapForm);
			
			vMapP = document.createElement("p");
			vMapP.innerHTML = "Enter your Postcode to get driving directions to " + vStadium._Name + ":";
			vMapForm.appendChild(vMapP);
			
			vMapFromInp = document.createElement("input");
			vMapFromInp.type = "text";
			vMapFromInp.id = "saddr";
			vMapFromInp.name = "saddr";
			vMapFromInp.maxlength = "12";
			vMapForm.appendChild(vMapFromInp);
			
			vMapToInp = document.createElement("input");
			vMapToInp.type = "hidden";
			vMapToInp.id = "daddr";
			vMapToInp.name = "daddr";
			vMapToInp.value = vStadium._Latitude+","+vStadium._Longitude;
			vMapForm.appendChild(vMapToInp);

			vMapSubmit = document.createElement("input");
			vMapSubmit.type = "submit";
			vMapSubmit.id = "submitdir";
			vMapSubmit.name = "submitDir";
			vMapSubmit.value = "Get Directions";
			vMapForm.appendChild(vMapToInp);

			vMapLogo = document.createElement("img");
			vMapLogo.src = f_GetBaseUrl() + "/img/maps/googlemapslogo_sm.gif";
			vMapLogo.alt = "Google Maps Logo";
			vMapLogo.className = "imgover";
			vMapForm.appendChild(vMapLogo);			
		} // if 
		
		vSpanText = document.createElement('div');
		vSpanText.innerHTML = vStadium._Directions;
		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        = "stadiumspan03_" + vStadium._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "stadiumspan04_" + vStadium._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);
	}) // each
} // f_DispStadium

function f_DispStadiumMap( ipStadiumObj ) {
	
	// Set up event to unload the map
    Event.observe(window,'unload',function(){
      	GUnload();
       	}); // observe unload 		
    // Load the map		
	Gload(ipStadiumObj._Latitude,ipStadiumObj._Longitude)		
	
} // DispStadiumMap

function f_DispFixture( ipContainerObj, ipFixtureArray ) {
	// Show Fixture
	var vSnapContDiv;
	var vSnapHeadDiv;
	var vSnapSubHeadDiv;
	var vSnapSubHeadSpan1;
	var vSnapSubHead1A;
	var vSnapSubHeadSpan2;
	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;
	var vText;

	ipContainerObj.innerHTML = "";
	
	ipFixtureArray.each( function( vFixture, index ) {
        var vPhotoDiv = [];
        var vFixDateArray = vFixture._Date.split('/');
    	var vFixDate = new Date(vFixDateArray[2],(vFixDateArray[1]-1),vFixDateArray[0], 0, 0, 0, 0);
    	var vCurDate = new Date();
    	
		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "fix_" + vFixture._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "fixhead_" + vFixture._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "fixspan01_" + vFixture._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "fixspan02_" + vFixture._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "fixh3_" + vFixture._ID;
		vSnapHeadDiv.appendChild(vH3);

		switch (vFixture._ResultType) {
			case 'tbp':
				// To Be Played
				vText = vFixture._HomeTeamName + "&nbsp;v&nbsp;" + vFixture._AwayTeamName;
				break;
			case 'aba':
				// Abandoned
				vText = vFixture._HomeTeamName + "&nbsp;A&nbsp;-&nbsp;A&nbsp;" + vFixture._AwayTeamName;
				break;
			case 'pos':
				// Postponed
				vText = vFixture._HomeTeamName + "&nbsp;P&nbsp;-&nbsp;P&nbsp;" + vFixture._AwayTeamName;
				break;
			default:
				// Played (so ft, aet, pen)
				vText = vFixture._HomeTeamName + "&nbsp;" + vFixture._HomeGoals
        				+ "&nbsp;-&nbsp;" + vFixture._AwayGoals + "&nbsp;" + vFixture._AwayTeamName;
				if (vFixture._ResultType=='aet') { vText+='&nbsp;<font size="-1">('+vFixture._HomeGoals_aet+'&nbsp;-&nbsp;'+vFixture._AwayGoals_aet+'&nbsp;aet)</font>'; }
				if (vFixture._ResultType=='pen') { vText+='&nbsp;<font size="-1">('+vFixture._HomeGoals_pen+'&nbsp;-&nbsp;'+vFixture._AwayGoals_pen+'&nbsp;pen)</font>'; }
				break;
		} // switch resulttype
		
		vA = document.createElement('a');
		vA.id        = "fixa_" + vFixture._ID;
		vA.href      = f_GetBaseUrl() + "/www/site/showitem.php?type=fixture&id="+vFixture._ID;
		vA.innerHTML = vText;
		vH3.appendChild(vA);
		
		vSnapSubHeadDiv = document.createElement('div');
		vSnapSubHeadDiv.className = "snap-subhead";
		vSnapContDiv.appendChild(vSnapSubHeadDiv);
		
		vSnapSubHeadSpan1 = document.createElement('span');
		vSnapSubHeadSpan1.className = "snap-subhead1";
		vSnapSubHeadSpan1.innerHTML = vFixture._CompetitionName; 
		vSnapSubHeadDiv.appendChild(vSnapSubHeadSpan1);

		vSnapSubHeadSpan2 = document.createElement('span');
		vSnapSubHeadSpan2.className = "snap-subhead2";
		vSnapSubHeadSpan2.innerHTML = ";&nbsp;"+vFixture._Date+"&nbsp;at&nbsp;"+vFixture._Time.substring(0,5)+";&nbsp;";
		vSnapSubHeadSpan1.appendChild(vSnapSubHeadSpan2);
		
		vText = vFixture._StadiumName;
		vSnapSubHead2A = document.createElement('a');
		vSnapSubHead2A.href      = f_GetBaseUrl() + "/www/site/showitem.php?type=stadium&id="+vFixture._Stadium;
		vSnapSubHead2A.innerHTML = vText;
		vSnapSubHeadSpan2.appendChild(vSnapSubHead2A);
		
		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);

		vPhotoDiv = document.createElement('div');
		vPhotoDiv.id = "photodiv";
		vPhotoDiv.className = "photocont";
		vPlainTextDiv.appendChild(vPhotoDiv);

		vSpanText = document.createElement('span');
		vSpanText.innerHTML = vFixture._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        = "fixturespan03_" + vFixture._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "fixturespan04_" + vFixture._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);

		// Get the Photos for the Fixture article
		vPhotoArray = f_GetPhoto( vPhotoDiv, 'fixture', vFixture._ID, 1, 0 );		
	}); // each
} // f_DispFixture

function f_DispGuest ( ipContainerObj, ipGuestArray ) {
	// Show Stadium
	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;
	var vName;
	
	
	ipContainerObj.innerHTML = "";
	
	ipGuestArray.each( function( vGuest ) {
		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "guest_" + vGuest._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "guesthead_" + vGuest._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "guestspan01_" + vGuest._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "guestspan02_" + vGuest._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "guesth3_" + vGuest._ID;
		vSnapHeadDiv.appendChild(vH3);

		vA = document.createElement('a');
		vA.id        = "guesta_" + vGuest._ID;
		vA.href      = f_GetBaseUrl() + "/www/site/showitem.php?type=guest&id="+vGuest._ID;
		vA.innerHTML = vGuest._Name;
		vName        = vGuest._Forename.capitalize();
		if (vName != "" && vGuest._Surname != "") { vName += " "; }
		if (vGuest._Surname != "") { vName += vGuest._Surname.capitalize(); } 
		if (vGuest._Location != "") { vName += ", " + vGuest._Location.capitalize(); }
		vA.innerHTML = vName;
		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 = vGuest._Date;
		vPlainTextDiv.appendChild(vSpanBold);

		vSpanText = document.createElement('div');
		vSpanText.innerHTML = vGuest._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        = "guestspan03_" + vGuest._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "guestspan04_" + vGuest._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);
	}) // each
} // f_DispGuest


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 ) {
		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 News article
		vPhotoArray = f_GetPhoto( vPhotoDiv, 'news', vNews._ID, 1, 0 );		
	}) // each

} // f_DispNews


function f_DispPlayer ( ipContainerObj, ipPlayerArray ) {
	// 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;
	var vName;
	var vTextDiv;
	var vTextLabel;
	var vText;
	var vLoop;
	
	// Initialise the container
	ipContainerObj.innerHTML = "";

	ipPlayerArray.each( function( vPlayer ) {
		var vPhotoArray = [];

		vSnapContDiv = document.createElement('div');
		vSnapContDiv.id        = "player_" + vPlayer._ID;
		vSnapContDiv.className = "snap-container";
		ipContainerObj.appendChild(vSnapContDiv);

		vSnapHeadDiv = document.createElement('div');
		vSnapHeadDiv.id        = "playerhead_" + vPlayer._ID;
		vSnapHeadDiv.className = "snap-head";
		vSnapContDiv.appendChild(vSnapHeadDiv);

		vSpan01 = document.createElement('span');
  		vSpan01.id        = "playerspan01_" + vPlayer._ID;
		vSpan01.className = "btop";
		vSnapHeadDiv.appendChild(vSpan01);

		vSpan02 = document.createElement('span')
 		vSpan02.id        = "playerspan02_" + vPlayer._ID;
 		vSpan01.appendChild(vSpan02);

		vH3 = document.createElement('h3');
		vH3.id        = "playerh3_" + vPlayer._ID;
		vSnapHeadDiv.appendChild(vH3);

		vA = document.createElement('a');
		vA.id        = "playera_" + vPlayer._ID;
		vA.href      = f_GetBaseUrl() + "/www/site/showitem.php?type=player&id="+vPlayer._ID;
		vName        = vPlayer._Forename.capitalize();
		if (vName != "" && vPlayer._Surname != "") { vName += " "; }
		if (vPlayer._Surname != "") { vName += vPlayer._Surname.capitalize(); } 
		vA.innerHTML = vName;
		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 = '';
		vPlainTextDiv.appendChild(vSpanBold);

		vPhotoDiv = document.createElement('div');
		vPhotoDiv.id = "photodiv";
		vPhotoDiv.className = "photocont";
		vPlainTextDiv.appendChild(vPhotoDiv);

		for(vLoop=0;vLoop<3;vLoop++){
			vTextDiv = document.createElement('div');
			vTextDiv.style.padding='5px 5px 5px 2px';
			vTextLabel = document.createElement('span');
			vTextLabel.style.fontWeight='bold';
			vTextDiv.appendChild(vTextLabel);
			vText  = document.createElement('span');
			vTextDiv.appendChild(vText);

			switch(vLoop){
			case 0:
				vTextLabel.innerHTML='Born:&nbsp;';
				vText.innerHTML=vPlayer._DOB;
				break;
			case 1:
				vTextLabel.innerHTML='Position:&nbsp;';
				vText.innerHTML=vPlayer._PosDesc;
				break;
			case 2:
				vTextLabel.innerHTML='';
				vText.innerHTML=vPlayer._Text;
				break;
			}
			vPlainTextDiv.appendChild(vTextDiv);
		} // for
		
		vHr = document.createElement('hr');
		vSnapTextDiv.appendChild(vHr);

		vSnapFootDiv = document.createElement('div');
		vSnapFootDiv.className = "snap-footer";
		vSnapContDiv.appendChild(vSnapFootDiv);

		vSpan03 = document.createElement('span');
		vSpan03.id        = "playerspan03_" + vPlayer._ID;
		vSpan03.className = "bbot";
		vSnapFootDiv.appendChild(vSpan03);

		vSpan04 = document.createElement('span');
		vSpan04.id        = "playerspan04_" + vPlayer._ID;
		vSpan04.className = "bbase";
		vSpan03.appendChild(vSpan04);

		// Get the Photos for the Player
		vPhotoArray = f_GetPhoto( vPhotoDiv, 'squad', vPlayer._ID, 1, 0 );		
	}) // each

} // f_DispPlayer


function f_DispSpinner( ipTargetDiv ) {
	var vDiv;
	var vImg;
	
	if ($(ipTargetDiv)) { ipTargetDiv = $(ipTargetDiv); }  
	
	vDiv = document.createElement('div');
	vDiv.id = ipTargetDiv.id + "_imgdiv";
	vDiv.style.width = "auto";
	vDiv.style.textAlign = "center";
	
	vImg = document.createElement('img');
	vImg.id = ipTargetDiv.id + "_img";
	vImg.src = f_GetBaseUrl() + "/img/ajax/spinner01.gif";
	vImg.alt = "spinner";

	vDiv.appendChild(vImg);
	ipTargetDiv.appendChild(vDiv);
	
	
} // f_DispSpinner


function f_HideSpinner( ipTargetDiv ) {
	var vDiv;
	
	if ($(ipTargetDiv)) { ipTargetDiv = $(ipTargetDiv); }  
	
	vDiv = $(ipTargetDiv.id + "_imgdiv");
	if (vDiv) { vDiv.remove(); }

} // f_HideSpinner

// f_GetCookie from http://techpatterns.com/downloads/javascript_cookies.php
// This fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function f_GetCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );

		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

//A Mask to hide all stuff below
function f_Mask ( ipDivToMask ) {

  // Allow for if a name was passed in instead of an element
  if ($(ipDivToMask)) { ipDivToMask = $(ipDivToMask); }
  if (ipDivToMask) {

	    // Create the glass div
	    var vGlassDiv             = $( document.createElement('div') );
	    vGlassDiv.id              = 'glassDiv';
	    vGlassDiv.className       = 'glassDiv';
	    vGlassDiv.style.position  = 'absolute';
	    vGlassDiv.style.visiblity = 'visible';
	    vGlassDiv.style.top       = ipDivToMask.style.top;
	    vGlassDiv.style.left      = ipDivToMask.style.left;
	    vGlassDiv.style.width     = ipDivToMask.style.width;
	    vGlassDiv.style.height    = ipDivToMask.style.height;
	    vGlassDiv.style.zIndex    = '200';
	    // Styles are in the main CSS file, where they should be 
	    document.body.appendChild(vGlassDiv);
	    
	    // Fade in the glass div
	    new Effect.Opacity(vGlassDiv, { from: 0, to: 0.75, duration: 0.125});
  } // if
} // function f_Mask

// And to get rid of the mask
function f_UnMask() {

	var vGlassDiv = $('glassDiv');
	
	if (vGlassDiv) {

      f_HideSpinner(vGlassDiv);
    	
      // Fade out the glass div
      new Effect.Opacity(vGlassDiv, { from: 0.75, to: 0, duration: 0.125, afterFinish: function() {
          // Get rid of the Glass Div
          if ($(vGlassDiv)) { $(vGlassDiv).style.visibility = "hidden"; }
          if ($(vGlassDiv)) { $(vGlassDiv).remove(); }
          }   // afterFinish
        });

      // Nuke it if it's still here for whatever reason!
      if ($(vGlassDiv)) { $(vGlassDiv).remove(); }
    }  // if vGlassDiv
} // function f_UnMask

//Captcha
function f_GetCaptcha( ipDestElt ) {
	
	// Try to log in
    var vUrl = f_GetBaseUrl() + '/src/inc/ajax.php?action=fetch&type=captcha&targetdiv='+ipDestElt;
	new Ajax.Updater(ipDestElt, vUrl, {
		evalJS: false,
		onCreate: function () {
		  $(ipDestElt).innerHTML = "";
		  f_DispSpinner( $(ipDestElt) );
		}, // onCreate
		onComplete: function (transport) {
  		  f_HideSpinner( $(ipDestElt) );
 		}  // onComplete
	}); // new Ajax.Request
}  // f_GetCaptcha

function f_PointerToHand ( ipElt ) {
	try { ipElt.style.cursor = "pointer"; } catch (err) {
		try { ipElt.style.cursor = "hand"; } catch (err2) { alert ("Err: " + err + "\nErr2: "+err2); }
	}
} // f_PointerToHand


function isNumeric(x) {
	// http://www.techfeed.net/blog/index.cfm/2006/2/23/JavaScript-isNumeric-function
	// Use this function like this: if (isNumeric(myVar)) { }
	// regular expression that validates a value is numeric
	var RegExp = /^(-)?(\d*)(\.?)(\d*)$/; // Note: this WILL allow a number that ends in a decimal: -452.
	// compare the argument to the RegEx
	// the 'match' function returns 0 if the value didn't match
	var result = x.match(RegExp);
	
	if (result==null) result=false;
	
	return result;
}

function isInteger(s) {
	// http://surf11.com/entry/157/javascript-isinteger-function
	return (s.toString().search(/^-?[0-9]+$/) == 0);
}

function f_StringToDate(ipDateStr) {
  
	var vDateArray = ipDateStr.split('/');
	var vDate = new Date();

	vDate.setFullYear(vDateArray[2],vDateArray[1],vDateArray[0]);
	vDate.setHours(0);
	vDate.setMinutes(0);
	vDate.setSeconds(0);
	vDate.setMilliseconds(0);

	return vDate;
}

function f_WatchForEmails() {

	var vOfElt;
	var vWmElt;
        try { vOfElt = $('emailtoofficialsspan'); } catch (e) {}
	try { vWmElt = $('emailtowebmasterspan'); } catch (e) {}

	if (vOfElt) {
		vOfElt.observe('click', function(event) {
			event.stop();
			// Redirect to the e-mail page
			window.location.href = f_GetBaseUrl() + '/www/site/email.php?ipc_to=officials';
		});
	} // if


	if (vWmElt) {
		vWmElt.observe('click', function(event) {
			event.stop();
			// Redirect to the e-mail page
			window.location.href=f_GetBaseUrl() + '/www/site/email.php?ipc_to=webmaster';
		});
	} // if

}
