﻿/*globals jQuery*/

/// <reference path="jquery-1.6.2.min.js" />


var displayCssClass = "display-block";
var hideCssClass = "display-none";

jQuery.fn.firstParent = function (filterParameter) {
    var parent, filteredObject;
    parent = jQuery(this).parent();
    if (parent === null || parent === undefined) {
        return this;
    } else {
        filteredObject = (parent).filter(filterParameter);
        if (filteredObject !== undefined && filteredObject !== null && filteredObject.length > 0) {
            return filteredObject.first();
        } else {
            return jQuery(parent).firstParent(filterParameter);
        }
    }
};


jQuery.fn.firstSiblingOrParent = function (filterParameter) {
    var parent, filteredObject, siblings, foundParent;
    filteredObject = (jQuery(this).siblings()).filter(filterParameter);
    if (filteredObject != undefined && filteredObject != null && filteredObject.length > 0) {
        return filteredObject.first();
    } else {
        parent = jQuery(this).parent();
        if (parent == null || parent == undefined) {
            return null;
        } else {
            foundParent = jQuery(parent).filter(filterParameter);
            if (foundParent != undefined && foundParent != null && foundParent.length > 0) {
                return foundParent;
            } else {
                return jQuery(parent).firstSiblingOrParent(filterParameter);
            }
        }
    }
};


function showPasswordSpecialChars() {
    var span, currentClass, newClass;
    span = jQuery("#special-chars");
    if (span !== undefined) {
        currentClass = jQuery(span).hasClass(displayCssClass) ? displayCssClass : hideCssClass;
        newClass = currentClass !== undefined && currentClass === displayCssClass ? hideCssClass : displayCssClass;
        jQuery(span).removeClass(currentClass).addClass(newClass);
    }
}

function isTermsSelected(source, args) {
    var checkbox = jQuery("#website-terms").find("input:checkbox").first();
    if (checkbox !== undefined && checkbox != null) {
        args.IsValid = jQuery(checkbox).is(":checked");
    }
    else {
        args.IsValid = false;
    }
}

function forgotPwdClientValidate(validationGroup) {
    var isValidated = Page_ClientValidate(validationGroup);

    if (!isValidated) {
        jQuery("#forgot-pwd-validation-div").parent("div").removeClass(hideCssClass).removeClass(displayCssClass).addClass(displayCssClass);
    }

    return isValidated;
}

function consultantClicked(button) {
    var sectionDiv = jQuery(button).parents("div[class~='selection-block']").first();
    var parentDiv = jQuery(button).parent("div");

    if (!jQuery(parentDiv).hasClass("selected-option")) {
        if (sectionDiv !== null && sectionDiv !== undefined) {
            var children = $(sectionDiv).children("div[class~='selected-option']").first();

            if (children !== null && children !== undefined) {
                jQuery(children).removeClass("selected-option");
            }

            jQuery(button).parent("div").addClass("selected-option");
        }
    }

    setConsultantClickedHeader();
}

function setConsultantClickedHeader() {
    var rootDiv = jQuery("#option-selection");
    jQuery.each(jQuery(rootDiv).find("div[class~='selection-block']"), function (i, val) {
        var buttons = jQuery(val).find("a");
        var hasButtons = buttons != null && buttons != undefined && buttons.length > 0;
        var inactiveHeaderClass = "selection-block-header-inactive";
        var activeHeaderClass = "selection-block-header";
        var header = hasButtons ? jQuery(val).find("div[class ~= '" + inactiveHeaderClass + "']").first() : jQuery(val).find("div[class ~='" + activeHeaderClass + "']").first();

        if (header !== null && header !== undefined) {
            if (hasButtons) {
                jQuery(header).removeClass(inactiveHeaderClass).addClass(activeHeaderClass);
            }
            else {
                jQuery(header).removeClass(activeHeaderClass).addClass(inactiveHeaderClass);
            }
        }
    });
}

