var alertFallback = true;
   if (typeof console === "undefined" || typeof console.log === "undefined") {
     console = {};
     if (alertFallback) {
         console.log = function(msg) {
         };
     } else {
         console.log = function() {};
     }
   }
          
            var resultsPerPage = 50;
            var fullFormat = '<option value = "Both">Print & Electronic</option><option value = "Print">Print</option><option value = "Online">Electronic</option>';
            var mediaType = ''
            var browse1var = "";
            var browse2var = "";
            var browse3var = "";
            var booksOnSale = {};
			var booksOnSaleIds = [];

			var saleTermsPayloads = [];

            function booksOnSaleInit() {
				var donePrint = false;
				var doneOnline = false;
                var url = "/api/prop-values";
                var searchUrl = "/api/search";
                var payload = {
                    "prop-names": ["SaleTermsPrint", "SaleTermsOnline"],
                    "meta-type": "Book",
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false]
                }

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {

                        saleTermsOnline = data.SaleTermsOnline;
                        saleTermsPrint = data.SaleTermsPrint;

                        for (var i = 0; i < saleTermsPrint.length; i++) {
                            payload = {
                                "prop-names": ["SaleTermsPrint"],
                                "sort-prop": ["CopyrightYear", "Title"],
                                "invert-order": [true, false],
                                "all": ["{meta-type:Book}", "SaleTermsPrint:" + saleTermsPrint[i]],
                                "meta-type": "Book"
                            };
							saleTermsPayloads.push(payload);							
						}
                        for (var i = 0; i < saleTermsOnline.length; i++) {
                            payload = {
                                "prop-names": ["SaleTermsOnline"],
                                "sort-prop": ["CopyrightYear", "Title"],
                                "invert-order": [true, false],
                                "all": ["{meta-type:Book}", "SaleTermsOnline:" + saleTermsOnline[i]],
                                "meta-type": "Book"
                            };
							saleTermsPayloads.push(payload);
						}

						var x = 0;
						function processTerms (x) {
                            jQuery.ajax({
                                url: searchUrl,
                                method: "POST",
                                data: JSON.stringify(saleTermsPayloads[x]),
                                contentType: "application/json",
                                success: function(data) {
									var item;
									var year;
									var title;
                                    for (var j = 0; j < data.result.length; j++) {
										item = data.result[j];
										if (booksOnSaleIds.indexOf(item['url-id']) == -1) {
											booksOnSaleIds.push(item['url-id']);
											year = "'" + item['props']['CopyrightYear'] + "'";
											title = "'" + item['name'] + "'";
											if (!booksOnSale[year]) booksOnSale[year] = {};
											if (!booksOnSale[year][title]) booksOnSale[year][title] = [];
											booksOnSale[year][title].push(item);
										}
                                    }
									
									x++;
									if (x < saleTermsPayloads.length) {
										processTerms(x);
									}
									else {
										booksOnSale = jrhObjectSort(booksOnSale, 1);
										for (var year in booksOnSale) {
											booksOnSale[year] = jrhObjectSort(booksOnSale[year]);
										}
										
										var bookList = [];
										for (var year in booksOnSale) {
											for (var title in booksOnSale[year]) {
												for (var i = 0; i < booksOnSale[year][title].length; i++) {
													bookList.push(booksOnSale[year][title][i]);
												}
											}
										}

							            var initObject = {};
										initObject['result'] = bookList;
							            recall(initObject);
							        }
                                }
                            });							
						}

						processTerms(0);
                    }
                });
            }

			// sort objects, rev = reverse
			function jrhObjectSort (obj, rev) {
				var ordered = {};
				var keys = Object.keys(obj);
				if (rev) {
					keys.sort().reverse();
				}
				else {
					keys.sort();
				}

				var k = "";
				for (var i=0; i < keys.length; i++) {
					k = keys[i];
				   ordered[k] = obj[k];

				}
				return ordered;				
			}

            function booksOnSalebrowse1() {
                content = "";
                var subjects = [];
                var series = [];

                for (var i = 0; i < booksOnSale.length; i++) {
                    for (var j = 0; j < booksOnSale[i]['props']['Subject'].length; j++) {
                        var subj = booksOnSale[i]['props']['Subject'][j].trim();
                        var option = '<option value = "' + subj + '">' + subjectReplace(subj) +
                            '</option>'
                        found = false;
                        for (var k = 0; k < subjects.length; k++) {
                            if (subjects[k] == option) {
                                found = true;
                            }
                        }
                        if (!found) {
                            subjects.push(option)
                        }
                    }
                }
                for (var z = 0; z < subjects.length; z++) {
                    content = content + subjects[z];
                }

                content2 = ""
                for (var i = 0; i < booksOnSale.length; i++) {
                    var ser = booksOnSale[i]['props']['BookSeries'];
                    var option = '<option value = "' + ser + '">' + ser +
                        '</option>';
                    found = false;
                    for (var k = 0; k < series.length; k++) {
                        if (series[k] == option) {
                            found = true;
                        }
                    }
                    if (!found) {
                        series.push(option)
                    }
                }
                for (var z = 0; z < series.length; z++) {
                    content2 = content2 + series[z];
                }


                value1 = jQuery('.browse1').val()
                if (value1 == "subj") {
                    jQuery('.browse2').html(content);
                    jQuery('.browse2').prop('disabled', false);
                }

                if (value1 == "bookser") {
                    jQuery('.browse2').html(content2);
                    jQuery('.browse2').prop('disabled', false);
                }
                if (value1 == "Browse All") {
                    booksOnSaleInit();

                }

                jQuery('.browse2 option').each(function() {
                    if (jQuery(this).text() == "") {
                        jQuery(this).remove();
                    }
                })
                browse2()
            }


            function booksOnSalebrowse2() {
                value1 = jQuery('.browse1').val()
                value2 = jQuery('.browse2 option:selected').val()
                contentFormat = ""
                formats = [];

                if (value1 == "subj") {
                    for (var i = 0; i < booksOnSale.length; i++) {
                        for (var j = 0; j < booksOnSale[i]['props']['Subject'].length; j++) {
                            if (booksOnSale[i]['props']['Subject'][j] == value2) {
                                if (booksOnSale[i]['props']['Format'] == "Both") {
                                    var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">Print & Electronic</option>';
                                } else if (booksOnSale[i]['props']['Format'] == "Online") {
                                    var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">' + 'Electronic' + '</option>';
                                } else {
                                    var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">' + booksOnSale[i]['props']['Format'] + '</option>';

                                }

                                var found = false;
                                for (var k = 0; k < formats.length; k++) {
                                    if (formats[k] == option) {
                                        found = true;
                                    }
                                }
                                if (!found) {
                                    formats.push(option)
                                }
                            }
                        }
                    }
                    for (var z = 0; z < formats.length; z++) {
                        contentFormat = contentFormat + formats[z];
                    }
                    jQuery('.browse3').html(contentFormat);
                    jQuery('.browse3').prop('disabled', false);
                }
                if (value1 == "bookser") {
                    for (var i = 0; i < booksOnSale.length; i++) {
                        if (booksOnSale[i]['props']['BookSeries'] == value2) {
                            if (booksOnSale[i]['props']['Format'] == "Both") {
                                var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">Print & Electronic</option>';
                            } else if (booksOnSale[i]['props']['Format'] == "Online") {
                                var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">Electronic</option>';

                            } else {
                                var option = '<option value = "' + booksOnSale[i]['props']['Format'] + '">' + booksOnSale[i]['props']['Format'] + '</option>';

                            }

                            var found = false;
                            for (var k = 0; k < formats.length; k++) {
                                if (formats[k] == option) {
                                    found = true;
                                }
                            }
                            if (!found) {
                                formats.push(option)
                            }
                        }
                    }

                    for (var z = 0; z < formats.length; z++) {
                        contentFormat = contentFormat + formats[z];
                    }
                    jQuery('.browse3').html(contentFormat);
                    jQuery('.browse3').prop('disabled', false);
                }
            }

            function booksOnSalebrowseBooks() {
                var data = {}
                data['result'] = []
                var value1 = jQuery('.browse1').val()
                var value2 = jQuery('.browse2').val()
                var value3 = jQuery('.browse3').val()
                if (value1 == "subj") {
                    for (var x = 0; x < booksOnSale.length; x++) {
                        formatTest = false
                        subjectTest = false
                        if (booksOnSale[x]['props']['Format'] == value3) {
                            formatTest = true;
                        }
                        for (var y = 0; y < booksOnSale[x]['props']['Subject'].length; y++) {
                            if (booksOnSale[x]['props']['Subject'][y] == value2) {
                                subjectTest = true
                            }
                        }
                        if (subjectTest && formatTest) {
                            data['result'].push(booksOnSale[x]);
                        }
                    }
                    // console.log("booksonsalefunc")
                    jQuery('.browse').html('')
                    recall(data)
                }


                if (value1 == "bookser") {
                    for (var x = 0; x < booksOnSale.length; x++) {
                        formatTest = false
                        seriesTest = false
                        if (booksOnSale[x]['props']['Format'] == value3) {
                            formatTest = true;
                        }
                        if (booksOnSale[x]['props']['BookSeries'] == value2) {
                            seriesTest = true
                        }
                        if (seriesTest && formatTest) {
                            data['result'].push(booksOnSale[x]);
                        }
                    }
                   jQuery('.browse').html('')
                    recall(data)
                }








            }


            function subjectBrowse(payload) {
                var url = "/api/prop-values"

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var content = "<option value ='all'>All</option>";
                        var format = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Subject.length; i++) {
                            name = subjectReplace(data.Subject[i]);
                            content = content + '<option value = "' + data.Subject[i] + '">' + name + '</option>';
                        }
                        for (var i = 0; i < data.Format.length; i++) {
                            if (data.Format[i] == "Both") {
                                format = format + '<option value = "' + data.Format[i] + '">' + "Print & Electronic" + '</option>';
                            } else if (data.Format[i] == "Online") {
                                format = format + '<option value = "' + data.Format[i] + '">' + "Electronic" + '</option>';
                            } else {
                                format = format + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                            }
                        }
                        jQuery('.browse3').html(format);
                        // jQuery('.browse3').prop('disabled', false);
                        jQuery('.browse2').html(content);
                        // jQuery('.browse2').prop('disabled', false);
                        if (browse1var != "") {
                            jQuery('.browse2').val(browse1var);
                            browse1var = "";
                            browse2();
                        }

                    }
                })

            }

            function formatBrowse(payload) {
                var url = "/api/prop-values"

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var content = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Format.length; i++) {
                            if (data.Format[i] == "Both") {
                                content = content + '<option value = "' + data.Format[i] + '">' + "Print & Electronic" + '</option>';
                            } else if (data.Format[i] == "Online") {
                                content = content + '<option value = "' + data.Format[i] + '">' + "Electronic" + '</option>';

                            } else {
                                content = content + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                            }
                        }
                        jQuery('.browse3').html(content);
                        if (browse2var != "") {
                            jQuery('.browse3').val(browse2var);
                            browse2var = "";
                        }

                    }
                })

            }

            function browsePageBookSeriesSubject(payload) {
                var url = "/api/prop-values"

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var content = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Subject.length; i++) {
                            name = subjectReplace(data.Subject[i]);
                            content = content + '<option value = "' + data.Subject[i] + '">' + name + '</option>';
                        }
                        var format = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Format.length; i++) {
                            if (data.Format[i] == "Both") {
                                format = format + '<option value = "' + data.Format[i] + '">' + "Print & Electronic" + '</option>';
                            } else if (data.Format[i] == "Online") {
                                format = format + '<option value = "' + data.Format[i] + '">' + "Electronic" + '</option>';

                            } else {
                                format = format + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                            }
                        }

                        jQuery('.browse3').html(content);
                        // jQuery('.browse3').prop('disabled', false);
                        jQuery('.browse4').html(format);
                        // jQuery('.browse4').prop('disabled', false);
                        if (browse2var != "") {
                            jQuery('.browse3').val(browse2var);
                            browse2var = "";
                            browse3()
                        }
                    }
                })

            }

            function browsePageBookSeriesFormat(payload) {
                var url = "/api/prop-values"

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var content = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Format.length; i++) {
                            if (data.Format[i] == "Both") {
                                content = content + '<option value = "' + data.Format[i] + '">' + "Print & Electronic" + '</option>';
                            } else if (data.Format[i] == "Online") {
                                content = content + '<option value = "' + data.Format[i] + '">' + "Electronic" + '</option>';

                            } else {
                                content = content + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                            }
                        }
                        jQuery('.browse4').html(content);
                        if (browse3var != "") {
                            jQuery('.browse4').val(browse3var);
                            browse3var = "";
                        }
                    }
                })

            }



            function browsePageBookSeries(payload) {
                var url = "/api/prop-values"

                jQuery.ajax({
                    url: url,
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var content = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.BookSeries.length; i++) {
                            content = content + '<option value = "' + data.BookSeries[i] + '">' + data.BookSeries[i] + '</option>';
                        }

                        jQuery('.browse2').html(content);
                        jQuery('.browse4').html(mediaType);
                        if (browse1var != "") {
                            jQuery('.browse2').val(decodeURIComponent(browse1var));
                            browse1var = "";
                        }
                        browse2();

                    }
                })
            }


            function browseBooks(redirectPage) {
                value1 = jQuery('.browse1 option:selected').text();
                value2 = jQuery('.browse2').val();
                value3 = jQuery('.browse3').val();
                value4 = jQuery('.browse4').val();



                if (value1 == "What's New") {
                    window.location.href = "";
                } else if (value1 == "Browse All") {
                    window.location.href = "";

                }
                if (value1 == "Subject") {
                    urlstring = "Sub?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "Textbooks") {
                    urlstring = "Textbook?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "Applied Math") {
                    urlstring = "AppliedMath?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
				if (value1 == "Inquiry Based Learning") {
                    urlstring = "Ibl?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "Reference Books for Authors") {
                    urlstring = "Reference?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "Books not in Series") {
                    urlstring = "Nonseries?" + value2 + "?" + value3 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "AMS Book Series") {
                    value2 = jQuery('.browse2 option:selected').text();
                    if (value2.toLowerCase() == 'all') {
                        value2 = value2.toLowerCase()
                    }
                    urlstring = "AMS?" + value2 + "?" + value3 + "?" + value4 + "?page=0";
                    selectHash(urlstring);
                }
                if (value1 == "Distributed Book Series") {
                    value2 = jQuery('.browse2 option:selected').text();
                    if (value2.toLowerCase() == 'all') {
                        value2 = value2.toLowerCase()
                    }
                    urlstring = "Distributed?" + value2 + "?" + value3 + "?" + value4 + "?page=0";
                    selectHash(urlstring);
                }
//<GLL begin>
				if (value1 == "MAA Press Book Series") {
                    value2 = jQuery('.browse2 option:selected').text();
                    if (value2.toLowerCase() == 'all') {
                        value2 = value2.toLowerCase()
                    }
                    urlstring = "MAA?" + value2 + "?" + value3 + "?" + value4 + "?page=0";
                    selectHash(urlstring,redirectPage);
                }
//<GLL end>
                if (value1 == "Apparel and Gift Items") {
                    urlstring = "Misc" + "?page=0"
                    selectHash(urlstring);
                }
                if (value1 == "Media Products") {
                    urlstring = "Med?" + value2 + "?page=0"
                    selectHash(urlstring);
                }
            }

            function selectHash(val,redirectPage) {
				if (redirectPage) 
				{
					window.location.href = "/" + redirectPage + "#" + val;
				}
				else 
				{
					window.location.href = "/browse#" + val;
				}
            }

            function browse1() {
                jQuery('.browse2').show();
                jQuery('.browse3').show();
                var url = "/api/prop-values"
                var value = jQuery('.browse1').val()

                if (value == 'New') {
                    jQuery('.browse2').hide();
                    jQuery('.browse3').hide();
                    jQuery('.browse4').hide();
                }

                if (value == 'Browse All') {
                    jQuery('.browse2').hide();
                    jQuery('.browse3').hide();
                    jQuery('.browse4').hide();
                }
                if (value == 'sxg') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Subject", "Format"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);
                }
                if (value == 'Textbook') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Subject", "Textbook", "Format"],
                        "all": ["Textbook:true"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);
                }
                if (value == 'AppliedMath') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Subject", "AppliedMath", "Format"],
                        "all": ["AppliedMath:true"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);
                }
				if (value == 'Ibl') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Subject", "Ibl", "Format"],
                        "all": ["Ibl:true"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);
                }
                if (value == 'Reference') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Subject", "Reference", "Format"],
                        "all": ["Reference:true"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);
                }
                if (value == 'Nonseries') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').hide();
                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeriesType"],
                        "all": ["BookSeriesType:Nonseries"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);

                }
                if (value == 'Media') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').hide();
                    jQuery('.browse4').hide();

                    var payload = {
                        "prop-names": ["Subject", "Format", "Media"],
                        "all": ["Media:true"],
                        "meta-type": "Book"
                    }
                    subjectBrowse(payload);

                }

                if (value == 'misc') {
                    jQuery('.browse4').hide();
                    jQuery('.browse3').hide();
                    jQuery('.browse2').hide()
                }
                if (value == 'ser') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').show();
                    var payload = {
                        "prop-names": ["Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:AMS"],
                        "meta-type": "Book"
                    }
                    browsePageBookSeries(payload)


                }
                if (value == 'dis') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').show();
                    var payload = {
                        "prop-names": ["BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:Distributed"],
                        "meta-type": "Book"
                    }
                    browsePageBookSeries(payload)
                }
