// -- Pictures ---------------------------------------------------------------------------
function setpic(id) {
  pic = id;
  document.getElementById("mainpic").src = "/images/pic" + id + ".jpg";
}

// -- Navigation -------------------------------------------------------------------------
function gopage(page) {
  document.location.href = "/index.php?page=" + page + "&pic=" + pic;
  return false;
}

function gologin() {
  document.location.href = "/index.php?page=login&targetpage=" + page + "&pic=" + pic;
  return false;
}

function gologout() {
  document.location.href = "/index.php?page=" + page + "&pic=" + pic + "&action=logout";
  return false;
}

function goedit(id) {
  
  document.location.href = "/index.php?page=" + page + "&pic=" + pic + "&id=" + id + "&top=" + document.getElementById("scrollObj").scrollTop;
  return false;
}

function godelete(id, action) {
  if (confirm("Wollen Sie diesen Eintrag wirklich löschen?")) {
    document.location.href = "/index.php?page=" + page + "&pic=" + pic + "&action=" + action + "&id=" + id + "&top=" + document.getElementById("scrollObj").scrollTop;
  }
  return false;
}

function godeletedocument(id, table) {
  if (confirm("Wollen Sie das Dokument wirklich löschen?")) {
    document.location.href = "/index.php?page=" + page + "&pic=" + pic + "&action=removedocument&id=" + id + "&table=" + table + "&top=" + document.getElementById("scrollObj").scrollTop;
  }
  return false;
}

function goreset() {
  document.forms[0].reset();
  return false; 
}

function gosave() {
  document.forms[0].elements["top"].value = document.getElementById("scrollObj").scrollTop;
  document.forms[0].submit();
  return false;
}

function gosetarchiv(id, table) {
  document.location.href = "/index.php?page=" + page + "&pic=" + pic + "&action=setarchiv&id=" + id + "&table=" + table + "&top=" + document.getElementById("scrollObj").scrollTop;
  return false;
}

// -- Flipping for images ----------------------------------------------------------------
function flipimage(id, src) {
  document.getElementById(id).src = "/images/" + src;
}

// -- Flipping for slots -----------------------------------------------------------------
function flipslot(objId) {

  obj0 = document.getElementById("desc" + objId);
  obj1 = document.getElementById("swap" + objId);
  
  scrObj = document.getElementById("scrollObj");
  
  if (obj0) {
    state = obj0.style.display;
    
    if (state == "none") {
      obj0.style.display = "block";
      if (obj1) obj1.src = "/images/flip_close.gif";
    } else {
      obj0.style.display = "none";
      if (obj1) obj1.src = "/images/flip_open.gif";
    }
    
    // BUGFIX FOR SAFARI (provocate update of scrollobj)
    scrObj.scrollTop = scrObj.scrollTop;
  }
}

// -- UI Functions ----------------------------------------------------------------------------
function confirmURL(quest, url) {
  if (confirm(quest)) {
    self.location.href = url;
  }
}

// -- FORM CHECKING -------------------------------------------------------------
function check_input(formName, fields, formats, aliases, errormessage) {

  not_matched = "";
  reg_email   =  /^([_a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$/;
  value_is_array = false;
      
  for (i=0; i<fields.length; i++) {      
    form_element = document.forms[formName].elements[fields[i]];
    if (formats[i] != 'checked') {
      value  = form_element.value;
    }          

    format = formats[i];
	  field  = fields[i];
	  alias  = aliases[i];
    match  = true;
  
    if (format == "datum") {
	    match = match && (!isNaN(value.charAt(0)) && !isNaN(value.charAt(1)) && !isNaN(value.charAt(3)) && !isNaN(value.charAt(4)) && !isNaN(value.charAt(6)) && !isNaN(value.charAt(7)) && (value.charAt(2)==".") && (value.charAt(5)==".") && (value.length == 8));
  	}
		
		if (format == "zeit") {
	    match = match && (!isNaN(value.charAt(0)) && !isNaN(value.charAt(1)) && !isNaN(value.charAt(3)) && !isNaN(value.charAt(4)) && (value.charAt(2)==":") && (value.length == 5));
  	}
	
	  if (format == "text") {
	    match = match && (value.length > 0);
	  }
	
	  if (format == "zahl") {
	    match = match && (!isNaN(value) && (value.length > 0));
	  }
	  
    if (format == "email") {    
      atpos  = value.indexOf("@");
      dotpos = value.lastIndexOf(".");
      match  = match && (atpos > 0) && (dotpos > 0) && (dotpos > atpos) && (dotpos < (value.length-2)) && ((atpos+3) < dotpos);
			match  = match && reg_email.test(value);
    }
  
    if (format == "checked") {
    
      if (form_element != null) {     
        // form_element is a single checkbox and not an array 
        // (in HTML page name of input element of form 'foo' instead of 'foo[]')
        match = match && (form_element.checked);
      } else {      
        // form_element is an array of checkboxes ('foo[]'; see comment above)
        // iterate through array as long it is defined or existing, respectively
        j = 0;            
        form_element = document.forms[formName].elements[fields[i]+'['+j+']'];    
        one_box_checked=false; 
        while (form_element != null) {        
          one_box_checked = one_box_checked || (form_element.checked);          
          j++;
          form_element = document.forms[formName].elements[fields[i]+'['+j+']'];         
        }
        match = match && (one_box_checked);
      }
    }

	  if (!match) {
	    not_matched = not_matched + "- " + alias + "\n";
	  }
  } 
  
  if (not_matched.length > 0) { 
	   alert(errormessage + not_matched);
     return false;
  } else { 
    return true;
  }
}