function isUndefined(v) {
    var undef;
    return v===undef;
}

function format (expr, decplaces)
  {
   var str = "" + Math.round (eval(expr) * Math.pow(10,decplaces))
   while (str.length <= decplaces) {
    str = "0" + str
   }
   // establish location of decimal point
   var decpoint = str.length - decplaces
   return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
  }
  // turn incoming expression into a pound value
  function decimalize (expr) {
   return "£" + format(expr,2)
  }
// JavaScript Document
function addEvent(obj, evType, fn){
   if (obj.addEventListener){
      obj.addEventListener(evType, fn, true);
      return true;
   } else if (obj.attachEvent){
      var r = obj.attachEvent("on"+evType, fn);
      return r;
   } else {
      return false;
   }
  }


  function getEventSrc(e) {
   /* Cookie-cutter code to find the source of the event */
    if (typeof e == 'undefined') {
      var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
       source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
       source = e.srcElement;
    }
    return source;
    /* End cookie-cutter code */
  }
  
  var domLoadedFunctionList=new Array();
  var domLoaded=false;
  
  function callWhenDOMLoaded(func) {
	  if (domLoaded) {
		  func();
	  } else {
	 	 domLoadedFunctionList.push(func);
	  }
  }
  
  function domLoadedEvent() {
	  domLoaded=true;
	  // quit if this function has already been called
       if (arguments.callee.done) return;

       // flag this function so we don't do the same thing twice
       arguments.callee.done = true;
	   
	   for (var i=0;i<domLoadedFunctionList.length;i++) {
		   domLoadedFunctionList[i]();
	   }
  }
  
   /* for Mozilla */
   if (document.addEventListener) {
       document.addEventListener("DOMContentLoaded", domLoadedEvent, null);
   }

   /* for Internet Explorer */
   /*@cc_on @*/
   /*@if (@_win32)
       //document.write("<script defer src="+baseurl+"/js/ie_onload.js><"+"/script>");
   /*@end @*/

   /* for other browsers */
   window.onload = domLoadedEvent;