/*** Utils ***/
/* Triggers */
var ns6=document.getElementById&&!document.all
var ie5=document.all
function Trigger(strEvent, idTarget, func)
{
  if (ie5)
  {
    if (document.getElementById(idTarget).attachEvent)    /* not supported on ie5 on the mac */
       document.getElementById(idTarget).attachEvent(strEvent, func)
  }
  else if (ns6)
  {
    if (strEvent=='onmousedown') strEvent='mousedown'
    if (strEvent=='onmouseover') strEvent='mouseover'
    if (strEvent=='onmouseout') strEvent='mouseout'
    if (strEvent=='onclick') strEvent='click'
    document.getElementById(idTarget).addEventListener(strEvent, func, false)
  }
}
function TriggerManager()
{
  this.CreateTrigger = tm_create_trigger
  this.GetParam = tm_getparam
  this.aTriggers = Array()
  return this
}
function tm_create_trigger(etype, target, func, param1, param2)
{
  this.aTriggers[this.aTriggers.length] = [etype, target, func, param1, param2]
  Trigger(etype, target, func)
}
function tm_getparam(e, func, p)
{
  var target = ie5 ? e.srcElement : e.target
  for (i=0; i<this.aTriggers.length; i++)
  {
    if (target==document.getElementById(this.aTriggers[i][1]) && ('on'+e.type)==this.aTriggers[i][0] && func==this.aTriggers[i][2])
    {
      if (p==1) return this.aTriggers[i][3]
      else if (p==2) return this.aTriggers[i][4]
      else return ''
    } 
  }
  return ''
}

/* Cookies */
function ReadCookie(cookieName) 
{
  var CookieString = document.cookie
  var CookieSet = CookieString.split (';')
  var SetSize = CookieSet.length
  var CookiePieces
  var ReturnValue = ""
  var x = 0;

  for (x = 0; ((x < SetSize) && (ReturnValue == "")); x++) 
  {
    CookiePieces = CookieSet[x].split('=')
    if (CookiePieces[0].substring(0,1) == ' ') 
      CookiePieces[0] = CookiePieces[0].substring(1, CookiePieces[0].length)
    if (CookiePieces[0] == cookieName) 
      ReturnValue = unescape(CookiePieces[1])
  }
  return ReturnValue
}

function WriteCookie(cookieName, cookieValue, expiry) 
{
  var expDate = new Date()

  if(expiry)
  {
    expDate.setTime (expDate.getTime() + expiry)
    document.cookie = cookieName + "=" + escape (cookieValue) + "; expires=" + expDate.toGMTString()
  }
  else
  {
    document.cookie = cookieName + "=" + escape (cookieValue)
  }
}

/* Item Sets */
function ItemSet()
{
  this.aItems = Array()
  this.AddItem = item_set_add_item
  this.GetLength = item_set_get_length
  this.GetItem = item_set_get_item
  return this
}
function item_set_add_item(itemId){if (itemId>=0) this.aItems[this.aItems.length] = itemId}
function item_set_get_length(){return this.aItems.length}
function item_set_get_item(index){return this.aItems[index]}

/* Trigger Event Handlers */
function SetElementContentEvent(e)		
{
  var p1 = TM.GetParam(ie5 ? event : e, SetElementContentEvent, 1)
  var p2 = TM.GetParam(ie5 ? event : e, SetElementContentEvent, 2)
  WriteToLayer(p1, p2)
}
function ValidateSubmitFormEvent(e)
{
  var p1 = TM.GetParam(ie5 ? event : e, ValidateSubmitFormEvent, 1)
  if (ValidateForm(document.forms[p1])) document.forms[p1].submit()
  else alert("All fields are required except 'Title' and 'Mobile', please complete the form and continue.")
}
/* Misc */
function WriteToLayer(id, content) 
{
  if (document.getElementById(id)) 
    document.getElementById(id).innerHTML = content;
}