function setChildDivs() {
    var rootDiv = jQuery("#option-selection");
    var max = 0;
    jQuery.each(jQuery(rootDiv).find("div[class~='selection-block']"), function (i, val) {
        var optionsLength = jQuery(val).find("a").length;
        if (optionsLength != undefined && optionsLength != null && optionsLength > max) {
            max = optionsLength;
        }
    });

    jQuery.each(jQuery(rootDiv).find("div[class~='selection-block']"), function (i, val) {
        var optionsLength = jQuery(val).children("div[class~='selection-block-row selection-block-item']").length;
        if (optionsLength != undefined && optionsLength != null && optionsLength < max) {
            for (var i = optionsLength; i < max; i++) {
                jQuery("<div class ='selection-block-row selection-block-item'>&nbsp;</div>").appendTo(val);
            }
        }

        if (optionsLength > max) {
            var cells = jQuery(val).children("div[class~='selection-block-row selection-block-item']");
            for (var j = max; j < optionsLength; j++) {
                jQuery(cells[j]).remove();
            }
        }
    });
}

function showHideNewsCategoryDescription(hyperlink) {
    var parentRowDiv = jQuery(hyperlink).parents("div[class='row']").first();
    if (parentRowDiv != null && parentRowDiv != undefined) {
        var descriptionDiv = jQuery(parentRowDiv).siblings("div.category-description").first();
        if (descriptionDiv != null && descriptionDiv != undefined) {
            var removeClass, addClass, linkText;
            if (jQuery(descriptionDiv).hasClass('display-none')) {
                removeClass = 'display-none';
                addClass = 'display-block';
                linkText = 'Hide About';
            }
            else {
                addClass = 'display-none';
                removeClass = 'display-block';
                linkText = 'About';
            }

            jQuery(descriptionDiv).removeClass(removeClass).addClass(addClass);
            jQuery(hyperlink).text(linkText);
        }
    }
}

function registerUserClientValidate(validationGroup) {

    var institutionDivs = jQuery("#user-registration").find("div[institution='true'][class='display-none']");

    if (institutionDivs != null) {
        jQuery.each(institutionDivs, function () {
            var spanId = jQuery(this).find("span").first().attr("id");
            if (spanId != undefined) {
                ValidatorEnable($get(spanId), false);
            }

        });
    }
    jQuery("#error-div").html("");
    jQuery("#error-div").removeClass(displayCssClass).addClass(hideCssClass);
    return Page_ClientValidate(validationGroup);
}

function userRegistrationFailed() {
    var hasServerError, validationSummary, validationSummaryStyle;
    hasServerError = jQuery("#ErrorDiv").hasClass(displayCssClass);
    if (hasServerError) {
        validationSummary = jQuery("#RegistrationValidationSummary");
        validationSummaryStyle = jQuery(validationSummary).attr("style");
        if (validationSummaryStyle === null || validationSummaryStyle == undefined) {
            jQuery(validationSummary).html("");
            jQuery(validationSummary).attr("style", "display:none");
        }
    }
}

function disableValidators() {
    if ((typeof (Page_Validators) != 'undefined') && (Page_Validators != null)) {
        for (var i = 0; i < Page_Validators.length; i++) {
            ValidatorEnable(Page_Validators[i], false);
        }
    }
}

function userTypeSelectionChanged(list) {
    var selectedOption, selectedValue, firstDiv, institutionDivs;

    selectedOption = jQuery(list).find(":selected");
    if (selectedOption !== null && selectedOption !== undefined) {
        selectedValue = jQuery(selectedOption).attr("value");
        if (selectedValue === 'BSL' || selectedValue === 'NAS' || selectedValue === "") {
            jQuery.each(jQuery("#insititution-divs").find("div[institution='true'][type!='user']"), function () {
                jQuery(this).find("select").first().val("");
                jQuery(this).removeClass(displayCssClass).addClass(hideCssClass);
            });
        } else if (selectedValue === "STB" || selectedValue === "INS") {
            jQuery("#insititution-divs").removeClass(hideCssClass).addClass(displayCssClass);
            firstDiv = jQuery("#insititution-divs").find("div[institution='true'][type='user']").first();
            if (firstDiv != null && firstDiv != undefined) {
                jQuery(firstDiv).removeClass(hideCssClass).addClass(displayCssClass);
                institutionDivs = jQuery(firstDiv).siblings("div[institution='true'][type!='user']");
                if (institutionDivs != undefined && institutionDivs.length > 0) {
                    jQuery.each(institutionDivs, function (index, item) {
                        if (index === 0) {
                            jQuery(item).removeClass(hideCssClass).addClass(displayCssClass);
                        }
                        else {
                            jQuery(item).removeClass(displayCssClass).addClass(hideCssClass);
                        }
                        jQuery(item).find("select").first().val("");
                    });
                }
            }
        }
    }
}

