function trim(sString)
{
  while (sString.substring(0,1) == " ") sString = sString.substring(1, sString.length);
  while (sString.substring(sString.length-1, sString.length) == " ") sString = sString.substring(0,sString.length-1);
  return sString;
}

function PlaySound(relurl) 
{
          
 var soundUrl;

 soundUrl="http://abby.chuala.com/dev"+relurl;

 
 if (navigator.platform=="Win32") {
  if (navigator.appName=="Netscape" || navigator.appName=="Opera" ) {
   document.getElementById("dummyspan").innerHTML=
    '<embed autostart=true loop=false type="application/x-mplayer2" src="'+soundUrl+'" width=0 height=1></embed>';
   return;
  } else {
   document.getElementById("dummyspan").innerHTML=
    '<embed hidden=true autostart=true loop=false type="application/x-mplayer2" src="'+soundUrl+'"></embed>';
   return;
  }
 }
            
 document.getElementById("dummyspan").innerHTML=
  "<embed src='"+soundUrl+"' hidden=true autostart=true loop=false >";

}

function getForm(fn)
{
   if (fn=='')
   {
    return document.forms[0];
   }
   else
   {
    return document.getElementById(fn);
   }
}

function indicateFromMenu(fn)
{
   try
   {
    fn.menuclk.value='1';
   }
   catch(err)
   {
   }
}

function frmGoCln(fn,dest)
{
   var frm = getForm(fn);
   frm.cmd.value=dest;
   frm.hdp.value='';
   frm.action='';
   indicateFromMenu(frm);
   try
   {
    frm.sub.value='';
   }
   catch(err)
   {
   }
   try
   {
    //frm.lngSel.value='';
    frm.lngSel.disabled=true;
   }
   catch(err)
   {
   }
   frm.submit();
}

function frmGo(fn,dest) 
{
   var frm = getForm(fn);
   frm.cmd.value=dest;
   frm.hdp.value='';
   frm.action='';
   try
   {
    frm.sub.value='';
   }
   catch(err)
   {
   }
   frm.submit();
}

function frmGoMenu(fn,dest)
{
   indicateFromMenu();
   frnGo(fn,dest);
}

function frmGoReloc(fn,dest,param) 
{
   var frm = getForm(fn);
   frm.hdp.value=param;
   frm.action=dest;
   frm.submit();
}

function frmGoPar(fn,dest,param) 
{
   var frm = getForm(fn);
   frm.cmd.value=dest;
   frm.action='';
   frm.hdp.value=param;
   frm.submit();
}

function frmGoParSub(fn,dest,param,subpar)
{
   var frm = getForm(fn);
   frm.cmd.value=dest;
   frm.action='';
   frm.hdp.value=param;
   frm.sub.value=subpar;
   frm.submit();
}


function frmSubmit(fn,dest,cmd,hdp) 
{
 var frm = getForm(fn);
 if (dest!='') frm.action=dest;
 frm.cmd.value=cmd;
 frm.hdp.value=hdp;
 frm.submit();
}

function studySubmit(fn,dest,loId,loType)
{
 var frm = getForm(fn);
 if (dest!='') frm.action=dest;
 frm.loid.value=loId;
 frm.lotype.value=loType;
 frm.submit();
}

function frmSubmitPage(fn,dest,cmd,hdp,page) {
 var frm = getForm(fn);
 if (dest!='') frm.action=dest;
 frm.cmd.value=cmd;
 frm.hdp.value=hdp;
 frm.page.value=page;
 frm.submit();
}


function hideElement(elementId) {
 var element;
 element = document.getElementById(elementId);
 if (element && element.style)
   element.style.display = 'none';
}

function showElement(elementId) {
 var element;
 element = document.getElementById(elementId);
 if (element && element.style)
   element.style.display = '';
}

function hit(objname,state) {
 var td = document.getElementById(objname);
 if (state) td.bgColor="#ffffc0"; else td.bgColor="";
}

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}

function f_clientHeight() {

 if (parseInt(navigator.appVersion) > 3 ) 
 {
  if (navigator.appName=="Netscape") return window.innerHeight;
 }

 return f_filterResults (
	window.innerHeight ? window.innerHeight : 0,
	document.documentElement ? document.documentElement.clientHeight : 0,
	document.body ? document.body.clientHeight : 0
 );
 
}

function f_filterResults(n_win, n_docel, n_body) 
{
  var n_result = n_win ? n_win : 0;
  if (n_docel && (!n_result || (n_result > n_docel))) n_result = n_docel;
  return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function checkEmpty(fieldId,errorMessage)
{
   if (trim(document.getElementById(fieldId).value)=="")
   {
     alert(errorMessage);
     return false;
   }
   return true;
}

function showWarning(msg)
{
    wdiv = document.getElementById('warnDiv');
    wdiv.innerHTML=msg;
    wdiv.style.display='block';
}

function switchSessionTemplate(t)
{
    swdiv = document.getElementById('switchBox');
    if (t)
      swdiv.innerHTML='Switch to templates';
    else
      swdiv.innerHTML='Switch to session list';
    swdiv.style.display='block';
}

function isValueInArray(arr, val) 
{   
  for (i = 0; i < arr.length; i++)
      if (val == arr[i]) return i;   
  return -1;
}

function removeByIndex(arr, idx)
{ 
  arr.splice(idx,1); 
}

function removeByValue(arr, val)
{
   ix = isValueInArray(arr,val);
   if (ix!=-1) removeByIndex(arr,ix);
}

function getById(id)
{
    try
    {
        var elem = document.getElementById(id);
        return elem;
    }
    catch(err)
    {
        return null;
    }
}

function elementsById(id)
{
  var nodes = [];
  var tmpNode = getById(id);
  while(tmpNode!=null){
    nodes.push(tmpNode);
    tmpNode.id = "";
    tmpNode = getById(id);
  }
  for(var x=0; x<nodes .length; x++){
    nodes[x].id = id;
  }
  return nodes;
}
