All pastes #748394 Raw Edit

Something

public javascript v1 · immutable
#748394 ·published 2007-10-24 19:50 UTC
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>&nbsp;(<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++;			}			}