function setInstitutionOnUserType(listId) {
    userTypeSelectionChanged(jQuery(listId));
}

function validatePasswordChange() {
    var errorDiv;
    errorDiv = jQuery("#change-password").find("div[servererror='true']").first();
    jQuery(errorDiv).removeClass(displayCssClass).addClass(hideCssClass);
    jQuery(jQuery(errorDiv).children("div").first()).html("");
    return Page_ClientValidate();
}

function addressLoadComplete(controlId) {
    changeAddressStateLabel(jQuery("#" + controlId));
}

function changeAddressStateLabel(rootDiv) {
    var country, stateLabelDiv;
    country = jQuery(rootDiv).find("div.country-list-block").find("option:selected").first().val();
    stateLabelDiv = jQuery(rootDiv).find("div.state-block").find("div.address-label");
    country = country == "" || country == undefined ? " " : country.toLowerCase();
    if (country === "aus") {
        stateLabelDiv.text("State:");
    } else if (country === "new zealand") {
        stateLabelDiv.text("City:");
    } else {
        stateLabelDiv.text("City/State:");
    }
}

function countrySelectionChanged(list) {
    var countryDivBlock, cityDivBlock, selectedCountry, removeCityCss, addCityCss, stateDivBlock, stateTextbox;
    countryDivBlock = jQuery(list).parentsUntil(".country-list-block").parent();
    cityDivBlock = jQuery(countryDivBlock).siblings("div[class='address-city-list-block']").first();
    stateDivBlock = jQuery(countryDivBlock).siblings("div.state-block").first();
    selectedCountry = jQuery(list).val() != undefined ? jQuery(list).val().trim().toLowerCase() : "";
    stateTextbox = jQuery(stateDivBlock).find("input:text").first();

    jQuery(stateTextbox).val("");
    if (selectedCountry === "aus") {
        removeCityCss = hideCssClass;
        addCityCss = displayCssClass;
        jQuery(cityDivBlock).find("input:text").first().val("");
        jQuery(stateDivBlock).find("input:text").first().val("");
        postcodeBlurred(jQuery(countryDivBlock).siblings("div[class='address-postcode-div-block']").first().find("input:text").first(), true);
    } else {
        removeCityCss = displayCssClass;
        addCityCss = hideCssClass;
        jQuery(cityDivBlock).find("select > option").remove();
        jQuery(stateDivBlock).find("select > option").remove();
    }

    jQuery(cityDivBlock).find("div .city-list").first().removeClass(removeCityCss).addClass(addCityCss);
    jQuery(cityDivBlock).find("div .city-input").first().removeClass(addCityCss).addClass(removeCityCss);
    jQuery(stateDivBlock).find("div .state-list").first().removeClass(removeCityCss).addClass(addCityCss);
    jQuery(stateDivBlock).find("div .state-input").first().removeClass(addCityCss).addClass(removeCityCss);

    changeAddressStateLabel(jQuery(countryDivBlock).parentsUntil("div.user-address").parent());
}

function postcodeBlurred(textbox, ignoreExisting) {
    var postCodeParentDiv, dropdownList, postcode, selectionInfoDiv, stateBlock, selectedCountry;
    postCodeParentDiv = jQuery(textbox).firstParent("div.address-postcode-div-block");
    dropdownList = jQuery(postCodeParentDiv).siblings("div[class='address-city-list-block']").find("select").first();
    stateBlock = jQuery(postCodeParentDiv).siblings("div.state-block").first();
    selectedCountry = jQuery(postCodeParentDiv).siblings("div[class='country-list-block']").find("option:selected").val();
    selectionInfoDiv = jQuery(textbox).siblings("div").first();
    postcode = jQuery(textbox).val();

    if (ignoreExisting || jQuery(selectionInfoDiv).text() != postcode) {
        jQuery(selectionInfoDiv).text(postcode);
        if (selectedCountry.toLowerCase() === "aus") {
            if (postcode !== "") {
                getSuburbs(postcode, selectedCountry, dropdownList);
                
            } else {
                jQuery(dropdownList).find("option").remove();
                populateList(dropdownList, "Please enter a valid postcode above ", "");
            }
        }
    }
}

