

function doReg(f){
  if (!validateRegisterForm(f)){ return; }
  if (f.password1.value !== f.password2.value){ alert('Password and confirmed passwords do not match.'); f.password2.focus(); return; }
  if (f.email.value !== f.email2.value){ alert('Email and confirmed email do not match.'); f.email.focus(); return; }
  dwr.checkUniqLogin(f.login.value,function(isUniq){doReg2(isUniq,f);});
}
function doReg2(loginUniq,f){
  if (!loginUniq){ alert('The specified login is already in use.'); f.login.focus(); return; }
  dwr.checkPasswdFmt(f.password1.value,function(fmtOk){doReg3(fmtOk,f);});
}
function doReg3(passok,f){
  if (!passok){ alert('Passwords must be at least 6 characters and contain at least one number or non-letter character, and may not contain your login.'); f.password1.focus(); return false; }
  f.submit();
}
function changeUsState(sid,cfield){
  if (sid > 0){
    $(cfield).selectedIndex = 1;
  }
}
function changeCountry(cid,sfield,sofield){
  if (cid == 1){ $(sofield).disabled=true; $(sfield).disabled=false; $(sfield).focus();
  } else { $(sofield).disabled=false; $(sofield).focus(); $(sfield).disabled=true; }
}
function addLb(imgId){ Element.hide('add-'+imgId); Element.show('indicator-'+imgId); dwr.lightbox(false,imgId,function(msg){finLb(msg,imgId,false);}); }
function finLb(msg,imgId,rm) { upLbCt(msg); Element.hide('indicator-'+imgId); if (rm){ Element.show('add-'+imgId); } else { Element.show('rm-'+imgId);} }
function rmLb(imgId){ Element.hide('rm-'+imgId); Element.show('indicator-'+imgId); dwr.lightbox(true,imgId,function(msg){finLb(msg,imgId,true);}); }
function rmLb2(imgId){ Element.hide('remove-'+imgId); Element.show('indicator-'+imgId); dwr.lightbox(true,imgId,function(msg){finRmLb2(msg,imgId);}); }
function finRmLb2(msg,imgId){ var a = new Ajax.Updater('primary-wrap','/df/lightbox/manage',{evalScripts:true,onComplete:function(){ upLbCt(msg);Element.show('message');Element.hide('indicator-'+imgId);}}); }
function finClrLb(msg,imgId){ var a = new Ajax.Updater('primary-wrap','/df/lightbox/manage',{parameters:Form.serialize('lightboxForm'),evalScripts:true,onComplete:function(){ Element.update('lbcount',msg);}}); }
function clrLb(){ Element.show('indicator-clear-lb'); dwr.clearLightbox(finClrLb); }
function upLbCt(msg){ /*Element.update('lbcount',msg);*/ }
function pgJobs(pg) {
  var a = new Ajax.Updater('primary', '/df/sets/view', {
    parameters: {'pg':pg},
    evalScripts: true,
    onComplete: function() {
      window.scrollTo(0,0);
    }
  });
}
function pgImg(jid,idx){ var a = new Ajax.Updater('primary','/df/set/view',{parameters:{'jid':jid,'idx':idx},evalScripts:true,onSuccess:function(){loadJobAndImageMetaData(jid,idx);}}); }
function loadJobAndImageMetaData(jid,idx){
  new Ajax.Updater('job-meta-list','/df/set/image/metadata', {parameters:{'jid':jid,'idx':idx},evalScripts:false});
}
function openDiv(element, childElement) {
  var div = $(element);
  var child = $(childElement);
  if (child.visible()) {
    child.hide();
    div.setAttribute('class','closed');
  } else {
    child.show();
    div.setAttribute('class','open');
  }
}

var imgRoot = "/static/15305";

function formSetup() {
	var inputElements = ['searchstring','username','password'];
	for (var i=0; i<inputElements.length; i++) {
		var input = inputElements[i];
		if ($(input)) {
			$(input).observe('focus', highlightAndClearForm);
			$(input).observe('blur', greyAndFillForm);
		}
	}
	$("searchForm").observe('submit', searchSubmit);
}

function highlightAndClearForm(event) {
    var x = event.element();
    $(x).addClassName("focus");
    if ($F(x) !== "") {
        x.value = "";
    } else {
        x.select();
    }
}

function greyAndFillForm(event) {
    var x = event.element();
    $(x).removeClassName("focus");
    if ($F(x) == "") {
		if (x.id == "searchstring") {
			x.value = "Search";
		} else if (x.id == "username") {
			x.value = "User Name";
		}
	} else {
		x.value = x.value;
	}
}

function searchSubmit(event) {
    var x = event.element();
    if ($(x).id == "searchForm") {
        x = $("searchstring");
    }
    if (x.value == "Search" || x.value === "") {
        location.replace("/df/sets/view");
        event.preventDefault();
    }
}

function externalLinks() { //also supports opening help windows inside the app
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href")) {
	 if (anchor.getAttribute("rel") == "external" || anchor.getAttribute("rel") == "help") {
       anchor.target = "_blank";
	 }
   }
 }
}
function addLoadEvent(func) { // attaches functions to the window.onload event without over-riding previous window.onload events
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(formSetup);

function getLbList(){
  if (!$('lightboxes-list').visible()){
    var a = new Ajax.Updater('lightboxes-list', '/df/lightbox/list');
  }
  openDiv('lightboxes','lightboxes-list');
}
