/******************************************************************************************************************************************* Functions for cart events: add items to cart inspect items remove items from cart */ function getQuantity(oUnits) { var quantity = 1; if((oUnits.value != "") && (!isNaN(oUnits.value)) && (oUnits.value > 0)) quantity = parseInt(oUnits.value); return quantity; } function detectAddObjectType(target) { if(target.className == "inspect") { var oCartContainer = target.parentNode; return(new Array("bookArticle",0,1,"I",oCartContainer)); } else if((target.className == "inspectApproval") && (target.parentNode.className == "lPack")) { var packContainer = target.parentNode; var pNum = packContainer.getAttribute('id').substr(4); return(new Array("packIndex",pNum,1,"I",packContainer)); } else if((target.className == "inspectApproval" || target.className == "inspectApproval bookRequest") && (target.parentNode.className.indexOf("bookContainer") != -1)) { var bookContainer = target.parentNode; var pNum = bookContainer.getAttribute('id').substr(4); return(new Array("bookIndex",pNum,1,"I",bookContainer)); } else if(target.className == "addToOrder" || target.className == "addToOrder bookRequest") { var oCartContainer = target.parentNode; var quantity = getQuantity(document.getInnerElementByClassName(oCartContainer,'input','bUnits')); if(quantity == 'undefined')quantity = 1; return(new Array("bookArticle",0,quantity,"B",oCartContainer)); } else if(target.parentNode.className == "buyPack") { var packContainer = target.parentNode.parentNode; var pNum = packContainer.getAttribute('id').substr(4); var quantity = getQuantity(document.getInnerElementByClassName(packContainer,'input','lpUnits')); if(quantity == 'undefined')quantity = 1; return(new Array("packIndex",pNum,quantity,"B",packContainer)); } else if(target.parentNode.parentNode.className == "buyBook") { var bookContainer = target.parentNode.parentNode.parentNode; var pNum = bookContainer.getAttribute('id').substr(4); var quantity = getQuantity(document.getInnerElementByClassName(bookContainer,'input','bUnits')); if(quantity == 'undefined')quantity = 1; return(new Array("bookIndex",pNum,quantity,"B",bookContainer)); } } function detectRemoveObjectType(target) { if(target.parentNode.className == "lPack") { var packContainer = target.parentNode; var pNum = packContainer.getAttribute('id').substr(4); return(new Array("packIndex",pNum,packContainer)); } else if (target.parentNode.className.indexOf("bookContainer") != -1) { var bookContainer = target.parentNode; var pNum = bookContainer.getAttribute('id').substr(4); return(new Array("bookIndex",pNum,bookContainer)); } else if(target.parentNode.getAttribute('id') == "cartControls") { var oCartContainer = target.parentNode; return(new Array("bookArticle",0,oCartContainer)); } } function addItemToCart(oEvent) { var target = stopEvent(oEvent); if(oCart.items.length < 85) { //var requestClass = (target.className && target.className.indexOf('Request') != -1) ? target.className : null; var requestClass = (target.className) ? target.className : null; var oItem = detectAddObjectType(target); if((oItem[0]=="bookIndex")||(oItem[0]=="bookArticle")) { if(oItem[0]=="bookIndex") { var book = new Book(oItem[1]); } else { var book = new Book(0); } book.buyInspect = oItem[3]; book.addToCart(oCart,oItem[2],requestClass); if(oItem[0]=="bookIndex") { book.updateBook(oItem[4],oCart); resizeImgContainers(); } else { book.updateBookDetail(oItem[4],oCart); } } else if(oItem[0]=="packIndex") { var pack = new Pack(oItem[1]); pack.buyInspect = oItem[3]; pack.addToCart(oCart,oItem[2],requestClass); pack.updatePack(oItem[4],oCart); } } else { alert('You have reached the maximum number of items allowed per order.\nPlease click Checkout to finalise this order before ordering more items.'); } } function addItemRequestToCart(oEvent) { var target = stopEvent(oEvent); if(oCart.items.length < 85) { /* var bookPage = (document.forms[0].PageType && document.forms[0].PageType.value == 'onixProduct')? true : null; if(!bookPage) { } else{ } */ alert('addRequestItemToCart()\n\n' + detectAddObjectType(target)); } else { alert('You have reached the maximum number of items allowed per order.\nPlease click Checkout to finalise this order before ordering more items.'); } } function removeItemFromCart(oEvent) { var target = stopEvent(oEvent); var oItem = detectRemoveObjectType(target); if(oItem[0]=="packIndex") { var pack = new Pack(oItem[1]); pack.removeFromCart(oCart); pack.updatePack(oItem[2],oCart); } else if((oItem[0]=="bookIndex")||(oItem[0]=="bookArticle")) { if(oItem[0]=="bookIndex") { var book = new Book(oItem[1]); } else { var book = new Book(0); } book.removeFromCart(oCart); if(oItem[0]=="bookIndex") { book.updateBook(oItem[2],oCart); resizeImgContainers(); } else { book.updateBookDetail(oItem[2],oCart); } } //alert(oItem); } function removeItemRequestFromCart(oEvent) { var target = stopEvent(oEvent); alert('removeItemRequestFromCart()'); } /******************************************************************************************************************************************* Functions to add to order button in cart */ addItemsToCart = function(oEvent) { var target = stopEvent(oEvent); if(typeof booksSelected != 'undefined')booksSelected.count = 0; if((typeof document.forms[0].Subsection != "undefined") && (document.forms[0].Subsection.value == "Titles")) { if(oCart.items.length < 85) { var oCartContainer = document.getElementById('cartControls'); try { var units = document.getElementById('bUnitsContainer').firstChild; } catch(oError){ return false; } var quantity = 1; if((units.value != "") && (!isNaN(units.value)) && (units.value > 0)) quantity = parseInt(units.value); //var book = new Book(0); book.buyInspect = "B"; book.addToCart(oCart,quantity); book.updateBookDetail(oCartContainer,oCart); } else { alert('You have reached the maximum number of items allowed per order.\nPlease click Checkout to finalise this order before ordering more items.'); } } else { var items = new Array(); maxedCart = null; items = items.concat(items,getPagePacks(),getPageBooks()); oCart.updateShoppingSummary(); resizeImgContainers(); if(maxedCart)alert('You have reached the maximum number of items allowed per order.\nPlease click Checkout to view the total items and finalise this order before ordering more items.'); } }; function getPageBooks() { var books = new Array(); if(document.getElementByClassName('div','bookRow') == "undefined") return books; var bookRows = document.getElementsByClassName('div','bookRow'); var bookClass = "bookContainer"; if(division.toLowerCase() != "literacy")bookClass = "bookContainer bookMargin"; for(var i=0; i < bookRows.length; i++) { //alert(bookRows[i].tagName + "." + bookRows[i].className + " " + i); var bookContainer = document.getInnerElementsByClassName(bookRows[i],'div',bookClass); //alert(bookContainer.length + " " + bookClass); for( var n=0; n < bookContainer.length; n++) { var bUnit = document.getInnerElementByClassName(bookContainer[n],'input','bUnits'); var pNum = bookContainer[n].getAttribute('id').substr(4); if(bUnit && (bUnit.value != "") && (!isNaN(bUnit.value)) && (Number(bUnit.value) > 0)) { if(oCart.items.length < 85) { var pNum = bookContainer[n].getAttribute('id').substr(4); var book = new Book(pNum); book.buyInspect = "B"; book.addToCart(oCart,bUnit.value); book.updateBook(bookContainer[n],oCart); } else { maxedCart = true; } } else { //alert("book " + (n+1) + " has no value"); } } } return books; } function getPagePacks() { var packs = new Array(); if(document.getElementByClassName('div','levelRow') == "undefined") return packs; var levelRows = document.getElementsByClassName('div','levelRow'); for(var i=0; i < levelRows.length; i++) { var lPacks = document.getInnerElementsByClassName(levelRows[i],'div','lPack'); for(var n=0; n < lPacks.length; n++) { var lpUnit = document.getInnerElementByClassName(lPacks[n],'input','lpUnits'); if(lpUnit && (lpUnit.value != "") && (!isNaN(lpUnit.value)) && (Number(lpUnit.value) > 0)) { if(oCart.items.length < 85) { var pNum = lPacks[n].getAttribute('id').substr(4); var pack = new Pack(pNum); pack.buyInspect = "B"; pack.addToCart(oCart,lpUnit.value); pack.updatePack(lPacks[n],oCart); } else { maxedCart = true; } } else { //alert("pack " + (n+1) + " has no value"); } } } return packs; } /******************************************************************************************************************************************* Functions for overview cart */ function removefromOverviewCart(event) { var target = stopEvent(event); //target.parentNode.parentNode.parentNode.removeChild(target.parentNode.parentNode); var i = target.getAttribute('name'); oCart.removeFromCartOverview(i); } /* function updateOverviewCart(event) { var target = stopEvent(event); var oBody = document.getElementById('bodyMiddle'); var tBody = oBody.getElementsByTagName('tbody'); var oTR = tBody[0].getElementsByTagName('tr'); var quantity = new Array(); for(var i=0; i < oTR.length; i++) { var iQuantity = document.getInnerElementByClassName(oTR[i],'input','units'); if((iQuantity.value != "") && (!isNaN(iQuantity.value)) && (iQuantity.value > -1)) { quantity.push(parseInt(iQuantity.value)); } else { quantity.push(-1); } } oCart.updateCartOverview(quantity); } */ function updateOverviewCart(event) { var target = stopEvent(event); var oBody = document.getElementById('bodyMiddle'); var tBody = oBody.getElementsByTagName('tbody'); //array to store index of books already requested var requested = new Array(); var quantity = new Array(); quantity.length = oCart.items.length; //var str = ""; for(var x = 0; x < tBody.length; x++) { var oTR = tBody[x].getElementsByTagName('tr'); for(var i = 0; i < oTR.length; i++) { var itemNum = parseInt(document.getInnerElementByClassName(oTR[i],'input','remove').getAttribute('name')); var iQuantity = document.getInnerElementByClassName(oTR[i],'input','units'); var isbn = oTR[i].getElementsByTagName('td')[0].firstChild.nodeValue; //if book already requested add it to array if(oTR[i].getElementsByTagName('td') != null && oTR[i].getElementsByTagName('td').length == 6) { requested.push(isbn); } if((iQuantity.value != "") && (!isNaN(iQuantity.value)) && (iQuantity.value > -1)) { quantity[itemNum] = iQuantity.value; } else { quantity[itemNum] = -1; } //str += '\n' + itemNum + ' = ' + iQuantity; } } /* var str1 = ""; for(var i = 0; i < quantity.length; i++) { str1 += '\n[' + i + '] = ' + quantity[i]; } alert(str1); */ //alert(str); oCart.updateCartOverview(quantity,requested); /* var quantity = new Array(); for(var i=0; i < oTR.length; i++) { var iQuantity = document.getInnerElementByClassName(oTR[i],'input','units'); if((iQuantity.value != "") && (!isNaN(iQuantity.value)) && (iQuantity.value > -1)) { quantity.push(parseInt(iQuantity.value)); } else { quantity.push(-1); } } oCart.updateCartOverview(quantity); */ } function updateInspectBuy(event) { var target = stopEvent(event); oCart.updateInspectBuy(target.name.substring(2),target.value); //alert("[" + target.name.substring(2) + "] " + target.value); }