//<GLL begin>
                if (value == 'maa') {
                    jQuery('.browse2').show();
                    jQuery('.browse3').show();
                    jQuery('.browse4').show();
                    var payload = {
                        "prop-names": ["BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:MAA"],
                        "meta-type": "Book"
                    }
                    browsePageBookSeries(payload)
                }
//<GLL end>
                if (value == 'auth') {
                    jQuery('.browse2').hide();
                    jQuery('.browse3').hide();
                    window.location.href = "/authors/~bookindex?indexField=AuthorsSearch"
                }

            }

            function browse2() {
                var value = jQuery('.browse1').val()
                var value2 = jQuery('.browse2').val()
                var url = "/api/prop-values"


                if (value == 'sxg') {
                    var payload = {
                        "prop-names": ["Format", "Subject"],
                        "all": ["Subject:" + value2],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject"],
                            "meta-type": "Book"
                        }
                    }
                    formatBrowse(payload)

                }
                if (value == 'Textbook') {
                    var payload = {
                        "prop-names": ["Format", "Subject", "Textbook"],
                        "all": ["Subject:" + value2, "Textbook:true"],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject"],
                            "meta-type": "Book"
                        }
                    }
                    formatBrowse(payload)
                }
                if (value == 'Reference') {
                    var payload = {
                        "prop-names": ["Format", "Subject", "References"],
                        "all": ["Subject:" + value2, "Reference:true"],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject"],
                            "meta-type": "Book"
                        }
                    }
                    formatBrowse(payload)
                }
                if (value == 'AppliedMath') {
                    var payload = {
                        "prop-names": ["Format", "Subject", "AppliedMath"],
                        "all": ["Subject:" + value2, "AppliedMath:true"],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject"],
                            "meta-type": "Book"
                        }
                    }
                    formatBrowse(payload)
                }
				if (value == 'Ibl') {
                    var payload = {
                        "prop-names": ["Format", "Subject", "Ibl"],
                        "all": ["Subject:" + value2, "Ibl:true"],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject"],
                            "meta-type": "Book"
                        }
                    }
                    formatBrowse(payload)
                }
                if (value == 'dis') {
                    var url = "/api/prop-values"

                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:Distributed", "BookSeries:" + value2],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                            "all": ["BookSeriesType:Distributed"],
                            "meta-type": "Book"
                        }
                    }
                    browsePageBookSeriesSubject(payload);
                }
