function checkEmail(em) {
    var atpos = em.indexOf('@');
    if (atpos == -1) {
        return false;
    }
    if (atpos == 0) {
        return false;
    }
    if (atpos == (em.length - 1)) {
        return false;
    }
    
    var atpos2 = em.indexOf('@', atpos+1);
    if (atpos2 != -1) {
        return false;
    }
    
    var lastDot = em.lastIndexOf('.');
    if (lastDot == -1) {
        return false;
    }
    if (lastDot < atpos + 2) {
        return false;
    }
    if (lastDot > em.length - 3) {
        return false;
    }
    
    return true;
}

function checkEmails(f, elname) {
    // alert('Checking emails for elname ' + elname);
    var el = f.elements(elname);
    var el2 = f.elements(elname + "2");
    if (el2 != null) {
        if (el2.value != el.value) {
            alert('Please ensure the email address matches in both input fields');
            return false;
        }
    }
    var ce = checkEmail(el.value);
    if (ce) {
        return ce;
    }
    alert('Please try again with a valid email address - you may have typed it wrongly');
    return false;
}

function hideShowInput(elementId , style){
    document.getElementById(elementId).style['display']=style;
}

function toggleDisplay(elementId){
    if(document.getElementById(elementId).style.display == "none" ){
        hideShowInput(elementId,"block");
    }
    else {
        hideShowInput(elementId,"none");
    }
    
}

function checkLogin(){
    
    if (document.getElementById("username").value ==""){
        alert('Please enter email address');
        return false;
    }
    if (document.getElementById("password").value ==""){
        alert('Please enter password');
        return false;
    }
    document.forms["vmForm"].submit();
}

function forgotPassword(){
    if (document.getElementById("username").value ==""){
        alert('Please enter email address');
        return;
    }
    window.location="../handlers/remindPassword.jsp?username="+document.getElementById("username").value;
}

function enableSubmit(element,buttonId){
    if(!element){
        return;
    }
    if(element.checked){
        document.getElementById(buttonId).disabled=false;
    }
    else {
        document.getElementById(buttonId).disabled=true;
    }
}

function checkSelected(elementName) {
    var elements = document.getElementsByName(elementName);
    var unlockButton = false;
    for (i=0; i<elements.length; i++) {
        if(elements[i].checked == true) {
            unlockButton = true;
            break;
        }
    }
    if (unlockButton) {
        document.forms.vmForm.vmFormSubmitButton.disabled = false;
    } else {
    document.forms.vmForm.vmFormSubmitButton.disabled = true;
}
}
function popup(url,name,width, height) {
    
    if (width == null) {
        width = 650;
    }
    if (height == null) {
        height = 500;
    }
    if(name==null){
        name="popup";
    }
    var win = window.open(url,name, "toolbar=no,scrollbars=yes,width=" + width + ",height=" + height + ",location=no,directories=no,status=yes,menubar=no,resizable=yes");
    return win;
    
}

function displayTree(element,size){
    
    var name=element.id;
    //console.log("name.innerHTML" + element.innerHTML);
    if(element.innerHTML=="+"){
        element.innerHTML="-"
    }
    else {
        element.innerHTML="+"
    }
    for (i=0;i<size; i++){
        if(document.getElementById(name+i).style.display=="none"){
            document.getElementById(name+i).style['display']='';
        }
        else {
            document.getElementById(name+i).style['display']='none';
        }
    }
    
}

function datePrompter(url){
    var date = prompt("Enter date (dd/mm/yyyy) \n Leave empty if you do not wish to filter the list", "")
    window.location=url+"&when="+date;
 }

function hideShowInput(elementId , style){
    document.getElementById(elementId).style['display']=style;
}

function toggleDisplay(elementId){
    if(document.getElementById(elementId).style.display == "none" ){
        hideShowInput(elementId,"inline");
    }
    else {
        hideShowInput(elementId,"none");
    }
}

function checkDetails(form){

       for(i=0;i<form.elements.length;i++){
           if(form.elements[i].value=="" ||form.elements[i].value==null ){
               alert("Please enter your " + form.elements[i].title);
               return false;
           }
           if(form.elements[i].name=="email"){
               if(checkEmail(form.elements[i].value)==false){
                   alert("Please enter a valid email address");
                   return false;
               }
           }
       }
       return true;
}

function getExpressions(type){
    if("decimal" ==  type){
        return /^[-+]?[0-9]+(\.[0-9]+)?$/;
    }
    if("integer" ==  type ){
        return /^[0-9]*$/;

    }
    if("currency" ==  type ){
        return  /^[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{2})*$/;
    }
    return "";

}

function validateInput(element,type){
    str = element.value;
    if(!(getExpressions(type).test(str))){
        alert("Invalid input!\nValue entered must be of a "+type+" format.");
        element.value="";
        return false;
    }
    return true;
}

function checkFilePresent(fileName){

    if(fileName==null || fileName == ""){
       document.getElementById("aLink").click();
    } else {
        window.open("../handlers/fileDownloadH.jsp?fileLocation="+fileName,fileName);

    }


}