function citySlectionChanged(cityList) {
    var parentblock, country, postcode, suburb, stateList;
    suburb = jQuery(cityList).val() != undefined ? jQuery(cityList).val().trim().toLowerCase() : "";

    parentblock = jQuery(cityList).parentsUntil(".address-city-list-block").parent();
    country = jQuery(parentblock).siblings("div[class='country-list-block']").first().find("select > option:selected").val();
    postcode = jQuery(parentblock).siblings("div[class='address-postcode-div-block']").first().find("input:text").first().val();
    stateList = jQuery(parentblock).siblings("div[class='state-block']").first().find("select").first();
    getPostStates(suburb, postcode, country, stateList);
}

function getSuburbs(postcode, country, dropdownlist) {
    var parameter = "{ postcode:'" + postcode + "', country:'" + country + "'}";

    jQuery.ajax({ data: parameter, success: function (jsonData) { suburbJsonCallback(jsonData.d, dropdownlist); },
        error: errorHandler, context: dropdownlist,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json', url: '/service/address.asmx/GetJsonCities', type: 'POST'
    });
}

function getPostStates(suburb, postcode, country, dropdownlist) {
    var parameter = "{ postcode:'" + postcode + "', country:'" + country + "', suburb:'" + suburb + "'}";

    jQuery.ajax({ data: parameter, success: function (jsonData) { stateJsonCallback(jsonData.d, dropdownlist); },
        error: errorHandler, context: dropdownlist,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json', url: '/service/address.asmx/GetJsonState', type: 'POST'
    });
}


function cancelAddressUpdateById(buttonId) {
    cancelAddressUpdate(jQuery("#" + buttonId));
}

function cancelAddressUpdate(button) {
    var sectionDiv, inputSection, countryList, selectedCountry;
    sectionDiv = jQuery(button).firstParent("div.section-block");
    inputSection = jQuery(sectionDiv).find("div[block='content-edit']");

    jQuery.each(jQuery(inputSection).find("input:text"), function (index, value) {
        jQuery(this).val("");
    });

    countryList = jQuery(inputSection).find("div[class='country-list-block']").first().find("select").first();

    selectedCountry = jQuery(countryList).find("option:selected");
    if (selectedCountry != null && selectedCountry != undefined && selectedCountry.length == 1) {
        jQuery(jQuery(selectedCountry).first()).removeAttr("selected");
        countrySelectionChanged(countryList);
    }

    jQuery(jQuery(sectionDiv).find("div[block='text-display']")).removeClass(hideCssClass).addClass(displayCssClass);
    jQuery(inputSection).removeClass(displayCssClass).addClass(hideCssClass);
    enableDisableMyAccountEditButtons(true);
    clearUserProfilelValidationSummary(jQuery(button).attr("id"));
}

function suburbJsonCallback(data, list) {

    var jsonData = JSON.parse(data);
    jQuery(list).find("option").remove();
    if (jsonData === null || jsonData.length <= 0) {
        populateList(list, "Please enter a valid postcode above ");
    } else {
        jQuery.each(jsonData, function (index, value) {
            populateList(list, value.Suburb, value.Suburb);
        });
        if (jsonData.length > 1) {
            jQuery(list).prepend("<option value =''>Select</option>");
            jQuery(list).val('');
        }
    }

    citySlectionChanged(list);
}

function stateJsonCallback(data, list) {
    var jsonData = JSON.parse(data);
    jQuery(list).find("option").remove();
    if (jsonData === null || jsonData.length <= 0) {
        populateList(list, "Please select a suburb above");
    } else {
        jQuery.each(jsonData, function (index, value) {
            populateList(list, value.State, value.State);
        });

        if (jsonData.length > 1) {
            jQuery(list).prepend("<option value =''>Select</option>");
            jQuery(list).val('');
        }
    }
}