//<GLL begin>
                if (value == 'maa') {
                    var url = "/api/prop-values"

                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:MAA", "BookSeries:" + value2],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                            "all": ["BookSeriesType:MAA"],
                            "meta-type": "Book"
                        }
                    }
                    browsePageBookSeriesSubject(payload);
                }
//<GLL end>
                if (value == 'ser') {
                    var url = "/api/prop-values"

                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeriesType:AMS", "BookSeries:" + value2],
                        "meta-type": "Book"
                    }
                    if (value2 == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                            "all": ["BookSeriesType:AMS"],
                            "meta-type": "Book"
                        }
                    }
                    browsePageBookSeriesSubject(payload);


                }
            }

            function browse3() {
                var value = jQuery('.browse1').val()
                var value2 = jQuery('.browse2').val()
                var value3 = jQuery('.browse3').val()
                var payload = {
                    "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                    "all": ["Subject:" + value3, "BookSeries:" + value2],
                    "meta-type": "Book"
                }
                if (value2.toLowerCase() == 'all') {
                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["Subject:" + value3],
                        "meta-type": "Book"
                    }
                    if (value3.toLowerCase() == 'all') {
                        var payload = {
                            "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                            "all": [],
                            "meta-type": "Book"
                        }
                    }
                } else if (value3.toLowerCase() == 'all') {

                    var payload = {
                        "prop-names": ["Format", "Subject", "BookSeriesCode", "BookSeries", "BookSeriesType"],
                        "all": ["BookSeries:" + value2],
                        "meta-type": "Book"
                    }
                }


                if (value == 'ser') {
                    payload['all'].push("BookSeriesType:AMS")
                }
                if (value == "dis") {
                    payload['all'].push("BookSeriesType:Distributed")

                }
//<GLL begin>
				if (value == "maa") {
                    payload['all'].push("BookSeriesType:MAA")

                }
//<GLL end>
                browsePageBookSeriesFormat(payload);

            }






            function browseInit() {
                // jQuery('.browse2').hide();
                // jQuery('.browse3').hide();
                if (window.location.href.indexOf('#') < 0) {
                    payload = {

                        "full-info": true,
                        "meta-type": "Book",
                        "all": ["{meta-type:Book}"],
                        "sort-prop": ["CopyrightYear", "Title"],
                        "invert-order": [true, false]
                    }
                    page = 0
                    if (window.location.href.indexOf("page") > 0) {
                        page = window.location.href.substring(window.location.href.indexOf("page") + 5);
                    }
                    payload['start'] = (page * 50).toString()
                    payload['limit'] = "50"
                    jQuery.ajax({
                        type: "post",
                        url: "/api/search",
                        data: JSON.stringify(payload),
                        success: recall,
                        dataType: "json",
                        contentType: "application/json"
                    })


                }
            }
//<GLL begin>
            function maaBooksInit() {
                if (window.location.href.indexOf('#') < 0) {
                var payload = {
			        "full-info": true,	
                    "prop-names": ["MaaBook"],
                    "all": ["MaaBook:true", "{meta-type:Book}"],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }
                    page = 0
                    if (window.location.href.indexOf("page") > 0) {
                        page = window.location.href.substring(window.location.href.indexOf("page") + 5);
                    }
                    payload['start'] = (page * 50).toString()
                    payload['limit'] = "50"
                    jQuery.ajax({
                        type: "post",
                        url: "/api/search",
                        data: JSON.stringify(payload),
                        success: recall,
                        dataType: "json",
                        contentType: "application/json"
                    })


                }
            }
//<GLL end>			
            function featuredBooks() {
                var payload = {
                    "prop-names": ["Featured"],
                    "all": ["Featured:true", "{meta-type:Book}"],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }

                jQuery.ajax({
                    type: "post",
                    url: "/api/search",
                    data: JSON.stringify(payload),
                    success: recall,
                    dataType: "json",
                    contentType: "application/json"
                })
            }
//<GLL begin>
            function iblBooks() {
                var payload = {
                    "prop-names": ["Ibl"],
                    "all": ["Ibl:true", "{meta-type:Book}"],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }

                jQuery.ajax({
                    type: "post",
                    url: "/api/search",
                    data: JSON.stringify(payload),
                    success: recall,
                    dataType: "json",
                    contentType: "application/json"
                })
            }
//<GLL end>
//<GLL begin>
            function maaBooks() {
                var payload = {
                    "prop-names": ["MaaBook"],
                    "all": ["MaaBook:true", "{meta-type:Book}"],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }

                jQuery.ajax({
                    type: "post",
                    url: "/api/search",
                    data: JSON.stringify(payload),
                    success: recall,
                    dataType: "json",
                    contentType: "application/json"
                })
            }
