function popup(mylink, windowname)
{
    if (! window.focus)return true;
    var href;
    if (typeof(mylink) == 'string')
	href=mylink;
    else
	href=mylink.href;
    window.open(href, windowname, 'width=400,height=200,scrollbars=yes');
    return false;
}

function submitTypeChanged()
{
    var index = document.submission_form.submission_type.selectedIndex;
    var option = document.submission_form.submission_type[index].value;
    var textDiv = document.getElementById('submission_text_div');
    var fileDiv = document.getElementById('submission_file_div');
    textDiv.style.display='none';
    fileDiv.style.display='none';
    
    if (option=='text'){
	textDiv.style.display='block';
    }else if (option == 'photo' ||option == 'video' ||option=='audio' || option=='document'){
	fileDiv.style.display='block';
    }
}

function checkConsent()
{
    var submitButton = document.getElementById('object_add');
    var checkBox = document.getElementById('submit_consent_box');
    if (checkBox.checked){
	submitButton.style.visibility='visible';
    }else{
	submitButton.style.visibility='hidden';
    }
    
}


function validateRequiredField(field){
    with(field){
	return (value!="" && value != null);
    }

}

function validateRequiredEmail(field){
    if (! validateRequiredField(field)){
	return false;
    }

    with(field){

	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
	return (emailFilter.test(value) && (! value.match(illegalChars)));
    }
}


function hideAll(className){
var all = document.all ? document.all : document.getElementsByTagName('*');

  for (var e = 0; e < all.length; e++)
      if (all[e].className == className){

	  all[e].style.visibility='hidden';
      }

}

function validateFormData(form){
    var result = true;
    var err_msg = '';
    hideAll("error_msg");   

    // validate the submission type
    var index = form.submission_type.selectedIndex;
    var option = form.submission_type[index].value;  
     
    if (option== ""){
	result = false;
	err_msg += "missing type\n";
	document.getElementById('submission_type_err').style.visibility = 'visible';
    }else if (option=='text' && ! validateRequiredField(form.submission_text)){
	result = false;
	err_msg += "missing text\n";
	document.getElementById('submission_text_err').style.visibility = 'visible';
    }else if ((option=='photo' || option=='video' || option=='audio' || option=='document') && ! validateRequiredField(form.submission_file)){
	result = false;
	err_msg += "missing file\n";
	document.getElementById('submission_file_err').style.visibility = 'visible';
    }

    // check required user data
    if (! validateRequiredField(form.contributor_first)){
	result = false;
	err_msg += "missing first\n";
	document.getElementById('contributor_first_err').style.visibility = 'visible';
    }
    if (! validateRequiredField(form.contributor_last)){
	result = false;
	err_msg += "missing last\n";
	document.getElementById('contributor_last_err').style.visibility = 'visible';
    }
    if (! validateRequiredEmail(form.contributor_email)){
	result = false;
	err_msg += "malformed email\n";
	document.getElementById('contributor_email_err').style.visibility = 'visible';
    }

    // make sure some bug hsn't left the consent box unchecked
    if (! document.getElementById('submit_consent_box').checked){
	result = false;
	err_msg += "missing consent\n";
	document.getElementById('submit_consent_box_err').style.visibility = 'visible';
    }


    return result;
}