function populateList(list, text, value) {
    jQuery("<option value='" + value + "'>" + text + "</option>").appendTo(jQuery(list));
}

function addressSaveClicked(button, validationGroup) {
    var rootDiv, invisibleDivs, errorMessageDiv;
    rootDiv = jQuery(button).firstParent("div.user-address");

    jQuery(jQuery(rootDiv).find("div[class~='" + hideCssClass + "']")).each(function (index) {
        jQuery(jQuery(this).find("span[validator='true']")).each(function (index) {
            ValidatorEnable($get(jQuery(this).attr("id")), false);
        });
    });

    return Page_ClientValidate(validationGroup);
}

function errorHandler(xhr, ajaxOptions, thrownError) {
    alert(xhr);
    alert(ajaxOptions);
    alert(thrownError);
}

function setUserProfileEditMode(button) {
    var sectionDiv, headerDiv, textDisplayDiv, eidtDiv;
    sectionDiv = jQuery(button).firstParent("div.section-block");
    headerDiv = jQuery(sectionDiv).children("div[block='header']").first();
    jQuery(jQuery(headerDiv).find("div.edit-button")).removeClass(displayCssClass).addClass(hideCssClass);
    textDisplayDiv = jQuery(sectionDiv).children("div[block='text-display']").first();
    jQuery(textDisplayDiv).removeClass(displayCssClass).addClass(hideCssClass);
    eidtDiv = jQuery(sectionDiv).children("div[block='content-edit']").first();
    jQuery(eidtDiv).removeClass(hideCssClass).addClass(displayCssClass);
    enableDisableMyAccountEditButtons(false);
}

function setContactDetailsEditMode(button) {
    setUserProfileEditMode(button);
    populateEditableUserProfile(jQuery(button).firstParent("div.section-block"));
    return false;
}

function enableDisableMyAccountEditButtons(enable) {
    var editButtons;
    editButtons = jQuery("input:submit[mode='edit']");
    jQuery.each(editButtons, function (index, value) {
        if (!enable) {
            jQuery(this).attr("disabled", true);
            jQuery(this).removeClass("button").addClass("button-disabled");
        } else {
            jQuery(this).removeAttr("disabled");
            jQuery(this).removeClass("button-disabled").addClass("button");
        }
    });
}

function setProfileNameEditMode(buttonName) {
    setUserProfileEditMode(jQuery('#' + buttonName));
}

function cancelUserProfileUpdate(button) {
    var sectionDiv, textDisplayDiv, email, headerDiv, textDisplayDiv, eidtDiv, errorMsgDiv;
    sectionDiv = jQuery(button).firstParent("div.section-block");
    headerDiv = jQuery(sectionDiv).children("div[block='header']").first();
    jQuery(jQuery(headerDiv).find("div.edit-button")).removeClass(hideCssClass).addClass(displayCssClass);
    textDisplayDiv = jQuery(sectionDiv).children("div[block='text-display']").first();
    jQuery(textDisplayDiv).removeClass(hideCssClass).addClass(displayCssClass);
    eidtDiv = jQuery(sectionDiv).children("div[block='content-edit']").first();
    jQuery(eidtDiv).removeClass(displayCssClass).addClass(hideCssClass);
    jQuery(sectionDiv).find("div[customerror='true']")
    clearUserProfilelValidationSummary(jQuery(button).attr("id"));
    enableDisableMyAccountEditButtons(true);

    return false;
}

function cancelUserDetailsUpdate(buttonId) {
    cancelUserProfileUpdate(jQuery('#' + buttonId));
}

