﻿// JScript File

function validateInput(ctrlName) {
    var ctrlVal = document.getElementById(ctrlName).value;
    var re = new RegExp("^[- A-Za-z]*$").test(ctrlVal);

    if (!re) {
        alert("Please enter letters only.");
        document.getElementById(ctrlName).focus();
        return false;
    }

    else
        return true;
}


function validatewpid(ctrlName) {
    var ctrlVal = document.getElementById(ctrlName).value;
    
    // Allow WPID (##-##), blank entries, or watermark text.
    var re = new RegExp(/^\d{2}-\d{2}$|^$|^enter paper ##-##$/).test(ctrlVal);
    if (!re) {
        alert("Please enter in ##-## format.");
        document.getElementById(ctrlName).focus();
        return false;
    }
    else {
        return true;
    }
}



function selectText(textBox) {
    var ctrl = document.getElementById(textBox);
    if (ctrl) {
        ctrl.select();
    }
}

function toggleType(senderName) {
    var ctrl;
    var caller = document.getElementById(senderName);

    if (caller.options[caller.selectedIndex].value == "4") {
        ctrl = document.getElementById("divJournal");
        ctrl.style["display"] = "";
    }
    else {
        ctrl = document.getElementById("divJournal");
        ctrl.style["display"] = "none";
    }
}

function toggleVisibility(ctrlName) {
    var ctrl = document.getElementById(ctrlName);

    if (ctrl.style["display"] == "none") {
        ctrl.style["display"] = "";
    }
    else {
        ctrl.style["display"] = "none";
    }
}

function AddAuth() {
    var ctrl = document.getElementById("divAuth2");

    if (ctrl.style["display"] == "none") { //We're adding in author #2
        ctrl.style["display"] = "";
        ctrl = document.getElementById("divAndOr1");
        ctrl.style["display"] = "";
        ctrl = document.getElementById("subtractAuth");
        ctrl.innerHTML = "<a href=\"javascript:SubtractAuth();\" class=\"plainunder\">Subtract one</a>";
    }
    else { //We're adding in author #3
        ctrl = document.getElementById("divAuth3");
        ctrl.style["display"] = "";
        ctrl = document.getElementById("divAndOr2");
        ctrl.style["display"] = "";
        ctrl = document.getElementById("addAuth");
        ctrl.innerHTML = "Add another";
        //probably unnecessary, but this ensures subtractAuth is correct
        ctrl = document.getElementById("subtractAuth");
        ctrl.innerHTML = "<a href=\"javascript:SubtractAuth();\" class=\"plainunder\">Subtract one</a>";
    }
}

function SubtractAuth() {
    var ctrl = document.getElementById("divAuth3");

    if (ctrl.style["display"] == "") { //We're removing author #3
        ctrl.style["display"] = "none";
        ctrl = document.getElementById("divAndOr2");
        ctrl.style["display"] = "none";
        ctrl = document.getElementById("addAuth");
        ctrl.innerHTML = "<a href=\"javascript:AddAuth();\" class=\"plainunder\">Add another</a>";
        //Reset the selected index of the ddl
        ctrl = document.getElementById("ddlAuth3");
        ctrl.selectedIndex = 0;
    }
    else { //We're removing author #2
        ctrl = document.getElementById("divAuth2");
        ctrl.style["display"] = "none";
        ctrl = document.getElementById("divAndOr1");
        ctrl.style["display"] = "none";
        ctrl = document.getElementById("addAuth");
        ctrl.innerHTML = "<a href=\"javascript:AddAuth();\" class=\"plainunder\">Add another</a>";
        ctrl = document.getElementById("subtractAuth");
        ctrl.innerHTML = "Subtract one";
        //Reset the selected index of the ddl
        ctrl = document.getElementById("ddlAuth2");
        ctrl.selectedIndex = 0;
    }
}

function toggleYear() {
    var ctrl = document.getElementById("spanToYear");

    if (ctrl.style["display"] == "none") {
        ctrl.style["display"] = "";
        ctrl = document.getElementById("lblYearRange2");
        ctrl.innerHTML = "<a href=\"javascript:toggleYear();\">Single year</a>";
        ctrl = document.getElementById("lblYearRange");
        ctrl.innerHTML = "Range of years";
    }
    else {
        ctrl.style["display"] = "none";
        ctrl = document.getElementById("lblYearRange");
        ctrl.innerHTML = "<a href=\"javascript:toggleYear();\">Range of years</a>";
        ctrl = document.getElementById("lblYearRange2");
        ctrl.innerHTML = "Single year";
        ctrl = document.getElementById("ddlToYear");
        ctrl.selectedIndex = 0;
    }
}

function searchRedirect(siteToSearch) {
    var ctrl;

    if (siteToSearch == "WCBA") {
        ctrl = document.getElementById("site");
        ctrl.value = "warrington.ufl.edu";
        ctrl = document.getElementById("query");
        ctrl.value = document.getElementById("searchQuery1").value;
    }
    else if (siteToSearch == "PURC") {
        ctrl = document.getElementById("site");
        ctrl.value = "warrington.ufl.edu/purc";
        ctrl = document.getElementById("query");
        ctrl.value = document.getElementById("searchQuery2").value;
    }
    else if (siteToSearch == "PURC2") {
        ctrl = document.getElementById("site");
        ctrl.value = "warrington.ufl.edu/purc/purcdocs/papers";
        ctrl = document.getElementById("query");
        ctrl.value = document.getElementById("searchQuery2").value;
    }

    // Temporarily remove __VIEWSTATE and __EVENTVALIDATION
    // we don't want to pass those via get
    var viewStateValue = document.getElementById("__VIEWSTATE").value;
    document.getElementById("__VIEWSTATE").value = "";
    var validationValue = document.getElementById("__EVENTVALIDATION").value;
    document.getElementById("__EVENTVALIDATION").value = "";

    document.forms[0].action = "http://search.ufl.edu/web";
    document.forms[0].method = "get";
    document.forms[0].target = "_blank";
    document.forms[0].submit();

    document.forms[0].action = location.href;
    document.forms[0].method = "post";
    document.forms[0].target = "";

    // Restore saved values
    document.getElementById("__VIEWSTATE").value = viewStateValue;
    document.getElementById("__EVENTVALIDATION").value = validationValue;
    return false;
}

function checkForEnter(e, siteToSearch) {
    var key;

    key = (window.event ? window.event.keyCode : e.which);
    if (key == 13) {
        searchRedirect(siteToSearch);
        return false;
    }
    else
        return true;

}

function SearchPapers(e) {
    var key;

    key = (window.event ? window.event.keyCode : e.which);
    if (key == 13) {
        document.forms[0].action = "pubdatabase.aspx";
        document.forms[0].method = "post";
        var ctrl = document.getElementById("btnSearch");
        ctrl.focus();
        ctrl.click();
        ctrl = document.getElementById("googleSearch");
        ctrl.disabled = true;
        return false;
    }
    else
        return true;
}

//printCitations, originally printSpecial,  was lifted from the MBA.js file, which lists Gino as creator.
//Modified to not just pull the head elements and instead use the listed CSS pages.

var gAutoPrint = true; // Tells whether to automatically call the print function

function printCitations() {
    if (document.getElementById != null) {
        var html = "<HTML>\n<HEAD>\n";

        html += "<link href=\"../scripts/print.css\" rel=\"stylesheet\" type=\"text/css\" />";
        html += "<link href=\"../scripts/print.css\" media=\"print\" rel=\"stylesheet\" type=\"text/css\" />";

        html += "\n</HEAD>\n<BODY>\n";

        var printReadyElem = document.getElementById("divDLResults");

        if (printReadyElem != null) {
            html += printReadyElem.innerHTML;
        }
        else {
            alert("Could not find the printReady function");
            return;
        }

        html += "\n</BODY>\n</HTML>";

        var printWin = window.open("", "printSpecial");
        printWin.document.open();
        printWin.document.write(html);
        printWin.document.close();
        if (gAutoPrint)
            printWin.print();
    }
    else {
        alert("The print ready feature is only available if you are using a newer browser. Please update your browswer.");
    }
}