var ie5 = false;
var ns6 = false;
var moz = false;
var mac = false;

agent = navigator.userAgent.toLowerCase();
ie5   = (document.all && document.getElementById)  ? true : false;
ns6   = (document.getElementById && !document.all) ? true : false;
moz   = (document.getElementById && !document.all) ? true : false;
mac   = (agent.indexOf("mac")!=-1);

function safemail(name, domain, display, css, subject) {
  css       = (css)     ? ' class="' + css + '"' : '';
  subject   = (subject) ? '?subject=' + subject : '';
  displayed = (display) ? display : name + '@' + domain;
  mailto    = name + '@' + domain + subject;
  
  document.write('<a href="mailto:' + mailto + '"' + css + '>' + displayed + '</a>');
}
function Popup(title,filename,w,h,scroll,resizable,menubar) {
  title     = (title == '')         ? 'popup' : title;
  scroll    = (scroll == 'scroll')  ? 'yes'   : 'no';
  resizable = (resizable == 'lock') ? 'no'    : 'yes';
  menubar   = (menubar == 'menu')   ? 'yes'   : 'no';
  
  winOptions = eval("'width="+w+",height="+h+",toolbar=no,location=no,directories=no,status=no,menubar="+menubar+",scrollbars="+scroll+",resizable="+resizable+",copyhistory=no'");
  window.open(filename,title,winOptions);
  return;
}
function DisableButton(obj) {
  obj.src          = 'images/btn_processing.gif';
  obj.disabled     = true;
  obj.style.border = 'none';
}
function DisableButtonTxt(obj, text) {
  obj.value        = (text == null) ? 'Processing...' : text;
  obj.disabled     = true;
  obj.style.border = 'none';
}
function SetFocus(fieldname,formname){if (formname == ''){ formname = 'form'; }if (eval("document."+formname+".elements[fieldname].value == ''")){ eval("document."+formname+".elements[fieldname].focus();"); }}
function ToggleElement(id) {
  var e = document.getElementById(id);
  if (e) {
    if (e.style.display == 'none') {
      e.style.display = '';
    } else {
      e.style.display = 'none';
    }
  }
}
function SubmitForm(obj, form_action) {
  // disable button
  //DisableButtonTxt(obj);
  
  // get elements
  var frm = document.forms[obj.form.name];
  var act = frm.elements['form_action'];
  
  // set form action
  act.value = form_action;
  
  // submit form
  frm.submit();
}
function WriteToElement(id, str) {
  // get element
  var e = document.getElementById(id);
  
  // write
  if (e) {
    if (e.innerHTML) {
      e.innerHTML = str;
    } else {
      e.document.write(str);
      e.document.close();
    }
  }
}
function ClearValue(id) {
  var e = document.main.elements[id];
  if (e) {
    e.value = '';
  }
}
function ClearRadio(id) {
  var e = document.main.elements[id];
  if (e) {
    for (var i=0; i<e.length; i++) {
      e[i].checked = false;
    }
  }
}
function FindTop(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
  }
	return curtop;
}
function FindLeft(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
  }
	return curleft;
}
function HighlightAnswer(prefix, id) {
  // get all rows in form
  var rows = document.main.getElementsByTagName("tr");
  
  // set regex
  regex = new RegExp(prefix+'(.)*?');
  
  // highlight/unhighlight rows
  var row = 0;
  for (i=0; i<rows.length; i++) {
    if (regex.test(rows[i].id)) {
      if (rows[i].id == prefix+id) {
        rows[i].className = 'highlight';
      } else {
        rows[i].className = (row % 2) ? 'odd' : 'even';
      }
      row++;
    }
  }
}

function ToggleCheckbox(id) {
  eval('checkbox_checked = (document.getElementById("' + id + '").checked == true)');
  if (checkbox_checked) {
    SetCheckbox(id, false)
  } else {
    SetCheckbox(id, true)
  }
}

function SetCheckbox(id, checked_flag) {
  if (checked_flag) {
    eval('checkbox_checked = (document.getElementById("' + id + '").checked = true)');
  } else {
    eval('checkbox_checked = (document.getElementById("' + id + '").checked = false)');
  }
}

function ConfirmDelete(item) {
  return confirm('Are you sure you wish to delete this ' + item + '?');
}

function ChangeCheckboxes(id) {
  var i;
  var j;
  
  // manipulate checkboxes based on id passed
  switch(id) {
    case 'email_members':
      // select all members
      if (document.getElementById("email_members").checked == true) {
        for (i = 0; i < all_group_ids.length; i++) {
          this_id = 'email_groups[' + all_group_ids[i] + ']';
          SetCheckbox(this_id, true);
          for (j = 0; j < group_user_ids[all_group_ids[i]].length; j++) {
            this_id = 'send_user_email[' + all_group_ids[i] + '][' + group_user_ids[all_group_ids[i]][j] + ']';
            SetCheckbox(this_id, true);
          }
        }
      } else {
        for (i = 0; i < all_group_ids.length; i++) {
          this_id = 'email_groups[' + all_group_ids[i] + ']';
          SetCheckbox(this_id, false);
          for (j = 0; j < group_user_ids[all_group_ids[i]].length; j++) {
            this_id = 'send_user_email[' + all_group_ids[i] + '][' + group_user_ids[all_group_ids[i]][j] + ']';
            SetCheckbox(this_id, false);
          }
        }
      }
      break;
    default:
      // select group members
      eval('temp_is_checked = (document.getElementById("email_groups[' + id + ']").checked == true)');
      eval('temp_group_user_ids = group_user_ids[' + id + ']');
      if (temp_is_checked) {
        for (j = 0; j < temp_group_user_ids.length; j++) {
          this_id = 'send_user_email[' + id + '][' + temp_group_user_ids[j] + ']';
          SetCheckbox(this_id, true);
        }
      }
      break;
  }
}