function populateEditableUserProfile(sectionDiv) {
    email = getUserProfileLabelText(jQuery(sectionDiv).find("#email-label-div"));
    jQuery(getUserProfileInputBox(jQuery(sectionDiv).find("#email-input-div"))).val(email);
    jQuery(getUserProfileInputBox(jQuery(sectionDiv).find("#verify-email-input-div"))).val(email);
    jQuery(getUserProfileInputBox(jQuery(sectionDiv).find("#mobile-input-div"))).val(getUserProfileLabelText(jQuery(sectionDiv).find("#mobile-label-div")));
    jQuery(getUserProfileInputBox(jQuery(sectionDiv).find("#phone-input-div"))).val(getUserProfileLabelText(jQuery(sectionDiv).find("#phone-label-div")));

    var readonlyCheckbox = jQuery(sectionDiv).find("#promote-to-me-div-readonly").find("input:checkbox").first();
    var editableCheckbox = jQuery(sectionDiv).find("#promote-to-me-div").find("input:checkbox").first();

    if (jQuery(readonlyCheckbox).is(":checked")) {
        jQuery(editableCheckbox).attr("checked", "checked");
    } else {
        jQuery(editableCheckbox).removeAttr("checked");
    }
}

function getUserProfileLabelText(div) {
    var label = jQuery(div).find("span").first();
    return label != undefined && label != null ? jQuery(label).text() : "";
}

function getUserProfileInputBox(div) {
    return jQuery(div).find("input:text").first();
}

function updateUserDetailsClientValidate(button, validationGroup) {

    var sectionDiv, institutionDivs, validationDiv, serverErrorDiv;
    sectionDiv = jQuery(button).firstParent("div.section-block");
    serverErrorDiv = jQuery(jQuery(sectionDiv).children("div[block='validation']").first()).find("div[servererror='true']").first();
    jQuery(serverErrorDiv).removeClass(displayCssClass).addClass(hideCssClass);
    jQuery(jQuery(serverErrorDiv).find("div.validation-summary").first()).html("");

    institutionDivs = jQuery(sectionDiv).find("div[institution='true'][class='display-none']");

    if (institutionDivs != null) {
        jQuery.each(institutionDivs, function () {
            var spanId = jQuery(this).find("span[isvalidator='true']").first().attr("id");
            if (spanId != undefined) {
                ValidatorEnable($get(spanId), false);
            }

        });
    }
    return Page_ClientValidate(validationGroup)
}

function clearUserProfilelValidationSummary(buttonId) {

    var sectionDiv, summaryDiv, errorMsgDiv;
    sectionDiv = jQuery("#" + buttonId).firstParent("div.section-block");
    summaryDiv = jQuery(jQuery(sectionDiv).children("div[block='validation']").first()).find("div[validationsummary='true']").first();
    jQuery(summaryDiv).attr("style", "display:none");
    jQuery(summaryDiv).html("");
    errorMsgDiv = jQuery(jQuery(sectionDiv).children("div[block='validation']").first()).find("div[servererror='true']");
    jQuery(errorMsgDiv).removeClass(displayCssClass).addClass(hideCssClass);
    jQuery(errorMsgDiv).find("div.validation-summary").html("");
}

function clearChangePwdQuestionServerErrors() {
    var errorDiv;
    errorDiv = jQuery("#change-password-question").find("div[servererror='true']").first();
    jQuery(errorDiv).removeClass(displayCssClass).addClass(hideCssClass);
    jQuery(jQuery(errorDiv).children("div").first()).html("");

    return Page_ClientValidate();
}

function addUserAddress(control) {
    var sectionDiv = jQuery(control).firstParent("div.section-block");
    jQuery(jQuery(sectionDiv).find("div[block='content-edit']")).removeClass(hideCssClass).addClass(displayCssClass);
    jQuery(jQuery(sectionDiv).find("div[block='text-display']")).removeClass(displayCssClass).addClass(hideCssClass);
    enableDisableMyAccountEditButtons(false);
    clearUserProfilelValidationSummary(jQuery(control).attr("id"));
}

function addUserAddressById(controlId) {
    addUserAddress(jQuery("#" + controlId));
}


function validateSignIn(button, validationGroup) {
    var errorDiv, serverErrorDiv;
    errorDiv = jQuery(jQuery(button).firstSiblingOrParent("div[type='errors']"));
    serverErrorDiv = jQuery(errorDiv).find("div[type ='server-errors']").first();

    if (serverErrorDiv !== undefined && serverErrorDiv !== null && serverErrorDiv.length > 0) {
        jQuery(serverErrorDiv).html("");
    }

    return Page_ClientValidate(validationGroup);
}

