rendered paste body function createRequestObject() { var browser = navigator.appName; var ajax; if(browser == "Microsoft Internet Explorer") { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } else { ajax = new XMLHttpRequest(); } return ajax; } var ajax = createRequestObject(); function checkEmail(el) { el = el ? el : document.getElementById('signup_email'); ajax.open('get', 'CheckEmail/?q='+escape(el.value)); ajax.onreadystatechange = checkEmailResponse; ajax.send(null); } function checkEmailResponse() { if(ajax.readyState == 4 && ajax.responseText != null) { var email_response = document.getElementById('email_response'); var response = eval("(" + ajax.responseText + ")"); var signup_email = document.getElementById('signup_email'); var not_my = document.getElementById('not_my_university'); if(response[0] != null && response[0] == 1) { email_response.innerHTML = "<strong>This email address is in use.</strong><br /> You seem to already have an account with our parent company Chegg.com.<br /><br /> <a href=\"Login/?login_username="+signup_email.value+"\">Click Here to Login</a> (<a href=\"ForgotPassword/\">Forgot Password?</a>)"; email_response.style.padding = '10px;'; } else { if(response.campus_id) { var campus_id = document.getElementById('campus_id'); var el = document.getElementById('signup_university'); el.value = response.name_long; campus_id.value = response.campus_id; not_my.style.display = 'block'; } email_response.innerHTML = ''; email_response.style.padding = '0px;'; } } } function inArray(needle, arr) { for(i=0;i<arr.length;i++) { if(arr[i][0] == needle) return true; } return false; } function noSubmit(event) { if(event.keyCode == 13) { return false; } } function doFocus(event, msg) { e = event ? event : window.event; el = e.target ? e.target : e.srcElement; if(el.tagName == 'TEXTAREA') { if(el.innerHTML == msg) { el.innerHTML = ''; } } else { if(el.value == msg) { el.value = ''; } } } function doSubmit(event) { var email = document.getElementById('launchlist_email'); var university = document.getElementById('university'); var captcha = document.getElementById('captcha'); if(!email.value.indexOf('@')) { return false; } else if(university.value != lastResult) { showAlert(university, 'Error', 'Please enter a valid university'); return false; } return false; } var alertOpacity = 1; function showAlert(e, type, msg) { var alertBox = document.getElementById('alert'); alertBox.innerHTML = '<h4>'+type+'</h4><br /> '+msg; alertBox.style.opacity = '1'; alertBox.style.top = (e.offsetTop - 30) + 'px'; alertBox.style.left = (e.offsetLeft + e.offsetWidth + 5) + 'px'; alertBox.style.display = 'block'; setTimeout('fadeAlert()', 3000); } function fadeAlert() { var alertBox = document.getElementById('alert'); alertBox.style.opacity = alertOpacity-0.1; alertOpacity = alertOpacity-0.1; if(alertOpacity > 0) { setTimeout('fadeAlert()', 20); } else { alertOpacity = 1; } } function addItem(item_id) { document.getElementById('item_id').value = item_id; document.getElementById('search_form').submit(); } function toggleBilling(event) { var billing_address = document.getElementById('billing_address'); var billing_is_shipping = document.getElementById('billing_is_shipping'); if(billing_is_shipping.checked) { billing_address.style.display = 'none'; } else { billing_address.style.display = 'block'; } } function hide_cards() { var cards = document.getElementById('credit_cards'); var tables = cards.getElementsByTagName('table'); var new_card = document.getElementById('new_card'); new_card.style.display = 'none'; for(var i = 0; i < tables.length; i++) { tables[i].style.display = 'none'; } } function select_card(e) { hide_cards(); var event = window.event ? window.event : e; var el = event.srcElement ? event.srcElement : event.target; var credit_card_table = document.getElementById('credit_cards'); var new_card = document.getElementById('new_card'); if(el.value == '#') { } else if(el.value == 'add') { new_card.style.display = 'block'; var tbs = new_card.getElementsByTagName('table'); for(var i = 0; i < tbs.length; i++) { tbs[i].style.display = 'block'; } } else { var table = document.getElementById('saved_card_'+el.value); table.style.display = 'block'; } } var current_search_by = 1; function showTab(event) { var tab = $('search_tab'); tab.style.visibility = 'shown'; if(current_search_by == 1) { tab.innerHTML = 'Search by Course'; } else { tab.innerHTML = 'Search by Keyword/Title/Author/ISBN'; } } function hideTab(event) { var tab = $('search_tab'); tab.style.display = 'none'; } function tabClick(event) { var tab = $('search_tab'); //tab.style.display = 'none'; toggleSearchType(); } function toggleSearchType(type) { var box1 = $('search_by_keyword'); var box2 = $('search_by_course'); var tab = $('search_tab'); if(current_search_by == 1) { box1.style.display = 'none'; box2.style.display = 'block'; current_search_by = 0; tab.innerHTML = 'Search By Keyword'; } else { box1.style.display = 'block'; box2.style.display = 'none'; current_search_by = 1; tab.innerHTML = 'Search By Courses'; } } function checkIssue(e) { var event = window.event ? window.event : e; var el = event.srcElement ? event.srcElement : event.target; var other = $('other'); if(el.value == 'other') { other.style.display = 'block'; } else { other.style.display = 'none'; } } var pressAjax = createRequestObject(); function getRandPress() { pressAjax.open('get', 'press/?'+Math.random()*5); pressAjax.onreadystatechange = fillPress; pressAjax.send(null); } var pressArr = new Array(); function fillPress() { if(pressAjax.readyState == 4) { var res = eval('('+pressAjax.responseText+')'); if(res.length >= 1) { for(var i = 0; i < res.length; i++) { pressArr[ pressArr.length ] = res[i]; } changePress(0); } } } function changePress(i) { if(i >= pressArr.length) { i = 0; } var pressScroller = document.getElementById('press_scroller'); pressScroller.style.backgroundImage = 'url("'+pressArr[i][0]+'")'; pressScroller.onclick = function() { window.open(pressArr[i][1], 'press_window'); } setTimeout('changePress('+(i+1)+')', 3000); } function getUserComments() { ajax.open('get', 'HappyCustomers/?'+Math.random()*5); ajax.onreadystatechange = fillComments; ajax.send(null); } var Comments = new Array(); var CurComment = 0; function fillComments() { if(ajax.readyState == 4) { var res = eval('(' + ajax.responseText + ')' ); if(res.length >= 1) { for(var i = 0; i < res.length; i++) { Comments[ Comments.length ] = res[i]; } var loading = $('user_comments_loading'); var comments = $('user_comments'); loading.style.display = 'none'; comments.style.display = 'block'; changeComments(0); } } } function changeComments(i) { if(i >= Comments.length) i = 0; var fname = $('user_comments_fname'); var from = $('user_comments_from'); var message = $('user_comments_message'); fname.innerHTML = Comments[i].full_name; from.innerHTML = Comments[i].from; message.innerHTML = Comments[i].comment; CurComment = i; } function getRandBook() { ajax.open('get', 'rbooksold/?'+Math.random()*5); ajax.onreadystatechange = getRandBooks; ajax.send(null); } var RandomBooks = new Array(); var CurBook = 0; function getRandBooks() { if(ajax && ajax.readyState == 4) { var rand_book = document.getElementById('rand_book'); var rand_book_loading = document.getElementById('rand_book_loading'); var res = eval('('+ajax.responseText+')'); if(res.length >= 1) { for(var i = 0; i < res.length; i++) { RandomBooks[ RandomBooks.length ] = res[i]; } changeRandBook(); rand_book_loading.style.display = 'none'; rand_book.style.display = 'block'; } } } function changeRandBook() { if(RandomBooks.length >= 1) { var rand_book = document.getElementById('rand_book'); var randBookSchool = document.getElementById('rand_book_school'); var randBookTitle = document.getElementById('rand_book_title'); var randBookList = document.getElementById('rand_book_list'); var randBookRent = document.getElementById('rand_book_rent'); var randBookSavings = document.getElementById('rand_book_savings'); var randBookFrom = document.getElementById('rand_book_from'); var randBookFname = document.getElementById('rand_book_fname'); var rand = (Math.round((Math.random()*(RandomBooks.length))+1)) rand = rand >= RandomBooks.length ? RandomBooks.length-1 : rand; randBookSchool.innerHTML = RandomBooks[rand].school; randBookTitle.innerHTML = RandomBooks[rand].book_title; randBookList.innerHTML = RandomBooks[rand].price_list; randBookRent.innerHTML = RandomBooks[rand].rent_price; randBookSavings.innerHTML = RandomBooks[rand].savings; randBookFrom.innerHTML = RandomBooks[rand].first_name; randBookFname.innerHTML = RandomBooks[rand].first_name; } } var currOpacity = 0; function fadeIn(el) { el = document.getElementById(el); currOpacity += 0.05; el.style.opacity = currOpacity; if(currOpacity < 1) setTimeout("fadeIn('"+el.id+"')", 10); } function fadeOut(el) { el = document.getElementById(el); currOpacity -= 0.05; el.style.opacity = currOpacity; if(currOpacity > 0) setTimeout("fadeOut('"+el.id+"')", 10); } var lastRes = false; function campusSuggest(event) { var el = document.getElementById('signup_university'); var suggest_box = document.getElementById('university_suggest'); var blank_suggest = document.getElementById('blank_suggest'); var not_my = document.getElementById('not_my_university'); if( (event.keyCode >= 48 && event.keyCode <= 111) || (event.keyCode >= 186 && event.keyCode <= 222) || event.keyCode == 8) { suggest_box.innerHTML = ''; if(el.value != '') { ajax.open('get', 'campus_suggest/?q='+escape(el.value)); ajax.onreadystatechange = showCampusList; ajax.send(null); } else if(event.keyCode == 8) { suggest_box.style.display = 'none'; blank_suggest.style.display = 'none'; not_my.style.display = 'none'; } } } var not_listed = false; function showCampusList() { var not_my = document.getElementById('not_my_university'); if(ajax.readyState == 4) { var res = eval('('+ajax.responseText+')') var el = document.getElementById('signup_university'); var suggest_box = document.getElementById('university_suggest'); var blank_suggest = document.getElementById('blank_suggest'); if(res.length >= 1) { if(res.length > 1) { lastRes = res[1]; } else { lastRes = res[0]; } for(var i = 0; i < res.length; i++) { var a = document.createElement('a'); a.innerHTML = '<span title="'+res[i].name_long+'" id="'+res[i].campus_id+'">'+res[i].suggested+'</span>'; a.id = res[i].campus_id; a.title = res[i].name_long; a.onclick = function(event) { event = event ? event : window.event; target = event.srcElement ? event.srcElement : event.target; target = target.parentNode.id ? target.parentNode : target; var campus_id = document.getElementById('campus_id'); campus_id.value = target.id; el.value = target.title; suggest_box.style.display = 'none'; blank_suggest.style.display = 'none'; not_my.style.display = 'block'; }; if(i == 0) { a.style.background = '#e0ffab'; } suggest_box.appendChild(a); } var pos = findPos(el); suggest_box.style.display = 'block'; blank_suggest.style.display = 'block'; blank_suggest.style.top = (pos[1]+31)+'px'; blank_suggest.style.left = (pos[0]+2)+'px'; blank_suggest.style.width = suggest_box.offsetWidth+'px'; blank_suggest.style.height = suggest_box.offsetHeight+'px'; suggest_box.style.top = blank_suggest.style.top; suggest_box.style.left = blank_suggest.style.left; } else { suggest_box.style.display = 'none'; blank_suggest.style.display = 'none'; not_my.style.display = 'block'; } } } function hideCampusSuggest() { var suggest_box = document.getElementById('university_suggest'); var blank_suggest = document.getElementById('blank_suggest'); suggest_box.style.display = 'none'; blank_suggest.style.display = 'none'; } function noReturn(event) { if(event.keyCode == 13) { var el = document.getElementById('signup_university'); var suggest_box = document.getElementById('university_suggest'); var blank_suggest = document.getElementById('blank_suggest'); var user_id = document.getElementById('campus_id'); user_id.value = lastRes.campus_id ? lastRes.campus_id : user_id.value; el.value = lastRes.name_long ? lastRes.name_long : el.value; suggest_box.style.display = 'none'; blank_suggest.style.display = 'none'; return false; } } function not_my_university(event) { var not_my = document.getElementById('not_my_university'); var el = document.getElementById('signup_university'); var campus_id = document.getElementById('campus_id'); not_my.style.display = 'none'; el.value = 'University Not Listed'; el.onfocus = function() { el.select(); } campus_id.value = 0; not_listed = true; } function findPosX(obj) { var curleft = 0; if(obj.offsetParent) { while(1) { curleft += obj.offsetLeft; if(!obj.offsetParent) break; obj = obj.offsetParent; } } else if(obj.x) { curleft += obj.x; } obj.style.position = "static"; return curleft;}function findPosY(obj) { var curtop = 0; if(obj.offsetParent) { while(1) { curtop += obj.offsetTop; if(!obj.offsetParent) break; obj = obj.offsetParent; } } else if(obj.y) { curtop += obj.y; } return curtop;}function findPos(obj) { var left = findPosX(obj); var top = findPosY(obj); return [left , top];}function findPosition( oElement ) { if( typeof( oElement.offsetParent ) != 'undefined' ) { for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) { posX += oElement.offsetLeft; posY += oElement.offsetTop; } return [ posX, posY ]; } else { return [ oElement.x, oElement.y ]; }} function logReferrer( redirectUrl, isbn ) { ajax.open( 'get', 'callback/?a=logreferrer&q='+ isbn ); ajax.send(null); window.open( redirectUrl ); } var curr = 0; var pages = ['why_rent','whos_renting','happy_customers']; function setupHomepage() { getRandPress(); getRandBook(); setTimeout('beginCycle()', 5000); } function beginCycle() { getUserComments(); cyclePages(0); } var is_playing = true; var current_scroll = 0; function toggle_scroll() { is_playing = !is_playing; if(is_playing) { $('play_pause').style.background = "url('images/pause.gif') no-repeat"; cyclePages(current_scroll); } else { $('play_pause').style.background = "url('images/play.gif') no-repeat"; } } function cyclePages(i) { if(is_playing == false) { current_scroll = i; return; } Effect.DropOut(pages[i], { duration: 1, afterFinish: function() { i++; if(i>=pages.length) i = 0; $(pages[i]).style.display = 'none'; Effect.Appear(pages[i], { duration:1 }); if(pages[i] == 'whos_renting') changeRandBook(); if(pages[i] == 'happy_customers') changeComments(CurComment+1); setTimeout('cyclePages('+i+')', 10000); } } ); }function getParent(node, nodeType) { if(node.parentNode) { if(node.parentNode.tagName.toUpperCase == nodeType.toUpperCase) { return node.parentNode; } else { return getParent(node.parentNode, nodeType); } }}// addEvent and removeEvent, designed by Aaron Moorefunction addEvent(element, listener, handler){ //if the system is not set up, set it up, and // store any outside script's event registration in the first handler slot if(typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined'){ element[listener + '_num'] = 0; if(typeof element[listener] == 'function'){ element[listener + 0] = element[listener]; element[listener + '_num']++; } element[listener] = function(e){ var r = true; e = (e) ? e : window.event; for(var i = 0; i < element[listener + '_num']; i++) if(element[listener + i](e) === false) r = false; return r; } } //if handler is not already stored, assign it for(var i = 0; i < element[listener + '_num']; i++) if(element[listener + i] == handler) return; element[listener + element[listener + '_num']] = handler; element[listener + '_num']++;}function removeEvent(element, listener, handler){ //if the system is not set up, or there are no handlers to remove, exit if(typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined' || element[listener + '_num'] == 0) return; //loop through handlers, // if target handler is reached, begin overwriting each // handler with the handler in front of it until one before the last var found = false; for(var i = 0; i < element[listener + '_num']; i++){ if(!found) found = element[listener + i] == handler; if(found && (i+1) < element[listener + '_num']) element[listener + i] = element[listener + (i+1)]; } //if handler was found, decrement the handler count if(found) element[listener + '_num']--;}var rows = new Array();function form_highlights() { var inputs = document.getElementsByTagName('input'); for(var i = 0; i < inputs.length; i++) { if(inputs[i].type == 'text' || inputs[i].type == 'password') { var tr = getParent(inputs[i], 'tr'); if(tr) { rows[i] = tr.parentNode; inputs[i].row_id = i; addEvent(inputs[i], 'onfocus', function(event) { e = event ? event : window.event; el = e.target ? e.target : e.srcElement; rows[el.row_id].className = rows[el.row_id].className + ' selected'; }); addEvent(inputs[i], 'onblur', function(event) { e = event ? event : window.event; el = e.target ? e.target : e.srcElement; rows[el.row_id].className = rows[el.row_id].className.indexOf('red') != -1 ? 'red' : ''; }); } } }} function getRentPrice(event, isbn) { var e = window.event ? window.event : event; var el = e.srcElement ? e.srcElement : e.target; var rent_error = document.getElementById('rent_error_'+isbn); var term = el.value; rent_error.style.display = 'none'; var calc_button = document.getElementById('calc_text_'+isbn); calc_button.innerHTML = 'Calculating...'; setTimeout('queryRentPrice(\''+isbn+'\', \''+term+'\')', 100); } function queryRentPrice(isbn, term) { ajax.open('get', 'pricing/?isbn='+escape(isbn)+'&term='+term); ajax.onreadystatechange = showRentPrice; ajax.send(null); } function showRentPrice() { if(ajax.readyState == 4) { var res = eval('('+ajax.responseText+')'); var details = document.getElementById('rent_price_'+res['isbn']); var rent_error = document.getElementById('rent_error_'+res['isbn']); if(!res['renting']) { rent_error.style.display = 'block'; rent_error.className = 'bold red'; rent_error.innerHTML = 'Sorry, but this book is not avaible for rent.'; } else { details.style.display = 'inline'; details.innerHTML = '$' + (res.price); details.parentNode.style.display = 'block'; } var calc_button = document.getElementById('calc_text_'+res.isbn); calc_button.style.display = 'none'; } } function addToCart(isbn) { var termBox = document.getElementById('rent_term_'+isbn); var term = termBox.value; if(term != '#') { ajax.open('get', 'AddToCart/?item_id='+escape(isbn)+'&term='+term); ajax.onreadystatechange = itemAdded; ajax.send(null); } } function itemAdded() { if(ajax.readyState == 4) { var res = eval('('+ajax.responseText+')'); var add_button = document.getElementById('add_to_cart_'+res[0]); var num_books = document.getElementById('num_books'); var calculated = document.getElementById('calculated_'+res[0]); var rent_error = document.getElementById('rent_error_'+res[0]); if(res[1] == 'added') { add_button.src = 'images/added.gif'; books = parseInt(num_books.innerHTML) + 1; books = books == 1 ? books+' book' : books+' books'; num_books.innerHTML = books; } else { calculated.style.display = 'none'; rent_error.innerHTML = 'Already Added.'; rent_error.className = 'bold red'; rent_error.style.display = 'block'; hideError = function() { rent_error.innerHTML = ''; rent_error.style.display = 'none'; calculated.style.display = 'block'; } setTimeout('hideError()', 1000); } } } function searchFocus(event, msg) { doFocus(event, msg); var e = window.event ? window.event : event; var el = e.srcElement ? e.srcElement : e.target; el.parentNode.parentNode.style.border = 'solid 3px #edf4fc'; } function searchBlur(event) { var e = window.event ? window.event : event; var el = e.srcElement ? e.srcElement : e.target; el.parentNode.parentNode.style.border = 'solid 3px #f7f7f7'; } var open = false; function replaceSelectBoxes() { var selects = document.getElementsByTagName('select'); var suggest_box = document.getElementById('university_suggest'); var blank_suggest = document.getElementById('blank_suggest'); var hideOptions = function(el) { el.style.display = 'none'; el.style.zIndex = 0; } var showOptions = function(el) { el.style.display = 'block'; el.style.zIndex = 5; } var n = 0; for(var i = selects.length-1; i >= 0; i--) { var selected = selects[i].options[ selects[i].selectedIndex ].innerHTML; var newSelect = document.createElement('div'); newSelect.className = 'select_replacement'; newSelect.innerHTML = selected; newSelect.id = 'select_replacement_'+n; selects[i].parentNode.appendChild( newSelect ); var ol = document.createElement('ol'); ol.className = 'replacement_options'; ol.id = 'ol_'+newSelect.id; ol.style.width = (newSelect.offsetWidth-4) + 'px'; ol.style.left = selects[i].offsetLeft+'px'; ol.style.top = newSelect.offsetHeight + 'px'; var options = selects[i].getElementsByTagName('option'); var s = false; for(var x = 0; x < options.length; x++) { var li = document.createElement('li'); var a = document.createElement('a'); li.id = 'li_'+newSelect.id; a.id = 'a_'+newSelect.id; a.value = options[x].value; a.innerHTML = options[x].innerHTML; if(a.innerHTML == newSelect.innerHTML) { a.className = 'selected'; s = a; } addEvent(a, 'onmouseover', function(ev) { var e = window.event ? window.event : ev; var el = e.srcElement ? e.srcElement : e.target; s.className = ''; el.className = 'selected'; s = el; }); addEvent(a, 'onclick', function(ev) { var e = window.event ? window.event : ev; var el = e.srcElement ? e.srcElement : e.target; var rep = document.getElementById('hidden_'+newSelect.id); var ol = document.getElementById('ol_'+newSelect.id); rep.value = el.value; newSelect.innerHTML = el.innerHTML; hideOptions(ol); }); addEvent(document, 'onclick', function(ev) { var e = window.event ? window.event : ev; var el = e.srcElement ? e.srcElement : e.target; var els = document.getElementsByTagName('ol'); if(el.tagName != 'OL' && el.className != 'replacement_options' && el.className != 'select_replacement') { for(var j = 0; j < els.length; j++) { if(els[j].className == 'replacement_options') { hideOptions(els[j]); } } } }); li.appendChild(a); ol.appendChild(li); } var clear = document.createElement('div'); clear.className = 'clear'; selects[i].parentNode.appendChild( ol ); selects[i].parentNode.appendChild( clear ); selects[i].style.display = 'none'; var hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.value = selects[i].value; hidden.id = 'hidden_'+newSelect.id; hidden.name = selects[i].name; selects[i].parentNode.replaceChild(hidden, selects[i]); newSelect.onclick = function(ev) { var e = window.event ? window.event : ev; var el = e.srcElement ? e.srcElement : e.target; var ol = document.getElementById('ol_'+el.id); if(open) { hideOptions(open); } open = ol; showOptions(ol); } n++; } }