//<GLL end>
            function getBookSeries(code) {
                if (window.location.href.indexOf("book-series") < 0) {
                    if (window.location.href.indexOf("#") < 0) {
                        var payload = {
                            "prop-names": ["BookSeriesCode"],
                            "all": ["BookSeriesCode:" + code, "{meta-type:Book}"],
                            "sort-prop": ["CopyrightYear", "Title"],
                            "invert-order": [true, false],
                            "meta-type": "Book",
                            "limit": "50"
                        }
                        page = 0
                        if (window.location.href.indexOf("page") > 0) {
                            page = window.location.href.substring(window.location.href.indexOf("page") + 5);
                        }
                        payload['start'] = (page * 50).toString()
                        payload['limit'] = "50"
                        jQuery.ajax({
                            type: "post",
                            url: "/api/search",
                            data: JSON.stringify(payload),
                            success: function(data) {
                                recall(data);
                                var payload = {
                                    "prop-names": ["Subject", "BookSeriesCode", "Format"],
                                    "all": ["BookSeriesCode:" + code],
                                    "sort-prop": ["CopyrightYear", "Title"],
                                    "invert-order": [true, false],
                                    "meta-type": "Book"
                                }
                                jQuery.ajax({
                                    url: "/api/prop-values",
                                    method: "POST",
                                    data: JSON.stringify(payload),
                                    contentType: "application/json",
                                    success: function(data) {
                                        var content = "<option value = 'all'>Browse All</option>"
                                        var format = "<option value ='all'>All</option>"
                                        for (var i = 0; i < data.Subject.length; i++) {
                                            name = subjectReplace(data.Subject[i]);
                                            content = content + '<option value = "' + data.Subject[i] + '">' + name + '</option>';
                                        }
                                        jQuery('.featuredSelect1').html(content);
                                        for (var i = 0; i < data.Format.length; i++) {
                                            if (data.Format[i] == 'Both') {
                                                format = format + '<option value = "' + data.Format[i] + '">' + 'Print & Electronic' + '</option>';
                                            } else if (data.Format[i] == 'Online') {
                                                format = format + '<option value = "' + data.Format[i] + '">' + 'Electronic' + '</option>';

                                            } else {
                                                format = format + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                                            }
                                        }
                                        jQuery('.featuredSelect2').html(format);

                                    }
                                })
                            },
                            dataType: "json",
                            contentType: "application/json"
                        })

                        // jQuery('.featuredSelect1').on("change", function() {
                        //     if (jQuery('.featuredSelect1').val() == "all") {
                        //         getBookSeries(code)
                        //     }
                        // })


                    }
                }
                jQuery('.featuredSelect1').unbind();
                jQuery('.featuredSelect1').change(
                    function() {
                        bookSeriesBrowse1(code)
                    });

            }


            function bookSeriesBrowse1(code) {
                value = jQuery('.featuredSelect1').val()
                var payload = {
                    "prop-names": ["Subject", "BookSeriesCode", "Format"],
                    "all": ["BookSeriesCode:" + code, "Subject:" + value],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }
                if (value == 'all') {
                    var payload = {
                        "prop-names": ["Subject", "BookSeriesCode", "Format"],
                        "all": ["BookSeriesCode:" + code],
                        "sort-prop": ["CopyrightYear", "Title"],
                        "invert-order": [true, false],
                        "meta-type": "Book"
                    }
                }

                jQuery.ajax({
                    url: "/api/prop-values",
                    method: "POST",
                    data: JSON.stringify(payload),
                    contentType: "application/json",
                    success: function(data) {
                        var format = "<option value ='all'>All</option>"
                        for (var i = 0; i < data.Format.length; i++) {
                            if (data.Format[i] == "Both") {
                                format = format + '<option value = "' + data.Format[i] + '">Print & Electronic</option>';
                            } else if (data.Format[i] == 'Online') {
                                format = format + '<option value = "' + data.Format[i] + '">' + 'Electronic' + '</option>';

                            } else {
                                format = format + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                            }

                        }
                        jQuery('.featuredSelect2').html(format);

                    }
                })
            }


            function bookSeriesBrowseBooks(code) {
                value1 = jQuery('.featuredSelect1').val();
                value2 = jQuery('.featuredSelect2').val();

                urlstring = "/" + BookSeriesCode + "#BookSeries?" + BookSeriesCode + "?" + value1 + "?" + value2 + "?page=0";
                bookSeriesSelectHash(urlstring);

            }

            function bookSeriesSelectHash(val) {
                window.location.href = val;
            }






            function reverse(data) {
                data.result.reverse();
                recall(data);
            }

            function hashchangeFunc(fragment) {
                var searchQuery = fragment.split("?")
                if (searchQuery[0] == "page") {

                } else {
                    if (searchQuery[0] == "BookSeries") {
                        page = 0
                        if (searchQuery[searchQuery.length - 1].indexOf("page") > -1) {

                            page = searchQuery[searchQuery.length - 1]
                            page = parseInt(page.substring(5))
                        }
                        payload = {
                            "prop-names": ["BookSeriesCode", "Subject", "Format"],
                            "full-info": true,
                            "meta-type": "Book",
                            "sort-prop": ["CopyrightYear", "Title"],
                            "invert-order": [true, false],
                            "all": ["BookSeriesCode:" + searchQuery[1], "Subject: " + searchQuery[2], "Format: " + searchQuery[3], "{meta-type:Book}"]
                        }
                        if (searchQuery[2] == 'all' && searchQuery[3] == 'all') {

                            payload = {
                                "prop-names": ["BookSeriesCode", "Subject", "Format"],
                                "full-info": true,
                                "meta-type": "Book",
                                "sort-prop": ["CopyrightYear", "Title"],
                                "invert-order": [true, false],
                                "all": ["BookSeriesCode:" + searchQuery[1], "{meta-type:Book}"]
                            }
                        } else if (searchQuery[2] == 'all') {
                            payload = {
                                "prop-names": ["BookSeriesCode", "Subject", "Format"],
                                "full-info": true,
                                "meta-type": "Book",
                                "sort-prop": ["CopyrightYear", "Title"],
                                "invert-order": [true, false],
                                "all": ["BookSeriesCode:" + searchQuery[1], "Format: " + searchQuery[3], "{meta-type:Book}"]
                            }
                        } else if (searchQuery[3] == 'all') {
                            payload = {
                                "prop-names": ["BookSeriesCode", "Subject", "Format"],
                                "full-info": true,
                                "meta-type": "Book",
                                "sort-prop": ["CopyrightYear", "Title"],
                                "invert-order": [true, false],
                                "all": ["BookSeriesCode:" + searchQuery[1], "Subject: " + searchQuery[2], "{meta-type:Book}"]
                            }
                        }




                        payload['start'] = (page * 50).toString()
                        payload['limit'] = "50"
                        jQuery.ajax({
                            type: "post",
                            url: "/api/search",
                            data: JSON.stringify(payload),
                            success: recall,
                            dataType: "json",
                            contentType: "application/json"
                        })




                        var payload = {
                            "prop-names": ["Subject", "BookSeriesCode", "Format"],
                            "all": ["BookSeriesCode:" + searchQuery[1]],
                            "sort-prop": ["CopyrightYear", "Title"],
                            "invert-order": [true, false],
                            "meta-type": "Book"
                        }
                        jQuery.ajax({
                            url: "/api/prop-values",
                            method: "POST",
                            data: JSON.stringify(payload),
                            contentType: "application/json",
                            success: function(data) {
                                var content = "<option value = 'all'>Browse All</option>"
                                var format = "<option value ='all'>All</option>"
                                for (var i = 0; i < data.Subject.length; i++) {
                                    name = subjectReplace(data.Subject[i]);
                                    content = content + '<option value = "' + data.Subject[i] + '">' + name + '</option>';
                                }
                                // console.log(content);
                                jQuery('.featuredSelect1').html(content);
                                jQuery('.featuredSelect1').val(searchQuery[2]);

                                if (searchQuery[2] != 'all') {
                                    payload['all'].push("Subject:" + searchQuery[2]);
                                }
                                jQuery.ajax({
                                    url: "/api/prop-values",
                                    method: "POST",
                                    data: JSON.stringify(payload),
                                    contentType: "application/json",
                                    success: function(data) {
                                        for (var i = 0; i < data.Format.length; i++) {
                                            if (data.Format[i] == 'Both') {
                                                format = format + '<option value = "' + data.Format[i] + '">' + 'Print & Electronic' + '</option>';
                                            } else if (data.Format[i] == 'Online') {
                                                format = format + '<option value = "' + data.Format[i] + '">' + 'Electronic' + '</option>';

                                            } else {
                                                format = format + '<option value = "' + data.Format[i] + '">' + data.Format[i] + '</option>';
                                            }
                                        }
                                        jQuery('.featuredSelect2').html(format);

                                        jQuery('.featuredSelect2').val(searchQuery[3]);


                                    }
                                })
                            }
                        })
                        jQuery('.featuredSelect1').unbind();
                        jQuery('.featuredSelect1').change(
                            function() {
                                bookSeriesBrowse1(searchQuery[1])
                            });





                    }

                    if (searchQuery[0] == "search") {

                        var searchParams = ["Title", "BaseProductCodeKeyword", "AuthorsSearch", "TranslatorsASCII", "Keywords", "AbstractASCII", "ISBN13Print", "ISBN13Online"]
                        page = searchQuery[searchQuery.length - 1]
                        page = parseInt(page.substring(5))
                            // console.log(page)

                        queryArray = []
                        searchQuery[1] = searchQuery[1];
                        if (decodeURIComponent(searchQuery[1]).split("/").length >= 2) {
                            for (var i = 0; i < searchParams.length; i++) {

                                queryArray.push(searchParams[i] + ":" + decodeURIComponent(searchQuery[1]));

                            }
                        } else {
                            for (var i = 0; i < searchParams.length; i++) {

                                queryArray.push("(" + searchParams[i] + ":" + decodeURIComponent(searchQuery[1]) + ")");

                            }
                        }
                        // queryArray.push("{meta-type:Book}")
                        payload = {
                            "full-info": true,
                            "meta-type": "Book",
                            "any": queryArray,
                            "sort-prop": ["CopyrightYear", "Title"],
                            "invert-order": [true, false],
                            "all": ["{meta-type:Book}"]
                        }
                        payload['start'] = (page * 50).toString()
                        payload['limit'] = "50"
                        jQuery.ajax({
                            type: "post",
                            url: "/api/search",
                            data: JSON.stringify(payload),
                            success: recall,
                            dataType: "json",
                            contentType: "application/json"
                        })


                    }


                    if (fragment.length > 0) {
                        if (window.location.href.indexOf("browse") > 0 || window.location.href.indexOf("~bookindex") > -1) {
                            var query = fragment.split("?")
                            var typeLength = query.length;
                            var payload = {}


                            if (typeLength == 4) {

                                if (query[0] == "Sub") {
                                    jQuery('.browse1').val('sxg');
                                    browse1var = query[1];
                                    browse2var = query[2];
                                    browse1();

                                    payload = {
                                        "prop-names": ["Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["Subject: " + query[1], "Format: " + query[2], "{meta-type:Book}"]
                                    }
                                    if (query[1] == "all" && query[2] == "all") {


                                        payload = {
                                            "prop-names": ["Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["{meta-type:Book}"]


                                        }
                                    } else if (query[1] == "all") {
                                        payload = {
                                            "prop-names": ["Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["Format: " + query[2], "{meta-type:Book}"]
                                        }

                                    } else if (query[2] == "all") {
                                        payload = {
                                            "prop-names": ["Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["Subject: " + query[1], "{meta-type:Book}"]
                                        }
                                    }




                                } else if (query[0] == "Nonseries") {
                                    jQuery('.browse1').val(query[0]);
                                    browse1var = query[1];
                                    browse2var = query[2];
                                    browse1();
                                    payload = {
                                        "prop-names": ["BookSeriesType", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: Nonseries", "Subject: " + query[1], "Format: " + query[2], "{meta-type:Book}"]
                                    }

                                    if (query[1] == "all" && query[2] == "all") {


                                        payload = {
                                            "prop-names": ["Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["BookSeriesType: Nonseries", "{meta-type:Book}"]
                                        }
                                    } else if (query[1] == "all") {
                                        payload = {
                                            "prop-names": ["BookSeriesType", "Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["BookSeriesType: Nonseries", "Format: " + query[2], "{meta-type:Book}"]
                                        }

                                    } else if (query[2] == "all") {
                                        payload = {
                                            "prop-names": ["BookSeriesType", "Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": ["BookSeriesType: Nonseries", "Subject: " + query[1], "{meta-type:Book}"]
                                        }
                                    }



                                } else {
                                    jQuery('.browse1').val(query[0]);
                                    browse1var = query[1];
                                    browse2var = query[2];
                                    browse1();
                                    payload = {
                                        "prop-names": [query[0], "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": [query[0] + ": true", "Subject: " + query[1], "Format: " + query[2], "{meta-type:Book}"]
                                    }
                                    if (query[1] == "all" && query[2] == "all") {


                                        payload = {
                                            "prop-names": [query[0], "Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": [query[0] + ": true", "{meta-type:Book}"]
                                        }
                                    } else if (query[1] == "all") {
                                        payload = {
                                            "prop-names": [query[0], "Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": [query[0] + ": true", "Format: " + query[2], "{meta-type:Book}"]
                                        }

                                    } else if (query[2] == "all") {
                                        payload = {
                                            "prop-names": [query[0], "Subject", "Format"],
                                            "full-info": true,
                                            "meta-type": "Book",
                                            "sort-prop": ["CopyrightYear", "Title"],
                                            "invert-order": [true, false],
                                            "all": [query[0] + ": true", "Subject: " + query[1], "{meta-type:Book}"]
                                        }
                                    }

                                }
                            } else if (typeLength == 5) {
                                if (query[0] == "AMS") {
                                    jQuery('.browse1').val('ser')
                                } else if (query[0] == "Distributed") {
                                    jQuery('.browse1').val('dis')
//<GLL begin>
                                } else if (query[0] == "MAA") {
                                    jQuery('.browse1').val('maa')
//<GLL end>
								}                             

                                // jQuery('.browse1').val(query[0]);
                                browse1var = query[1];
                                browse2var = query[2];
                                browse3var = query[3];
                                browse1();
// <sjt begin 5/5/2021>

                                payload = {
                                	"prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                	"full-info": true,
                                	"meta-type": "Book",
                                	"sort-prop": ["CopyrightYear", "Title"],
                                	"invert-order": [true, false],
                                	"all": ["BookSeriesType: " + query[0]]
                                }

                            	// sjt changes, instead of all these if statements, push item on to all array, if selected item <> all

                                if (query[1] != 'all') {
                                	payload.all.push("BookSeries: " + decodeURI(query[1]))
                                }
                                if (query[2] != 'all') {
                                	payload.all.push("Subject: " + query[2])
                                }
                                if (query[3] != 'all') {
                                	payload.all.push("Format: " + query[3])
                                }


                            	// and finally push meta-type
                                payload.all.push("{meta-type:Book}")


										/*
                                payload = {
                                    "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                    "full-info": true,
                                    "meta-type": "Book",
                                    "sort-prop": ["CopyrightYear", "Title"],
                                    "invert-order": [true, false],
                                    "all": ["BookSeriesType: " + query[0], "BookSeries: " + decodeURI(query[1]), "Subject: " + query[2], "Format: " + query[3], "{meta-type:Book}"]
                                }
                                if (query[1].toLowerCase() == "all" && query[2].toLowerCase() == 'all' && query[3].toLowerCase() == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "{meta-type:Book}"]
                                    }
                                } else if (query[1] == 'all' && query[2] == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "Format: " + query[3], "{meta-type:Book}"]
                                    }
                                } else if (query[2] == 'all' && query[3] == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "BookSeries: " + decodeURI(query[1]), "{meta-type:Book}"]
                                    }

                                } else if (query[1] == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "Subject: " + query[2], "Format: " + query[3], "{meta-type:Book}"]
                                    }
                                } else if (query[2] == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "BookSeries: " + decodeURI(query[1]), "Format: " + query[3], "{meta-type:Book}"]
                                    }
                                } else if (query[3] == 'all') {
                                    payload = {
                                        "prop-names": ["BookSeriesType", "BookSeries", "Subject", "Format"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["BookSeriesType: " + query[0], "BookSeries: " + decodeURI(query[1]), "Subject: " + query[2], "{meta-type:Book}"]
                                    }
                                }
										  */
// <sjt end 5/5/2021>

                            } else if (typeLength == 3) {
                                jQuery('.browse1').val('Media');
                                browse1var = query[1];
                                browse1();
                                payload = {
                                    "prop-names": ["Media", "Subject"],
                                    "full-info": true,
                                    "meta-type": "Book",
                                    "sort-prop": ["CopyrightYear", "Title"],
                                    "invert-order": [true, false],
                                    "all": ["Media: true", "Subject: " + query[1], "{meta-type:Book}"]
                                }
                                if (query[1] == 'all') {
                                    payload = {
                                        "prop-names": ["Media", "Subject"],
                                        "full-info": true,
                                        "meta-type": "Book",
                                        "sort-prop": ["CopyrightYear", "Title"],
                                        "invert-order": [true, false],
                                        "all": ["Media: true", "{meta-type:Book}"]
                                    }
                                }

                            } else if (typeLength == 2) {
                                payload = {
                                    "prop-names": "ProductType",
                                    "full-info": true,
                                    "meta-type": "Book",
                                    "sort-prop": ["CopyrightYear", "Title"],
                                    "invert-order": [true, false],
                                    "all": ["ApparelGift: true", "{meta-type:Book}"]
                                }
                            };
                            page = query[query.length - 1]
                            page = parseInt(page.substring(5))
                                // console.log(page)
                            payload['start'] = (page * 50).toString()
                            payload['limit'] = "50"
                            jQuery.ajax({
                                type: "post",
                                url: "/api/search",
                                data: JSON.stringify(payload),
                                success: recall,
                                dataType: "json",
                                contentType: "application/json"
                            })

                        }

                    } else {

                        window.location.href = "";
                    }
                }
            }


            function callSeries() {
                var payload = {
                    "prop-names": ["BookSeries", "Keywords"],
                    "sort-prop": ["CopyrightYear", "Title"],
                    "invert-order": [true, false],
                    "meta-type": "Book"
                }
                jQuery.ajax({
                    type: "post",
                    url: "/api/prop-values",
                    data: JSON.stringify(payload),
                    success: putInAdvancedSearch,
                    dataType: "json",
                    contentType: "application/json"
                })
            }

            function putInAdvancedSearch(data) {
                content = "";
                for (var i = 0; i < data.BookSeries.length; i++) {
                    content = content + '<option>' + data.BookSeries[i] + '</option>';
                }
                content2 = ""
                for (var i = 0; i < data.Keywords.length; i++) {
                    content2 = content2 + '<option>' + data.Keywords[i] + '</option>';
                }
                jQuery('.advancedSeries').append('<option>Book Series</option>');
                jQuery('.advancedSeries').append(content);
                //  jQuery('.keywords').append('<option>Keywords</option>');
                // jQuery('.keywords').append(content2);
            }

            function advancedSearch() {

                var titlePlaceholder = "e.g. A Course on Large Deviations";
                var authorPlaceholder = "e.g. Tenenbaum";
                var anywherePlaceholder = "e.g. classical mechanics and related areas"

                callSeries();

                function placeholder(num, val) {
                    if (val == "Title") {
                        jQuery('.advancedText' + num).attr("placeholder", titlePlaceholder)
                    } else if (val == "Authors") {
                        jQuery('.advancedText' + num).attr("placeholder", authorPlaceholder)
                    } else if (val == "ANYWHERE") {
                        jQuery('.advancedText' + num).attr("placeholder", anywherePlaceholder)
                    } else if (val == "Keyword") {} else {
                        jQuery('.advancedText' + num).attr("placeholder", "")
                    }
                }
                jQuery(".advancedType1").change(function() {
                    var type1 = jQuery('.advancedType1').val();
                    placeholder(1, type1);
                });
                jQuery(".advancedType2").change(function() {
                    var type2 = jQuery('.advancedType2').val();
                    placeholder(2, type2);
                });
                jQuery(".advancedType3").change(function() {
                    var type3 = jQuery('.advancedType3').val();
                    placeholder(3, type3);
                });


                jQuery('#advancedSearchClear').on("click", function() {
                    jQuery('.advancedText1').val('');
                    jQuery('.advancedText2').val('');
                    jQuery('.advancedText3').val('');
                    jQuery('.pubYear').val('');
                    jQuery('.advancedSeries').val('Book Series')
                    jQuery('.advancedSubject').val('')

                })


                function advancedSearchGo() {
                    var type1 = jQuery('.advancedType1').val();
                    var type2 = jQuery('.advancedType2').val();
                    var type3 = jQuery('.advancedType3').val();
                    var text1 = jQuery('.advancedText1').val();
                    var text2 = jQuery('.advancedText2').val();
                    var text3 = jQuery('.advancedText3').val();
                    var pubyear = jQuery('.pubYear').val();
                    var series = jQuery('.advancedSeries option:selected').text();
                    var subject = jQuery('.advancedSubject').val();
                    // var keyword = jQuery('.keywords option:selected').text();

                    var searchString = "~searchResults?searchMode=advanced&context=-2&lang=&"


                    if (text1 != "") {
                        if (type1 == "ANYWHERE") {
                            searchString = searchString + "searchText=" + encodeURI(text1) + "&";

                        } else {
                            searchString = searchString + "searchParam-" + type1 + "=" + encodeURI(text1) + "&";
                        }

                    }
                    if (text2 != "") {
                        if (type2 == "ANYWHERE") {
                            searchString = searchString + "searchText=" + encodeURI(text2) + "&";

                        } else {
                            searchString = searchString + "searchParam-" + type2 + "=" + encodeURI(text2) + "&";
                        }
                    }
                    if (text3 != "") {
                        if (type3 == "ANYWHERE") {
                            searchString = searchString + "searchText=" + encodeURI(text3) + "&";

                        } else {
                            searchString = searchString + "searchParam-" + type3 + "=" + encodeURI(text3) + "&";
                        }
                    }
                    if (pubyear != "") {
                        searchString = searchString + "searchParam-CopyrightYear=" + pubyear + "&";
                    }
                    if (series != "Book Series") {
                        searchString = searchString + "searchParam-BookSeries=" + encodeURI(series) + "&";
                    }
                    if (subject != "") {
                        searchString = searchString + "searchParam-Subject=" + subject + "&";
                    }
                    // if (keyword != "Keywords") {
                    //     searchString = searchString + "searchParam-Keywords=" + keyword + "&";
                    // }
                    window.location.href = "/" + searchString + "?page=0";


                }


                jQuery(document).keypress(function(e) {
                    if (e.which == 13) {
                        e.preventDefault()
                        advancedSearchGo();
                    }
                });
                jQuery('#advancedSearchGo').on("click", advancedSearchGo)
            }



            function subjectReplace(code) {
                switch (code) {
                    case "GI":
                        return "General Interest";
                        break;
                    case "AA":
                        return "Algebra and Algebraic Geometry";
                        break;
                    case "AP":
                        return "Applications";
                        break;
                    case "MP":
                        return "Mathematical Physics";
                        break;
                    case "NT":
                        return "Number Theory";
                        break;
                    case "PR":
                        return "Probability and Statistics";
                        break;
                    case "DM":
                        return "Discrete Mathematics and Combinatorics";
                        break;
                    case "ME":
                        return "Math Education";
                        break;
                    case "GT":
                        return "Geometry and Topology";
                        break;
                    case "LF":
                        return "Logic and Foundations";
                        break;
                    case "AN":
                        return "Analysis";
                        break;
                    case "DE":
                        return "Differential Equations";
                        break;
//<GLL begin>
                    case "CA":
                        return "Calculus";
                        break;
//<GLL end>
						}
            }


            function recall(data) {
                apiData = data
                payload = data['json-argument']
                var thisurl = window.location.href
                isAdvancedSearch = false
                var isSearch = false;
                var isOnSale = false;
                var searchQuery = thisurl.split("?")
                var searchTerm = searchQuery[1]
                booksInBrowse = data.result.length;
                showing = booksInBrowse
                if (booksInBrowse > resultsPerPage) {
                    showing = resultsPerPage;
                }
                if (window.location.href.indexOf("books-on-sale") > 0) {
                    isOnSale = true;
                }
                if (thisurl.indexOf('advanced') > 0) {
                    var isAdvancedSearch = true;
                    jQuery('ol').addClass('browse').html('').addClass('featured')
                } else if (isOnSale) {

                        // return "";
                    }else if(window.location.href.indexOf("AuthorsSearch") > 0){
                        jQuery.ajax({
                        type: "post",
                        url: "/api/search-count",
                        data: JSON.stringify(payload),
                        success: function(data) {
                            jQuery('.numResults').text(data)
                                // console.log(data)


                            jQuery('.t-nav-top').each(function() {
                                if (jQuery(this).children().length == 0) {
                                    jQuery(this).remove();
                                }
                            })
                            jQuery('.t-nav-bottom').each(function() {
                                if (jQuery(this).children().length == 0) {
                                    jQuery(this).remove();
                                }
                            })
                            numResults = data['json-argument']
                            currentPage = apiData['json-argument']['start'] / 50
                                // console.log(currentPage)

                            jQuery('.t-nav-next').remove();
                            jQuery('.t-nav-prev').remove();

                            urlstring = window.location.href
                            if(urlstring.lastIndexOf("/")!=urlstring.length-1){
                            urlstring = urlstring.substring(urlstring.lastIndexOf("/"))
                        }
                            currentPage = urlstring.substring(urlstring.indexOf("page=") + 5)
                            nextUrlString = urlstring.substring(0, urlstring.indexOf("page=") + 5) + (parseInt(currentPage) + 1)
                            prevUrlString = urlstring.substring(0, urlstring.indexOf("page=") + 5) + (parseInt(currentPage) - 1)
                            if (isNaN(currentPage)) {
                                currentPage = 0;
                            }
                            if (urlstring.indexOf("page=") < 0) {
                                nextUrlString = urlstring + "?page=" + (currentPage + 1).toString()
                                prevUrlString = urlstring + "?page=" + (currentPage - 1).toString()

                            }
                            var showing1 = currentPage * 50 + 1
                            var showing2 = currentPage * 50 + 50
                            jQuery('.result').each(function(e){
                                    if(e < (showing1 -1) || e>showing2-1){
                                        jQuery(this).hide();
                                    }
                            })
                            if (data > 50) {
                                jQuery('.browse').prepend('<div class=" t-nav t-nav-top"></div>');
                                jQuery('.browse').after('<div class=" t-nav t-nav-bottom"></div>');

                                if (currentPage == 0) {
                                    jQuery('.t-nav-top').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results </a> ');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                    jQuery('.t-nav-bottom').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results </a> ');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                } else if (currentPage * 50 + 50 < data) {
                                    jQuery('.t-nav-top').append('<a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a>   |  ');
                                    jQuery('.t-nav-top').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results</a>');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                    jQuery('.t-nav-bottom').append('<a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a>   |  ');

                                    jQuery('.t-nav-bottom').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results</a>');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')

                                } else {
                                    jQuery('.t-nav-top').append('<div class=" t-nav t-nav-top"><a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a> </div>');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')
                                    jQuery('.t-nav-bottom').append('<div class=" t-nav t-nav-bottom"><a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a> </div>');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')

                                }
                            } else if (data == 0) {
                                jQuery('.browse').prepend('<p class=" t-hits t-hitcount">No Results Found</p>')


                            } else {
                                jQuery('.browse').prepend('<p class=" t-hits t-hitcount" style = "margin-bottom:20px">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')
                                jQuery('.browse').after('<p class=" t-hits t-hitcount" style = "margin-top:20px">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')


                            }

                         


                        },
                        dataType: "json",
                        contentType: "application/json"
                    })
                

                } else {
                    jQuery('.t-hitcount').remove();
                    jQuery('.t-nav-next').remove();
                    jQuery('.t-nav-prev').remove();
                    jQuery('.browse').html('')
                    jQuery.ajax({
                        type: "post",
                        url: "/api/search-count",
                        data: JSON.stringify(payload),
                        success: function(data) {
                            jQuery('.numResults').text(data)
                                // console.log(data)


                            jQuery('.t-nav-top').each(function() {
                                if (jQuery(this).children().length == 0) {
                                    jQuery(this).remove();
                                }
                            })
                            jQuery('.t-nav-bottom').each(function() {
                                if (jQuery(this).children().length == 0) {
                                    jQuery(this).remove();
                                }
                            })
                            numResults = data['json-argument']
                            currentPage = apiData['json-argument']['start'] / 50
                                // console.log(currentPage)

                            jQuery('.t-nav-next').remove();
                            jQuery('.t-nav-prev').remove();

                            urlstring = window.location.href
                            if(urlstring.lastIndexOf("/")!=urlstring.length-1){
                            urlstring = urlstring.substring(urlstring.lastIndexOf("/"))
                        }
                            currentPage = urlstring.substring(urlstring.indexOf("page=") + 5)
                            nextUrlString = urlstring.substring(0, urlstring.indexOf("page=") + 5) + (parseInt(currentPage) + 1)
                            prevUrlString = urlstring.substring(0, urlstring.indexOf("page=") + 5) + (parseInt(currentPage) - 1)
                            if (isNaN(currentPage)) {
                                currentPage = 0;
                            }
                            if (urlstring.indexOf("page=") < 0) {
                                nextUrlString = urlstring + "?page=" + (currentPage + 1).toString()
                                prevUrlString = urlstring + "?page=" + (currentPage - 1).toString()

                            }
                            var showing1 = currentPage * 50 + 1
                            var showing2 = currentPage * 50 + 50

                            if (data > 50) {
                                jQuery('.browse').prepend('<div class=" t-nav t-nav-top"></div>');
                                jQuery('.browse').after('<div class=" t-nav t-nav-bottom"></div>');

                                if (currentPage == 0) {
                                    jQuery('.t-nav-top').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results </a> ');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                    jQuery('.t-nav-bottom').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results </a> ');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                } else if (currentPage * 50 + 50 < data) {
                                    jQuery('.t-nav-top').append('<a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a>   |  ');
                                    jQuery('.t-nav-top').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results</a>');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')
                                    jQuery('.t-nav-bottom').append('<a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a>   |  ');

                                    jQuery('.t-nav-bottom').append('<a href = "' + nextUrlString + '" class="t-nav-link t-nav-next" > Next Results</a>');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + showing2 + '.</p>')

                                } else {
                                    jQuery('.t-nav-top').append('<div class=" t-nav t-nav-top"><a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a> </div>');
                                    jQuery('.browse').prepend('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')
                                    jQuery('.t-nav-bottom').append('<div class=" t-nav t-nav-bottom"><a href = "' + prevUrlString + '" class="t-nav-link t-nav-next" > Previous Results </a> </div>');
                                    jQuery('.browse').after('<p class=" t-hits t-hitcount">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')

                                }
                            } else if (data == 0) {
                                jQuery('.browse').prepend('<p class=" t-hits t-hitcount">No Results Found</p>')


                            } else {
                                jQuery('.browse').prepend('<p class=" t-hits t-hitcount" style = "margin-bottom:20px">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')
                                jQuery('.browse').after('<p class=" t-hits t-hitcount" style = "margin-top:20px">Found <span class ="numResults">' + data + '</span> results. Showing results ' + showing1 + ' to ' + data + '.</p>')


                            }

                            // if (currentPage != 0) {
                            //     jQuery('.t-nav-top').append('<a href = "#page?' + (currentPage - 1) + '" class="t-nav-link t-nav-prev" > Previous Results </a>');
                            //     jQuery('.t-nav-bottom').append('<a href = "#page?' + (currentPage - 1) + '" class="t-nav-link t-nav-prev" > Previous Results </a>');

                            // }
                            // if (numResults > currentPage * resultsPerPage + resultsPerPage) {
                            //     jQuery('.t-nav-top').append('<a href = "#page?' + (currentPage + 1) + '" class="t-nav-link t-nav-next" > Next Results </a>');
                            //     jQuery('.t-nav-bottom').append('<a href = "#page?' + (currentPage + 1) + '" class="t-nav-link t-nav-next" > Next Results </a>');
                            // }
                            // if(numResults < (currentPage * resultsPerPage + resultsPerPage)){
                            // jQuery(".t-hitcount").html('Found <span class  = "numResults">' + numResults + '</span> results. Showing results ' + (currentPage * resultsPerPage + 1) + ' to ' + numResults + '.');

                            // }else{
                            // jQuery(".t-hitcount").html('Found <span class  = "numResults">' + numResults + '</span> results. Showing results ' + (currentPage * resultsPerPage + 1) + ' to ' + (currentPage * resultsPerPage + resultsPerPage) + '.');
                            // }
                            // if (((currentPage + 1) * resultsPerPage) > numResults) {
                            //     // jQuery('.t-stacked.col-md-10').append('<p class=" t-hits t-hitcount">Found ' + numResults + ' results. Showing results ' + (currentPage *resultsPerPage +1) + ' to ' + numResults + '.</p>')
                            //     // jQuery('#content').append('<p class=" t-hits t-hitcount">Found ' + numResults + ' results. Showing results ' + (currentPage *resultsPerPage +1) + ' to ' + numResults + '.</p>')

                            // } else {
                            //     // jQuery('.t-stacked.col-md-10').append('<p class=" t-hits t-hitcount">Found ' + numResults + ' results. Showing results ' + (currentPage *resultsPerPage +1) + ' to ' + ((currentPage+1) * resultsPerPage) + '.</p>')
                            //     // jQuery('#content').append('<p class=" t-hits t-hitcount">Found ' + numResults + ' results. Showing results ' + (currentPage *resultsPerPage +1) + ' to ' + numResults + '.</p>')

                            // }
                            // jQuery(".page" + currentPage).show()
                            // jQuery(".page" + (currentPage - 1)).hide()
                            // jQuery(".page" + (currentPage + 1)).hide()




                        },
                        dataType: "json",
                        contentType: "application/json"
                    })
                }






                if (window.location.href.indexOf("search") > 0 && !(isAdvancedSearch)) {
                    jQuery('.t-stacked.col-md-10').html("<h2>Search Results</h2><h3>Search Results for <b>" + decodeURIComponent(searchTerm) + "</b> in <b>simple search</b></h3><hr>")
                    jQuery('.t-stacked.col-md-10').append('<div class = "browse featured"></div>');
                    isSearch = true;
                    // data.result.reverse();
                } else {
                    jQuery('.t-latest-publist').html('');
                    // jQuery('ul.t-latest-publist').addClass("browse")
                }
                if (window.location.href.indexOf("authors") > 0) {
                    jQuery('#content').html('');

                    jQuery('#content').append('<div class="t-latest featured browse">\
<div class="bounds">\
<ul class=" t-latest-publist"></ul>\
</div>\
</div>');
                }
                if (booksInBrowse > resultsPerPage) {

                    // jQuery('#content').prepend('<div class=" t-nav t-nav-top"><a href = "#page?1" class="t-nav-link t-nav-next" > Next Results </a> </div>');
                    // jQuery('#content').prepend('<p class=" t-hits t-hitcount">Found ' + booksInBrowse + ' results. Showing results 1 to ' + showing + '.</p>')



                }

                for (var i = 0; i < booksInBrowse; i++) {
                    var authors = data.result[i]['props']['Authors']
                    var authorList = ""
                    var affiliation = data.result[i]['props']['Affiliation']

                    for (var j = 0; j < authors.length; j++) {

                        if (j == authors.length - 1) {
                            if (jQuery('.homepage-carousel').length > 0) {
                                authorList = authorList + "<b>" + authors[j] + "</b><br>"
                            } else {


                                if (affiliation[j] == undefined || affiliation[j].trim() == "") {
                                    authorList = authorList + "<b>" + authors[j] + "</b>"
                                } else {
                                    authorList = authorList + "<b>" + authors[j] + "</b>" + ": " + affiliation[j]
                                }
                            }

                        } else {
                            if (jQuery('.homepage-carousel').length > 0) {
                                authorList = authorList + "<b>" + authors[j] + "</b><br> "
                            } else {
                                if (affiliation[j] == undefined || affiliation[j].trim() == "") {
                                    authorList = authorList + "<b>" + authors[j] + "</b>, "
                                } else {
                                    authorList = authorList + "<b>" + authors[j] + "</b>" + ": " + affiliation[j] + ",<br>"
                                }
                            }
                        }


                    }


                    //      if(window.location.href.indexOf("authors")>0){
                    //          jQuery('#content').html('');

                    //          jQuery('#content').append('<div class="t-latest  featured browse">\
                    // <div class="bounds">\
                    // <h2 ></h2>\
                    // <ul class=" t-latest-publist"></ul>\
                    // </div>\
                    // </div>');
                    //      }
                    bookdata = '\
<li id="t-id-' + data.result[i]['tizra-id'] + '" class = " result">\
<div class="cover">'
                    if (data.result[i]['props']['CoverImage'] == "") {
                        if (jQuery('.homepage-carousel').length > 0) {
                            bookdata = bookdata + '<a href="/' + data.result[i]['url-id'] + '/" class="pull-left img-thumbnail img-responsive"><img src="/' + data.result[i]['url-id'] + '/1.jpg?zoomFactor=.5" class="listjacket img-responsive" alt="Cover Image">\
</a>'
                        } else {
                            bookdata = bookdata + '<a href="/' + data.result[i]['url-id'] + '/" class="pull-left img-thumbnail img-responsive"><img src="/' + data.result[i]['url-id'] + '/1.jpg?zoomFactor=.5" class="listjacket img-responsive" alt="Cover Image">\
</a>'
                        }

                    } else {
                        if (jQuery('.homepage-carousel').length > 0) {
                            bookdata = bookdata + '<a href="/' + data.result[i]['url-id'] + '/" class="pull-left img-thumbnail img-responsive"><img src="/' + data.result[i]['url-id'] + '/' + data.result[i]['props']['CoverImage'] + '" class="listjacket img-responsive" alt="Cover Image">\
</a>'
                        } else {
                            bookdata = bookdata + '<a href="/' + data.result[i]['url-id'] + '/" class="pull-left img-thumbnail img-responsive"><img src="/' + data.result[i]['url-id'] + '/' + data.result[i]['props']['CoverImage'] + '" class="listjacket img-responsive" alt="Cover Image">\
</a>'
                        }

                    }


                    bookdata = bookdata + '</div>\
<div class=" book-meta">\
<a href="/' + data.result[i]['url-id'] + '/"><h4 class="media-heading">' + data.result[i]['props']['TitleHTML'] + '</h4></a>\
</div>\
<p>\
</p>'
                    if (isOnSale) {
                        if (data.result[i]['props']['SaleTermsOnline'] != "") {
                            bookdata = bookdata + '<div class = "onlineSaleTerms"> Online: ' + data.result[i]['props']['SaleTermsOnline'] + '</div>';
                        }
                        if (data.result[i]['props']['SaleTermsPrint'] != "") {
                            bookdata = bookdata + '<div class = "printSaleTerms"> Print: ' + data.result[i]['props']['SaleTermsPrint'] + '</div>';
                        }
                    }

                    if (data.result[i]['props']['BaseProductCode'] != "") {
                        bookdata = bookdata + '<div class="baseProductCode"><b>Product Code:</b> ' + data.result[i]['props']['BaseProductCode'] + '</div>';
                    }

                    if (data.result[i]['props']['AuthorLabel'] != "") {
                        bookdata = bookdata + '<div class="browseAuthorLabel">' + data.result[i]['props']['AuthorLabel'] +
                            '</div>'
                        bookdata = bookdata + '<div class="browseAuthors">\
' + authorList + '\
</div>'
                    } else if (authorList != "") {
                        bookdata = bookdata + '<div class="browseAuthors">' + authorList + '\
</div>'

                    }
                    //  bookdata = bookdata +'<div class="t-field t-metatag t-new t-metatag-affiliation t-affiliation">\
                    // <span class="t-new t-label t-label-affiliation">Affiliation(s) (HTML):</span>\
                    // <span class="t-new t-value-affiliation">'
                    // + data.result[i]['props']['Affiliation'] +
                    // '</div>';


                    if (data.result[i]['props']['CopyrightYear'] != "") {
                        bookdata = bookdata + '<div class="t-field t-metatag t-new t-metatag-copyrightyear t-copyrightyear">\
<span class="t-new t-label t-label-copyrightyear">Copyright Year:</span>\
<span class="t-new t-value-copyrightyear">Published in\
 ' + data.result[i]['props']['CopyrightYear'] + '</span></div></li>'
                    }

                    // if(data.result[i]['props']['AppliedMath'].toLowerCase() == "true"){
                    // bookdata = bookdata + '<img src="/designfileview/adtm21/appliedMath" width="85">'
                    // }

                    // if(data.result[i]['props']['Textbook'].toLowerCase() == "true"){
                    // bookdata = bookdata + '<img src="/designfileview/adtm21/textbookLogo" width="85">'
                    // }

                    // bookdata = bookdata + '</div></li>';




                    if (isSearch) {
                        jQuery('.browse').append(bookdata)
                        jQuery('.onlineSaleTerms').remove();
                        jQuery('.printSaleTerms').remove();
                    } else {
                        // jQuery('ol').append(bookdata)
                        jQuery('.browse').append(bookdata)
                        jQuery('.homepage-carousel .t-latest-publist').append(bookdata)
                            // jQuery('.t-collectionindex').append(bookdata)


                    }

                    jQuery('.result').show();
                    // jQuery('.page0').show();

                    if (data.result[i]['props']['Textbook'].toLowerCase() == "true") {
                        jQuery('li#t-id-' + data.result[i]['tizra-id']).find('.t-value-copyrightyear').append('<img class = "textbookLogo"  src="/designfileview/adtm21/textbookLogo" width="85" />');
                    }
                    if (data.result[i]['props']['AppliedMath'].toLowerCase() == "true") {
                        jQuery('li#t-id-' + data.result[i]['tizra-id']).find('.t-value-copyrightyear').append(' <img class = "appliedMath" src="/designfileview/adtm21/appliedMath" width="85" /> ');
                    }
                    if (data.result[i]['props']['Ibl'].toLowerCase() == "true") {
                        jQuery('li#t-id-' + data.result[i]['tizra-id']).find('.t-value-copyrightyear').append(' <img class = "iblLogo" src="/designfileview/adtm21/iblLogo" width="85" /> ');
                    }
                    if (data.result[i]['props']['MaaBook'].toLowerCase() == "true") {
                        jQuery('li#t-id-' + data.result[i]['tizra-id']).find('.t-value-copyrightyear').append(' <img class = "maaIcon" src="/designfileview/adtm21/maaIcon" width="85" /> ');
                    }

                }

                if (jQuery('.my-bookshelf .block-user-account-info.bookshelf').length > 0) {

                    jQuery('.my-bookshelf .block-user-account-info.bookshelf ul.t-license li').each(function(k, v) {

                        var authors = jQuery(v).find('.t-value-authors').text().split(';');
                        var authorList = ""
                        var affiliations = jQuery(v).find('.t-listitem-affiliation').text().split(';');



                        /*
                                for (var j = 0; j < authors.length; j++) {

                                    if (j == authors.length - 1) {
                                        if (jQuery('.homepage-carousel').length > 0) {
                                            authorList = authorList + "<b>" + authors[j] + "</b><br>"
                                        } else {


                                        if (affiliation[j] == undefined || affiliation[j].trim() == "") {
                                            authorList = authorList + "<b>" + authors[j] + "</b>"
                                        } else {
                                            authorList = authorList + "<b>" + authors[j] + "</b>" + ": " + affiliation[j]
                                        }
                                    } */

                    });

                }

                jQuery('ul.t-latest-publist').show();
                if (jQuery('.homepage-carousel').length > 0) {
                    jQuery('.result').wrap('<div></div>')
                    jQuery('ul.t-latest-publist').on('init', function(event, slick) {
                        jQuery('ul.t-latest-publist').show();
                    });
                    jQuery('ul.t-latest-publist').slick({

                        slidesToShow: 4,
                        slidesToScroll: 4,
                        responsive: [{
                                breakpoint: 990,
                                settings: {
                                    slidesToShow: 2,
                                    slidesToScroll: 2,
                                    infinite: true,
                                }
                            },

                            {
                                breakpoint: 600,
                                settings: {
                                    slidesToShow: 1,
                                    slidesToScroll: 1,
                                    infinite: true,
                                }


                            }
                        ],
                        infinite: false

                    });
                    jQuery('.slick-prev').text('');
                    jQuery('.slick-next').text('');
                }

                jQuery('.browse').show();
            }

            jQuery(document).ready(function() {
                hashLoc = window.location.href.indexOf("#")
                if (hashLoc > 0) {
                    fragment = window.location.href.substring(hashLoc + 1);
                    hashchangeFunc(fragment);
                    if (window.location.href.indexOf("browse") > 0 || window.location.href.indexOf("~bookindex") > 0) {
                        var browseHist = fragment.split("?");
                        if (browseHist[0] == "Sub") {
                            jQuery('.browse1').val('sxg');

                        } else if (browseHist[0] == "AMS") {
                            jQuery('.browse1').val('ser')
                        } else if (browseHist[0] == "Distributed") {
                            jQuery('.browse1').val('dis')
//<GLL begin>
                        } else if (browseHist[0] == "MAA") {
                            jQuery('.browse1').val('maa')
//<GLL end>
							} else if (browseHist[0] == "Med") {
                            // jQuery('.browse1').val('Media')
                        } else if (browseHist[0] == "Misc") {
                            jQuery('.browse1').val('misc')
                            jQuery('.browse2').hide();
                            jQuery('.browse3').hide();

                        } else {
                            jQuery('.browse1').val(browseHist[0])
                        }


                    }
                }
                if (jQuery('#wrapper').hasClass("AdvancedSearch")) {
                    advancedSearch();
                }
                jQuery('#quickSearchForm-2-searchText').addClass('form-control')
                jQuery('#quickSearchForm-2-searchText').attr("placeholder", "Search AMS Bookstore")
                jQuery('#quickSearchForm-2-submit').addClass("btn btn-default")
                jQuery('.productSearch #quickSearchForm-1-searchText').addClass("form-control")
                jQuery('#quickSearchForm-1-searchText').attr("placeholder", "Search within this book")
                jQuery('#quickSearchForm-1-submit').addClass("btn btn-default")




                if (jQuery('.t-search-description').length > 0) {
                    jQuery('.t-search-description').after('<div class = "t-search-descript-modified"></div');
                    jQuery('.t-search-descript-modified').append("Search results for ")
                    jQuery('.t-search-descript-modified').append(jQuery('.t-search-fulltext').text());

                    if (window.location.href.indexOf("searchMode=advanced") > 0) {
                        jQuery('.t-search-descript-modified').append(jQuery('.t-search-conditions'));
                        if (jQuery('.t-search-conditions').length == 0) {
                            jQuery('.t-search-descript-modified').append("empty search.");
                        }
                    } else {
                        jQuery('.t-search-descript-modified').append(" in" + jQuery('.t-field.t-title').html());

                    }
                    jQuery('.t-search-descript-modified').after('<hr align="left" width="80%" size="1" noshade="">')


                }


                jQuery("#gensearch").on("click", function(e) {
                    e.preventDefault();
                    searchval = jQuery("#quickSearchForm-2-searchText").val();
                    searchval = encodeURIComponent(searchval);
                    window.location.href = "/#search?" + searchval + '?page=0';
                })
                if (jQuery('.productPage').length > 0) {

                    // jQuery('.navbar-right').html(jQuery('#quickSearchForm-1'));
                    // jQuery('#quickSearchForm-1-searchText').addClass('form-control')
                    //  jQuery('#quickSearchForm-1-searchText').attr("placeholder", "Search within this book")
                    //  jQuery('#quickSearchForm-1-submit').addClass("btn btn-default")


                } else {
                    // jQuery('#quickSearchForm-1').hide();
                }

                jQuery(window).bind("hashchange", function(e) {

                    hashchangeFunc(e.fragment);


                });


				jQuery(".bookshelf .t-license a").each(function(i,el) {
					if (jQuery(el).attr("href").endsWith("/"))
						jQuery(el).attr("href", jQuery(el).attr("href") + "1");
				});

            })