function getItem(itemId){
 if (document.getElementById) return document.getElementById(itemId);
 else if (document.all) return document.all[itemId];
 else return new Object();
 }

//Colours current menu item.
function init(i){
 if (window.top != window.self) {
  try{
   window.top.location.href = location.href + getsource();
   }
  catch (e) {}
  }
 if (i>0) {
  getItem("menu" + i).className = "thismenu";
 }}

//On mouseover menu item.
function menu(item){
 item.className += " mouseovermenu";
 }

//On mouseout menu item.
function nomenu(item){
 item.className = item.className.split(" ")[0];
 }

//Returns the parameter value of key from the URI.
function param(key){
 var pat = new RegExp("([?]|&)" + key + "=([^&]*)");
 var text = pat.exec(location.search);
 return text ? decodeURIComponent(text[2]) : "";
 }

//Returns source taken from variable sourceCode or query string or referrer.
var sourceCode;
function getsource(){
 var source = sourceCode;
 if (!source) {
  source = param("source");
  }
 if (!source) {
  var referrer = document.referrer;
  if (referrer) {
   if (!(/^http:\/\/(www[.])?logicarchitect/.test(referrer))) source = referrer;
  }}
 return source ? "?source=" + encodeURIComponent(source.substr(0,50)) : "";
 }

//Appends source when user clicks on a link.
function doopen(item, e, newWindow){
 if (!e) var e = window.event;
 e.cancelBubble = true;
 if (e.stopPropagation) e.stopPropagation();
 var source = getsource();
 if (newWindow) {
  window.open(getItem(item).href + source);
  }
 else {
  location.href = getItem(item).href + source;
 }}

//Cookie procedures.
function setCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
  + ";domain=.logicarchitect.co.uk;path=/;expires="+expire.toGMTString();
 }

function getCookie(cookieName) {
 var dc = document.cookie;
 var prefix = cookieName + "=";
 var begin = dc.indexOf("; " + prefix);
 if (begin == -1) {
  begin = dc.indexOf(prefix);
  if (begin != 0) return null;
 } else {
  begin += 2;
 }
 var end = document.cookie.indexOf(";", begin);
 if (end == -1) {
  end = dc.length;
 }
 return unescape(dc.substring(begin + prefix.length, end));
}

// Google event tracking to track each click from one page to another.
// Saves page name in a cookie as other methods do not reliably find last page visited.
function trackEvent(){
 var lastref;
 if (getCookie("pagename")) {
  lastref = getCookie("pagename");
  }
 else {
  lastref = "(none)";
  }
 var thisref = location.href;
 var newref = /logicarchitect([.]co[.]uk)?(\x2F|\x5C)(.*).htm/.exec(thisref);
 try {
  var pagename = decodeURIComponent(newref[3]);
  }
 catch(err) {}
 if (!pagename) {
  pagename = thisref;
  }
 setCookie("pagename",pagename);
 pageTracker._trackEvent('Clicks', lastref, pagename);
 }

//For contact form
function checkFm(){
 var fm = getItem("cnt");
 var erm = getItem("errMsg");
 erm.innerHTML="&nbsp;"
 if (fm.first_name.value==""){
  erm.innerHTML="Please supply your first name";
  goTop();
  return;
  }
 if (fm.last_name.value==""){
  erm.innerHTML="Please supply your last name";
  goTop();
  return;
  }
 if (fm.address_country.value=="other" && fm.address_country_other.value==""){
  erm.innerHTML="Please supply your address country";
  goTop();
  return;
  }
 if (!/^.+@[^\.].*\.[a-z]{2,}$/.test(fm.email.value)){
  erm.innerHTML="Please supply a valid e-mail address";
  goTop();
  return;
  }
 if (fm.question.value==""){
  erm.innerHTML="Please supply your details of your enquiry";
  goTop();
  return;
  }
 getItem("privacy").value = getItem("private").checked;
 fm.submit();
 }
function cntOther(){
 if(getItem("cnt").address_country.value=="other"){
  getItem("cnt").address_country_other.style.display=""
  }
 else{
  getItem("cnt").address_country_other.style.display="none"
 }}

//For flash movies
function showFlash(flashid){
 var i;
 for (i=1; i<=flashCount; i++) {
  getItem("v" + i).style.display = "none";
  }
 getItem(flashid).style.display = "block";
 getItem("text1").style.backgroundColor = "#F7FAFF";
 getItem("bottom").style.backgroundColor = "#F7FAFF";
 }
function hideFlash(flashid){
 getItem(flashid).style.display = "none";
 getItem("text1").style.backgroundColor = "white";
 getItem("bottom").style.backgroundColor = "white";
 }

//Hide all except current item.
function expand(thisItem){
 var i;
 for (i=1; i<=expandCount; i++) {
  getItem("a" + i).style.display = "none";
  }
 var ansID="a" + thisItem.id.substr(1);
 getItem(ansID).style.display="inline";
 }

