$(document).ready(function() {

    AddJQueryDatePicker();

    if (typeof (Sys) == "undefined")
        return;

    var prm = Sys.WebForms.PageRequestManager.getInstance();

    prm.add_endRequest(UpdatePanelRequestComplete);
    prm.add_beginRequest(UpdatePanelRequest);

    RemoveNonJSControls();
    DisableEmptyComboBoxes();
});

function AddJQueryDatePicker() {

    if ($(".datepicker").length != 0) {

        $(".datepicker").datepicker({
            showOn: "button",
            buttonImage: "../../static/css/custom-theme/images/calendar_button.png",
            buttonImageOnly: true,
            changeMonth: true,
            changeYear: true
        });
    } 
}

function UpdatePanelRequest()
{
    $("#RpkFind .updatepanel").attr("disabled", "disabled");
}

function UpdatePanelRequestComplete()
{
    $("#RpkFind .updatepanel").attr("disabled", "");

    RemoveNonJSControls();
    DisableEmptyComboBoxes();
}

function DisableEmptyComboBoxes()
{
    $("#RpkFind select").each(function()
    {
        if ($("option", this).size() <= 1)
            $(this).attr("disabled", "disabled");
        else
            $(this).attr("disabled", "");
    });
}

function RemoveNonJSControls()
{
    $("#RpkFind .nonjsbutton").remove();
    $("#RpkFind .nonjsselect").removeClass("nonjsselect");
}


function AttachValidatorCompleteEvent() {

    $(document).ready(AttachValidatorCompleteEventCore);
}

function AttachValidatorCompleteEventCore() {

    if (typeof (ValidatorOnSubmit) == "undefined")
        return;

    var oldvalidatoronsubmit = (ValidatorOnSubmit) ? ValidatorOnSubmit : function() { return true; };
    ValidatorOnSubmit = function() { var ret = oldvalidatoronsubmit(); return ValidatorOnSubmitComplete(ret); }
}

function ValidatorOnSubmitComplete(ret) {

    if (!ret)
        UpdateLabels();

    return ret;
}

function UpdateLabels() {

    if (typeof (usrLabels) == "undefined")
        return;

    for (var j = 0; j < usrLabels.length; j++) {

        var label = document.getElementById(usrLabels[j][0]);

        var valid = true;
        for (var k = 1; k < usrLabels[j].length; k++) {
            var validator = document.getElementById(usrLabels[j][k]);

            if (validator != null && !validator.isvalid)
                valid = false;
        }

        if (!valid)
            label.className = 'invalid';
        else
            label.className = '';
    }
}

function usrLengthValidator_ClientValidate(source, args) {

    if (typeof (usrLengthValidator) == "undefined")
        return;

    args.IsValid = true;

    for (var j = 0; j < usrLengthValidator.length; j++) {
        if (usrLengthValidator[j][0] == source.id) {

            if (args.Value.length > usrLengthValidator[j][1]) {
                args.IsValid = false;
                break;
            }
        }
    }
}



function ValidatePage() {

    if (typeof (Page_ClientValidate) == "undefined")
        return;

    Page_ClientValidate();

    var ret = Page_IsValid;

    if (!ret)
        UpdateLabels();

    return ret;
}




//requires jquery-1.3.2
//Code for infopopups
$(document).ready(function() {

    $(".infolist").css("display", "none");
    $("a.infolink").bind("click", ShowInfoPopup);
    $(".infoclose").live("click", CloseInfoPopups);
});


function ShowInfoPopup(e) {

    
    if ($(this) == null)
        return;

    var href = $(this).attr("href");

    if (href == null || href.length < 6 || href.substr(0, 1) != "#" || href.substr(1, 4) != "info")
        return false;

    var position = $(this).offset();

    CloseInfoPopups();

    var info = "<h3>" + $("a[name=info" + href.substr(5) + "]").text() + "</h3>";
    info += $("#infopopup" + href.substr(5)).text();

    var infopopup = $(document.createElement("div"))
                            .hide()
                            .appendTo("body")
                            .html(info)
                            .addClass("infopopup")
                            .css("left", position.left)
                            .css("top", position.top);

    var infoclose = $(document.createElement("div"))
                    .appendTo(infopopup)
                    .text("x")
                    .addClass("infoclose")

    $(infopopup).fadeIn(500);

    return false;
}

function CloseInfoPopups() {
    $(".infopopup").fadeOut(500, function() { $(this).remove(); });
}

// end-of-infopopup



