/**
 * Description: Bubbles window events
 * Author: Peter Hammans | Wead Ltd 
 * Email: peter.hammans@wead.co.uk
 **/
function attachEvent(oFunction, sEvent) {
	var oOriginal = window[sEvent];
	if(typeof(oOriginal) != "function") {
		window[sEvent] = oFunction;
	} else {
		window[sEvent] = function() {
			oOriginal();
			oFunction();
		};
	};
};

/**
 * Description: Sets events globally for form fields
 * Author: Andrew Goodson | CDS 
 **/
 var oFields = {
  //array of control ids that need the watermarking control adding
	aIds : ["q"],
	init : function() {
		for(var i = 0; i < oFields.aIds.length; i++) {
			oFields.setupWatermarking(oFields.aIds[i]);
		};
	},
	
	//Setup the watermarking for a particular element id
	setupWatermarking: function(sId) {
		var oElement = document.getElementById(sId);
		if(oElement) 
		{
	    //Add the onsubmit handler to the form if it isn't already defined	  
	    //(this will clear the control when the form is submitted and the default text is still present )
	    if ( oElement.form )
	    {
	      if ( null == oElement.form.onsubmit )
	      {
  	      oElement.form.onsubmit = function () { 
  	        var textboxes = document.getElementsByTagName("input");
            for (var i = 0; i < textboxes.length; i++)
            {
              if ((textboxes[i].type == "text" ) && (textboxes[i].isblank == "true") )
              {
                textboxes[i].value = "";
              }
            }
  	      };
	      }
	    }
		  
		  //Copy the current value into the defaulttext attribute
		  oElement.defaulttext = oElement.value;
		  		  
		  //Add an attribute to the control to indicate that the default text is set (and it is effectively blank)
		  //and then set the default value back into the control
		  oElement.isblank = "true";
		  
		
		  ///////////////////////////////////////////////////////////////////////////////
		  //Add an onfocus handler that will clear the text when the control gets focus
		  ///////////////////////////////////////////////////////////////////////////////
			oElement.onfocus = function() 
			{
  			if ( oElement.isblank == "true" )
			  {
  			  oElement.value = "";
  			}
  		};
  		
  		///////////////////////////////////////////////////////////////////////////////
  		//Add an onblur handler that will restore the default text if it is unchanged
  		//or clear the 'isblank' flag if content has been changed
  		///////////////////////////////////////////////////////////////////////////////
			oElement.onblur = function() 
			{
			  if (oElement.value == "")
        {
          oElement.value = oElement.defaulttext;
          oElement.isblank = "true";
        }
        else
        {
          oElement.isblank  = "false";
        }
			};
			
			oElement.onkeypress = function()
			{
			  oElement.onblur();
			  oElement.onfocus();
			};
			
		};
	}
};


function forceCaching() {
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch(e) {};
};

/**
 * Description: 
 * Author: Peter Hammans | Wead Ltd 
 * Email: peter.hammans@wead.co.uk
 **/
 var oDate = {
	aMonths : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
	init : function() {
		var oContainer = document.getElementById("date");
		if(oContainer) {
			var oInner = oContainer.getElementsByTagName("em");
			if(oInner) {
				var oNow = new Date();
				oInner[0].innerHTML = oNow.getDate() + " " + oDate.aMonths[oNow.getMonth()] + " " + (oNow.getYear() < 1900 ? (oNow.getYear() + 1900) : oNow.getYear());
			};
		};
	}
};

/**
 * Description: Switch the date depending on language passed in
 **/
function displayDate(language)
{
	var aMonths = [];

	if(language == 'CYM')
	{
		aMonths = ["Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"]
	}
	else
	{
		aMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

	}

	
	var oContainer = document.getElementById("date");
	if(oContainer) 
	{
		var oInner = oContainer.getElementsByTagName("em");
		if(oInner) 
		{
			var oNow = new Date();
			oInner[0].innerHTML = oNow.getDate() + " " + aMonths[oNow.getMonth()] + " " + (oNow.getYear() < 1900 ? (oNow.getYear() + 1900) :oNow.getYear());
		};
	};

}

/* search form fields */
function findField(frm, field){
	 for (var i=0;i<frm.length;i++){
	 	if (document.forms[frm].elements[i].name == field) return i;
	 }
	 return -1;
}

function searchFocus(frm, field, emptyTxt){
	var fieldIdx = findField(frm, field);
	if (fieldIdx==-1) return;

	if (document.forms[frm].elements[fieldIdx].value == emptyTxt){
		document.forms[frm].elements[fieldIdx].value = '';
	}
}

function searchBlur(frm, field, emptyTxt){
	var fieldIdx = findField(frm, field);
	if (fieldIdx==-1) return;

	if (document.forms[frm].elements[fieldIdx].value == ''){
		document.forms[frm].elements[fieldIdx].value = emptyTxt;
	}
	
	return false;
}

function searchValidate(frm, field, emptyTxt){
	var fieldIdx = findField(frm, field);
	if (fieldIdx==-1) return;
	
	if ((document.forms[frm].elements[fieldIdx].value != '') && 
		(document.forms[frm].elements[fieldIdx].value != emptyTxt)){
		return true;
	}
	else
	{
		alert('Please type in the term you are searching for, then click go');
		return false;
	}
}

attachEvent(forceCaching, "onload");
attachEvent(oFields.init, "onload");
//attachEvent(oDate.init, "onload");