// Scripts for use on storehouse website

// function to redirect user to a particular URL
function Redirect(url)
{
    window.location = url;
}

// function to redirect user to an external URL
function RedirectExt(url)
{
    window.open(url);
}

// function to validate and start upload of sermon recording
function startSermonUpload()
{
    // validate that the data is supplied
    var sFile = document.getElementById("fUpload").value;
    var sSpeaker = document.getElementById("edtSpeaker").value;
    var sTitle = document.getElementById("edtTitle").value;
    var sDate = document.getElementById("edtDate").value;
    
    // validate data
    if ((sFile == "")||(sSpeaker == "")||(sTitle == "")||(sDate == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("fTypeError").style.display = 'none';
        return false;
    }
    else if ((sFile.indexOf(".mp3") < 1)&&(sFile.indexOf(".wav") < 1)) {
        document.getElementById("fTypeError").style.display = 'inline';
        document.getElementById("errorMsg").style.display = 'none';
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("fTypeError").style.display = 'none';
        document.getElementById("uploadprogress").style.display = 'inline';
        return true;
    }
}

// function to validate and initiate save processing for sermon updates
function startSermonSave()
{
    // validate that the data is supplied
    var sSpeaker = document.getElementById("updSpeaker").value;
    var sTitle = document.getElementById("updTitle").value;
    var sDate = document.getElementById("updDate").value;
    
    if ((sSpeaker == "")||(sTitle == "")||(sDate == "")) {
        document.getElementById("updError").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("updError").style.display = 'none';
        return true;
    }
}

// function to validate and start sermon notes upload process
function startNotesUpload()
{
    // validate that the data is supplied
    var sFile = document.getElementById("fUpload").value;
    var sSpeaker = document.getElementById("edtSpeaker").value;
    var sTitle = document.getElementById("edtTitle").value;
    var sDate = document.getElementById("edtDate").value;
    
    // validate data
    if ((sFile == "")||(sSpeaker == "")||(sTitle == "")||(sDate == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("fTypeError").style.display = 'none';
        return false;
    }
    else if ((sFile.indexOf(".doc") < 1)&&(sFile.indexOf(".xls") < 1)
            &&(sFile.indexOf(".ppt") < 1)&&(sFile.indexOf(".pps") < 1)
            &&(sFile.indexOf(".html") < 1)&&(sFile.indexOf(".htm") < 1)
            &&(sFile.indexOf(".pdf") < 1)&&(sFile.indexOf(".txt") < 1)) {
            document.getElementById("fTypeError").style.display = 'inline';
            document.getElementById("errorMsg").style.display = 'none';
            return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("fTypeError").style.display = 'none';
        document.getElementById("uploadprogress").style.display = 'inline';
        return true;
    }
}

// function to validate and initiate save processing for notes updates
function startNotesSave()
{
    // validate that the data is supplied
    var sSpeaker = document.getElementById("updSpeaker").value;
    var sTitle = document.getElementById("updTitle").value;
    var sDate = document.getElementById("updDate").value;
    
    if ((sSpeaker == "")||(sTitle == "")||(sDate == "")) {
        document.getElementById("updError").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("updError").style.display = 'none';
        return true;
    }
}

// function to validate new links category
function validateLinkCat()
{
    // ensure category is supplied
    if (document.form1.edtCat.value == "") {
        document.getElementById("errorAdd").style.display = 'inline';
        document.getElementById("errorDup").style.display = 'none';
        document.form1.edtCat.focus();
        return false;
    }
    else {
        // category has been supplied... check it isn't a duplicate
        var iRecs = document.form1.lbCats.options.length;
        var sNewCat = document.form1.edtCat.value.toLowerCase();
        var bDup = false;
        for (i=0; i<iRecs; i++)
        {
            if (document.form1.lbCats.options[i].text.toLowerCase() == sNewCat) {
                bDup = true;
            }
        }
        
        if (bDup == true) {
            document.getElementById("errorAdd").style.display = 'none';
            document.getElementById("errorDup").style.display = 'inline';
            document.form1.edtCat.focus();
            return false;
        }
        else {
            document.getElementById("errorAdd").style.display = 'none';
            document.getElementById("errorDup").style.display = 'none';
            return true;            
        }        
    }
}

// function to validate new link
function validateNewLink()
{
    var sURL = document.form1.edtURL.value;
    var sDesc = document.form1.edtDesc.value;
    if ((sURL == "")||(sDesc == "")) {
        document.getElementById("errorAdd").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorAdd").style.display = 'none';
        return true;
    }
}

// function to validate link update
function validateLinkUpdate()
{
    var sURL = document.form1.updURL.value;
    var sDesc = document.form1.updDesc.value;
    if ((sURL == "")||(sDesc == "")) {
        document.getElementById("errorUpd").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorUpd").style.display = 'none';
        return true;
    }
}

// function to validate new other resources category
function validateResCat()
{
    // ensure category is supplied
    if (document.form1.edtCat.value == "") {
        document.getElementById("errorAdd").style.display = 'inline';
        document.getElementById("errorDup").style.display = 'none';
        document.form1.edtCat.focus();
        return false;
    }
    else {
        // category has been supplied... check it isn't a duplicate
        var iRecs = document.form1.lbCats.options.length;
        var sNewCat = document.form1.edtCat.value.toLowerCase();
        var bDup = false;
        for (i=0; i<iRecs; i++)
        {
            if (document.form1.lbCats.options[i].text.toLowerCase() == sNewCat) {
                bDup = true;
            }
        }
        
        if (bDup == true) {
            document.getElementById("errorAdd").style.display = 'none';
            document.getElementById("errorDup").style.display = 'inline';
            document.form1.edtCat.focus();
            return false;
        }
        else {
            document.getElementById("errorAdd").style.display = 'none';
            document.getElementById("errorDup").style.display = 'none';
            return true;            
        }        
    }
}

// function to validate and start other resource file upload
function startResUpload()
{
    // validate that the data is supplied
    var sFile = document.form1.fUpload.value;
    var sCat = document.form1.edtCat.value;
    var sDesc = document.form1.edtDesc.value;
    
    if ((sFile == "")||(sCat == "")||(sDesc == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("uploadprogress").style.display = 'inline';
        return true;
    }
}

// function to validate and initiate save processing for other resources updates
function startResSave()
{
    // validate that the data is supplied
    var sDesc = document.form1.updDesc.value;
    
    if (sDesc == "") {
        document.getElementById("updError").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("updError").style.display = 'none';
        return true;
    }
}

// function for calendar entry type changed
function CalEntryChange()
{
    var eType = document.form1.cbEntryType.value;
    if (eType == 'e'){
        document.getElementById("event").style.display = 'inline';
        document.getElementById("birthday").style.display = 'none';
        document.getElementById("anniversary").style.display = 'none';
        document.getElementById("errorMsg").style.display = 'none';
        
        if (document.form1.cbRepeat) {
            rptChange();
        }
        else {
            document.getElementById("repeatRow").style.display = 'none';
        }
        
        if (document.form1.edtEventTime.value == '') {
            document.form1.edtEventTime.focus()
        }
        else if (document.form1.edtEventDesc.value == '') {
            document.form1.edtEventDesc.focus()
        }
    }
    else if (eType == 'b'){
        document.getElementById("event").style.display = 'none';
        document.getElementById("birthday").style.display = 'inline';
        document.getElementById("anniversary").style.display = 'none';
        document.getElementById("errorMsg").style.display = 'none';
        if (document.form1.edtBDayFName.value == '') {
            document.form1.edtBDayFName.focus()
        }
        else if (document.form1.edtBDaySName.value == '') {
            document.form1.edtBDaySName.focus()
        }
    }
    else if (eType == 'a'){
        document.getElementById("event").style.display = 'none';
        document.getElementById("birthday").style.display = 'none';
        document.getElementById("anniversary").style.display = 'inline';
        document.getElementById("errorMsg").style.display = 'none';
        if (document.form1.edtAnnHisName.value == '') {
            document.form1.edtAnnHisName.focus()
        }
        else if (document.form1.edtAnnHerName.value == '') {
            document.form1.edtAnnHerName.focus()
        }        
        else if (document.form1.edtAnnSurname.value == '') {
            document.form1.edtAnnSurname.focus()
        }
    }
}

// function for when calendar repeat event changed
function rptChange()
{
    var eType = document.form1.cbRepeat.checked;
    if (eType == true){
        document.getElementById('repeatRow').style.display = 'inline';
        document.getElementById('cbRepeatTime').selectedIndex = 0;
        document.getElementById('edtRepeat').value = '';
    }
    else {
        document.getElementById('repeatRow').style.display = 'none';
    }
}

// function for admin password checkbox changed
function adminPWChange()
{
    var eType = document.form1.cbChangePass.checked;
    if (eType == true){
        document.getElementById("edtPass").style.display = 'inline';
        document.getElementById("mandPass").style.display = 'inline';
        document.getElementById("edtPass").focus();
    }
    else {
        document.getElementById("edtPass").style.display = 'none';
        document.getElementById("mandPass").style.display = 'none';
    }
}

// function to validate admin profile update data
function validateAdminProfile()
{
    // validate that the data is supplied
    var sFName = document.form1.edtFName.value;
    var sSName = document.form1.edtSName.value;
    var sUsername = document.form1.edtUsername.value;
    var sEmail = document.form1.edtEmail.value;
    var sPW = document.form1.edtPass.value;
    
    if ((sFName == "")||(sSName == "")||(sUsername == "")||(sEmail == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("errorEmail").style.display = 'none';
        document.form1.edtFName.focus();
        return false;
    }
    else if ((document.form1.cbChangePass.checked)&&(sPW == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("errorEmail").style.display = 'none';
        document.form1.edtPass.focus();
        return false;
    }
    else if (!validateEmail(sEmail)) {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'inline';
        document.form1.edtEmail.focus();
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'none';
        return true;
    }
}

// function to validate email address
function validateEmail(sEmail)
{
    if ((sEmail == null)||(sEmail == "")) {
        return false;
    }
    else {
        // check that @ exists and is not at the start or end of the email
        if ((sEmail.indexOf("@") == -1)||(sEmail.indexOf("@") == 0)||(sEmail.indexOf("@") == sEmail.Length)) {
            return false;
        }
        // check that . exists and is not at the start or end of the email
        else if ((sEmail.indexOf(".") == -1)||(sEmail.indexOf(".") == 0)||(sEmail.indexOf(".") == sEmail.Length)) {
            return false;
        }
        // check that . and @ are not next to each other
        else if ((sEmail.indexOf(".")+1 == sEmail.indexOf("@"))||(sEmail.indexOf(".")-1 == sEmail.indexOf("@"))) {
            return false;
        }
        // check that there are no spaces
        else if (sEmail.indexOf(" ") > -1) {
            return false;
        }
        // check that there is not more than one @ in the email address
        else if (sEmail.substring(sEmail.indexOf("@")+1).indexOf("@") > -1) {
            return false;
        }
        // check that there is at least one . after the @
        else if (sEmail.substring(sEmail.indexOf("@")+1).indexOf(".") == -1) {
            return false;
        }
        else {
            return true;
        }
    }
}

// function to validate new admin profile data
function validateNewAdminProfile()
{
    // validate that the data is supplied
    var sFName = document.form1.edtFName.value;
    var sSName = document.form1.edtSName.value;
    var sUsername = document.form1.edtUsername.value;
    var sEmail = document.form1.edtEmail.value;
    
    if ((sFName == "")||(sSName == "")||(sUsername == "")||(sEmail == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("errorEmail").style.display = 'none';
        document.form1.edtFName.focus();
        return false;
    }
    else if (!validateEmail(sEmail)) {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'inline';
        document.form1.edtEmail.focus();
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'none';
        return true;
    }
}

// function to validate admin profile updates data
function validateAdminProfileUpdate()
{
    // validate that the data is supplied
    var sFName = document.form1.edtFName.value;
    var sSName = document.form1.edtSName.value;
    var sEmail = document.form1.edtEmail.value;
    
    if ((sFName == "")||(sSName == "")||(sEmail == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        document.getElementById("errorEmail").style.display = 'none';
        document.form1.edtFName.focus();
        return false;
    }
    else if (!validateEmail(sEmail)) {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'inline';
        document.form1.edtEmail.focus();
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        document.getElementById("errorEmail").style.display = 'none';
        return true;
    }
}

// function to validate calendar entry
function validateCalEntry()
{
    var sType = document.form1.cbEntryType.value.toLowerCase();
    if (sType == "e") {
        // validate event data
        var sTime = document.form1.edtEventTime.value;
        var sDesc = document.form1.edtEventDesc.value;
        var sRepeat = document.form1.edtRepeat.value;
        if ((sTime == "")||(sDesc == "")) {
            document.getElementById("errorMsg").style.display = 'inline';
            return false;
        }
        else if ((document.form1.cbRepeat.checked)&&(sRepeat == "")) {
            document.getElementById("errorMsg").style.display = 'inline';
            return false;            
        }
        else {
            document.getElementById("errorMsg").style.display = 'none';
            return true;
        }
    }
    else if (sType == "b") {
        // validate birthday data
        var sFName = document.form1.edtBDayFName.value;
        var sSName = document.form1.edtBDaySName.value;
        if ((sFName == "")||(sSName == "")) {
            document.getElementById("errorMsg").style.display = 'inline';
            return false;
        }
        else {
            document.getElementById("errorMsg").style.display = 'none';
            return true;
        }
    }
    else if (sType == "a") {
        // validate anniversary data
        var sHerName = document.form1.edtAnnHerName.value;
        var sHisName = document.form1.edtAnnHisName.value;
        var sSurname = document.form1.edtAnnSurname.value;
        if ((sHerName == "")||(sHisName == "")||(sSurname == "")) {
            document.getElementById("errorMsg").style.display = 'inline';
            return false;
        }
        else {
            document.getElementById("errorMsg").style.display = 'none';
            return true;
        }
    }
}

// function to validate contact form
function validateContactUs()
{
    var sName = document.form1.edtName.value;
    var sContact = document.form1.edtContact.value;
    var sMsg = document.form1.edtMessage.value;
    
    if ((sName == "")||(sContact == "")||(sMsg == "")) {
        document.getElementById("errorMsg").style.display = 'inline';        
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        return true;
    }
}

// function to validate administrator settings
function validateAdminSettings()
{
    var sResults = document.form1.edtResults.value;
    var sTimeout = document.form1.edtTimeout.value;
    
    if ((sResults == "")||(sTimeout == "")) {
        document.getElementById("errorInteger").style.display = 'none';
        document.getElementById("errorMsg").style.display = 'inline';    
        return false;
    }
    else if ((parseInt(sResults) != sResults-0)||(parseInt(sTimeout) != sTimeout-0)) {
        document.getElementById("errorInteger").style.display = 'inline';
        document.getElementById("errorMsg").style.display = 'none';
        return false;
    }
    else if ((parseInt(sResults) <= 0)||(parseInt(sTimeout) <= 0)) {
        document.getElementById("errorInteger").style.display = 'inline';
        document.getElementById("errorMsg").style.display = 'none';
        return false;
    }
    else {
        document.getElementById("errorInteger").style.display = 'none';
        document.getElementById("errorMsg").style.display = 'none';
        return true;
    }
}

// function to download sermon notes on sermon download page
function downloadNotes(id)
{
    document.form1.edtNoteID.value = id;
    document.form1.submit();
    document.form1.edtNoteID.value = '';
}

// function to download other resources on resources download page
function downloadResource(id)
{
    document.form1.edtResID.value = id;
    document.form1.submit();
    document.form1.edtResID.value = '';
}

// function for mousing over mercury logo
function logoOver()
{
    document.getElementById("mercurylogo").src = 'images/backgrounds/mercurylogo_over.png';
    document.getElementById("logotext").innerHTML = 'Site design by Mercury Systems';
}

// function for mousing out mercury logo
function logoOut()
{
    document.getElementById("mercurylogo").src = 'images/backgrounds/mercurylogo.png';
    document.getElementById("logotext").innerHTML = '';
}

// function to validate administrator sign in
function validateAdminLogon()
{
    var sUser = document.form1.edtUser.value;
    var sPass = document.form1.edtPass.value;
    if ((sUser == "")||(sPass == "")) {
        document.getElementById("errorLogon").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorLogon").style.display = 'none';
        return true;
    }
}

// function to validate administrator details recovery
function validateAdminRecovery()
{
    var sUser = document.form1.edtUser.value;
    var sEmail = document.form1.edtEmail.value;
    if ((sUser == "")&&(sEmail == "")) {
        document.getElementById("errorRecovery").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorRecovery").style.display = 'none';
        return true;
    }
}

// function to validate latest news & notices addition
function startNewsSave()
{
    var sTitle = document.form1.edtTitle.value;
    var sDesc = document.form1.edtDesc.value;
    var sDate = document.form1.edtDate.value;
    if ((sTitle == "")||(sDesc == "")||(sDate == "")) {
        document.getElementById("errorMsg").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("errorMsg").style.display = 'none';
        return true;
    }
}

// function to validate latest news & notices update
function startNewsUpdate()
{
    var sTitle = document.form1.updTitle.value;
    var sDesc = document.form1.updDesc.value;
    var sDate = document.form1.updDate.value;
    if ((sTitle == "")||(sDesc == "")||(sDate == "")) {
        document.getElementById("updError").style.display = 'inline';
        return false;
    }
    else {
        document.getElementById("updError").style.display = 'none';
        return true;
    }
}