function updateUserName(name) {
    jQuery("#LoginBoxUserName").text('Welcome ' + name);
}

function etextRequestPreviousFileProvidedChanged() {
    etextRequestSelectionChangedChanged("PreviousFileProvided", "Yes", "request-date-div");
}


function validateEtextOriginalRequestDate(val, eventArgs) {
    var selectedOption, display, removeClass, addClass;
    selectedOption = jQuery("#PreviousFileProvided").find(":selected");
    display = false;
    if (selectedOption !== null && selectedOption !== undefined) {
        display = jQuery(selectedOption).attr("value") === "Yes";
    }

    eventArgs.IsValid = display ? jQuery("#OriginalRequestDate").val() !== "" : true;
}

function etextRequestTermsValidation(val, eventArgs) {
    eventArgs.IsValid = jQuery("#TermsCheckbox").is(":checked");
}

function etextRequestDeliveryOptionChanged() {
    etextRequestSelectionChangedChanged("FileDeliveryOption", "1", "sutdentInfoDiv");
}

function etextRequestSelectionChangedChanged(listId, value, displayDiv) {
    var selectedOption, display, removeClass, addClass;
    selectedOption = jQuery("#" + listId).find(":selected");
    display = false;
    if (selectedOption !== null && selectedOption !== undefined) {
        display = jQuery(selectedOption).attr("value") === value;
    }

    removeClass = display ? hideCssClass : displayCssClass;
    addClass = display ? displayCssClass : hideCssClass;

    jQuery("#" + displayDiv).removeClass(removeClass).addClass(addClass);
}

function etextRequestStudentAddressValidation(value, eventArgs) {
    var selectedOption, display, removeClass, addClass, isValid;
    selectedOption = jQuery("#FileDeliveryOption").find(":selected");
    display = false;
    if (selectedOption !== null && selectedOption !== undefined) {
        display = jQuery(selectedOption).attr("value") === "1";
    }

    isValid = true;

    if (display) {
        if (jQuery("#StudentFirstName").val() === "" || jQuery("#StudentLastName").val() === "" || jQuery("#StudentEmail").val() === "" || jQuery("#StudentAddress1").val() === "" || jQuery("#StudentCity").val() === "" || jQuery("#StudentState").val() === "" || jQuery("#StudentPostcode").val() === "" || jQuery("#StudentCountry").val() === "") {
            isValid = false;
        }
    }
    eventArgs.IsValid = isValid;
}

function setBooksellerPageClass() {
    var hasRhs;
    hasRhs = jQuery("#RhsContent").hasClass(displayCssClass);
    if (!hasRhs) {
        jQuery("body").removeClass("panel");
    }
}

function priceCodeFileIcon(image) {
    var file, extension, startIndex, imageurl;
    var file = jQuery(image).attr("fileName");
    if (file !== null && file !== undefined) {
        startIndex = file.lastIndexOf(".");
        if (startIndex > -1) {
            extension = jQuery.trim(file.substring(startIndex)).toLowerCase();
        }
    }

    switch (extension) {
        case ".zip":
            imageurl = "/frontend/images/icons/zip.gif";
            break;
        case ".xls":
            imageurl = "/frontend/images/icons/xls.gif";
            break;
        case ".doc":
            imageurl = "/frontend/images/icons/doc.gif";
            break;
        case ".csv":
            imageurl = "/frontend/images/icons/word.gif";
            break;
        default:
            imageurl = "/frontend/images/icons/txt.gif";
    }

    jQuery(image).attr("src", imageurl);
}

function hideNoTitleDetailsProperties() {
    var spans, val, authorNameDiv;
    spans = jQuery("span[class='product-detail-text']");
    if (spans != null && spans != undefined) {
        jQuery.each(spans, function (i, span) {
            val = jQuery(span).text();
            if (val == '') {
                jQuery(span).parent("div").first().addClass(hideCssClass);
            }
        });
    }

    authorNameDiv = jQuery("div[class='title-author-name']");
    if (jQuery(authorNameDiv).text() === "") {
        jQuery(authorNameDiv).addClass(hideCssClass);
    }
}

