var ie5 = false;
var moz = false;
var mac = false;

function Init() {
  SetBrowser();
  LoadIcons();
}
function safemail(name,domain,subject,display,css) {
  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){if (title == ''){ title = 'popup'; }if (scroll == 'scroll'){ scroll = 'yes'; }else{ scroll = 'no'; }if (resizable == 'lock'){ resizable = 'no'; }else{ resizable = 'yes'; }winOptions = eval("'width="+w+",height="+h+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars="+scroll+",resizable="+resizable+",copyhistory=no'");window.open(filename,title,winOptions);return;}
function SetFocus(fieldname,formname){if (formname == ''){ formname = 'form'; }if (eval("document."+formname+".elements[fieldname].value == ''")){ eval("document."+formname+".elements[fieldname].focus();"); }}
function SetBrowser(){
  agent = navigator.userAgent.toLowerCase();
  
  ie5 = (document.all && document.getElementById)  ? true : false;
  moz = (document.getElementById && !document.all) ? true : false;
  mac = (agent.indexOf("mac")!=-1);
}
function LoadIcons() {
  ImagePlus      = new Image();
  ImagePlus.src  = "images/icon_plus.gif";
  ImageMinus     = new Image();
  ImageMinus.src = "images/icon_minus.gif";
}
function ToggleDiv(id, action) {
  var div = document.getElementById(id);
  if (div) {
    if (action == 'show') {
      div.style.display = '';
    } else {
      div.style.display = 'none';
    }
  }
}
function WriteToElement(id, str) {
  // get element
  var e = document.getElementById(id);
  
  // write
  if (e.innerHTML) {
    e.innerHTML = str;
  } else {
    e.document.write(str);
    e.document.close();
  }
}
function LimitCharacters(field, limit, count_id) {
  if (field.value.length > limit) {
    field.value = field.value.substring(0, limit);
  } else if (count_id) {
    WriteToElement(count_id, limit - field.value.length);
  }
}
function AdminOnly(action) {
  // show or hide?
  var display = '';
  if (action == 'hide') {
    display = 'none';
  }
  
  // get rows
  var regex = new RegExp('adminonly'+'(.)*?');
  var rows = document.getElementsByTagName('tr');
  for (i=0; i<rows.length; i++) {
    if (regex.test(rows[i].id)) {
      rows[i].style.display = display;
    }
  }
}
function ToggleElement(id, action) {
  var e = document.getElementById(id);
  if (e) {
    if (action == 'show') {
      e.style.display = '';
    } else {
      e.style.display = 'none';
    }
  }
}
function ToggleRows(prefix, action) {
  // show or hide?
  var display = '';
  if (action == 'hide') {
    display = 'none';
  }
  
  // get rows
  var regex = new RegExp(prefix+'(.)*?');
  var rows = document.getElementsByTagName('tr');
  for (i=0; i<rows.length; i++) {
    if (regex.test(rows[i].id)) {
      rows[i].style.display = display;
    }
  }
}
function CheckAll(prefix, checked) {
  var collection = document.getElementsByTagName("input");
  var regex      = new RegExp(prefix);
  for (var i=0; i<collection.length; i++) {
    if (regex.test(collection[i].name)) {
      collection[i].checked = checked;
    }
  }
}
function DisableButton(form, obj, obj_name, obj_value) {
  obj.value = 'Processing...';
  obj.disabled = true;
  obj_name.value = obj_value;
  form.submit();
}
function StripeTable(id) {
  $A($(id).getElementsByTagName('tbody')).each(function(tbody) {
    $A(tbody.immediateDescendants()).each(function(row, i) {
      row.removeClassName('odd');
      row.removeClassName('even');
      row.addClassName((i % 2) ? 'odd' : 'even');
    });
  });
}
function StripeRows(id) {
  $A($(id).immediateDescendants()).each(function(row, i) {
    row.removeClassName('odd');
    row.removeClassName('even');
    row.addClassName((i % 2) ? 'odd' : 'even');
  });
}
// Confirm Delete 
function confirmDelete() {
	var agree = confirm("Are you sure you wish to delete this item?");
	if (agree) {
		return true;
	} else {
		return false;
	}
}
function inArray (needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // +   input by: Billy
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true
    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false
    var key = '',
        strict = !! argStrict;

    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }

    return false;
}

