1 2 var Stamp = new Date(); 3 var previoustime = Stamp.getTime(); 4 var timerid = -99; 5 var focusTrapArtPrint; 6 7 function verifyText() 8 { 9 if (timerid != -99) 10 { 11 clearTimeout(timerid); 12 } 13 14 var Stamp = new Date(); 15 var currenttime = Stamp.getTime(); 16 elapsedtime = (currenttime - previoustime) / 1000; 17 previoustime = currenttime; 18 19 var message = document.getElementById('productNote').value; 20 var newmessage = message; 21 var messagelength = message.length; 22 var i; 23 var character; 24 var asciicharacter; 25 26 for (i = 0; i < messagelength; i++) 27 { 28 character = message.substring(i, i + 1); 29 asciicharacter = character.charCodeAt(0); 30 31 if (character != '') 32 { 33 if (asciicharacter == 9 || asciicharacter == 10 || asciicharacter == 13 || (asciicharacter >= 32 && asciicharacter <= 126)) 34 { 35 if(asciicharacter == 43) 36 { 37 alert('You can not use ' + character + ' in your message.'); 38 newmessage = newmessage.replace(character, ''); 39 } 40 } 41 else 42 { 43 alert('You can not use ' + character + ' in your message.'); 44 newmessage = newmessage.replace(character, ''); 45 } 46 } 47 48 } 49 50 if (message != newmessage) 51 { 52 document.getElementById('productNote').value = newmessage; 53 } 54 55 if (messagelength > 0) 56 { 57 if (elapsedtime < 0.5) 58 { 59 timerid = setTimeout("verifyText()", 500); 60 return; 61 } 62 63 updateNote(newmessage); 64 } 65 } 66 67 function checkLimit() 68 { 69 var textstring = document.getElementById('productNote').value; 70 71 if (textstring.length > 250) 72 { 73 textstring = textstring.substring(0, 250); 74 document.getElementById('productNote').value = textstring; 75 alert('Maximum Character Limit = 250'); 76 } 77 } 78 79 80 function newHttpReq() 81 { 82 var newRequest = null; 83 84 try 85 { 86 newRequest = new XMLHttpRequest(); 87 } 88 catch(trymicrosoft) 89 { 90 try 91 { 92 newRequest = new ActiveXObject("Msxml2.XMLHTTP"); 93 } 94 catch(othermicrosoft) 95 { 96 try 97 { 98 newRequest = new ActiveXObject("Microsoft.XMLHTTP"); 99 } 100 catch(failed) 101 { 102 newRequest = null; 103 } 104 } 105 } 106 107 return newRequest; 108 109 } 110 111 var request = newHttpReq(); 112 var request2 = newHttpReq(); 113 var requestprice = newHttpReq(); 114 115 if(!request) 116 { 117 alert("Error Initializing XMLHttpRequest!"); 118 } 119 120 function changeFrameColor() 121 { 122 refreshmenu('frame','action=setFrameColor&frameColor=' + document.getElementById('frameColor').value); 123 } 124 125 function setFrameColor(frameColor) 126 { 127 refreshmenu('frame','action=setFrameColor&frameColor=' + frameColor); 128 } 129 130 function confirmRemoveFrame() 131 { 132 var response = confirm("You must remove the frame in order to ship your print in a cardboard tube. Do you want to remove the frame?"); 133 134 if(response) 135 { 136 selectWrap(1,"","",""); 137 } 138 } 139 140 function confirmRemoveFrame2019() 141 { 142 var response = confirm("You must remove the frame in order to ship your print in a cardboard tube. Do you want to remove the frame?"); 143 144 if(response) 145 { 146 selectWrap2019(1); 147 } 148 } 149 150 151 function selectPaper(checkId,paperId) 152 { 153 154 for(i = 1; i <= 15; i ++) 155 { 156 if(document.getElementById('checkpaper[' + i + ']') != null) 157 { 158 if(i == checkId) 159 { 160 document.getElementById('checkpaper[' + i + ']').className = 'optionselected'; 161 } 162 else 163 { 164 document.getElementById('checkpaper[' + i + ']').className = 'optionnotselected'; 165 } 166 } 167 } 168 169 var refreshTargets = {price:true}; 170 setProductParameters('action=selectPaper&paperId=' + paperId, refreshTargets); 171 172 } 173 174 function selectPaper2019(paperId) 175 { 176 if(document.getElementById('paperType_' + paperId)) 177 { 178 var targetButtons = document.getElementsByClassName('paperType2019'); 179 180 var targetClassName; 181 182 for(var i = 0; i < targetButtons.length; i ++) 183 { 184 targetClassName = 'paperType2019'; 185 186 if(targetButtons[i].id == 'paperType_' + paperId) 187 { 188 targetClassName = 'paperType2019 paperTypeSelected2019'; 189 } 190 191 targetButtons[i].className = targetClassName; 192 } 193 194 var refreshTargets = {price:true}; 195 setProductParameters('action=selectPaper&paperId=' + paperId, refreshTargets); 196 197 } 198 199 } 200 201 function selectWrap(checkId,finishId,mountTypeId,galleryWrapColorId) 202 { 203 for(i = 1; i <= 10; i ++) 204 { 205 if(document.getElementById('checkwrap[' + i + ']') != null) 206 { 207 if(i == checkId) 208 { 209 document.getElementById('checkwrap[' + i + ']').className = 'optionselected'; 210 } 211 else 212 { 213 document.getElementById('checkwrap[' + i + ']').className = 'optionnotselected'; 214 } 215 } 216 } 217 218 var refreshTargets = {image:true, price:true}; 219 setProductParameters('action=selectWrap&finishId=' + finishId + '&mountTypeId=' + mountTypeId + '&galleryWrapColorId=' + galleryWrapColorId, refreshTargets); 220 } 221 222 function selectWrap2019(index) 223 { 224 if(document.getElementById('wrapType_' + index)) 225 { 226 var finishId = document.getElementById('wrapType_' + index).getAttribute('data-finish-id'); 227 var mountTypeId = document.getElementById('wrapType_' + index).getAttribute('data-mount-type-id'); 228 var galleryWrapColorId = document.getElementById('wrapType_' + index).getAttribute('data-wrap-color-id'); 229 230 var targetButtons = document.getElementsByClassName('wrapType2019'); 231 232 var targetClassName; 233 234 for(var i = 0; i < targetButtons.length; i ++) 235 { 236 targetClassName = 'wrapType2019'; 237 238 if(targetButtons[i].id == 'wrapType_' + index) 239 { 240 targetClassName = 'wrapType2019 wrapTypeSelected2019'; 241 } 242 243 targetButtons[i].className = targetClassName; 244 } 245 246 var refreshTargets = {image:true, price:true}; 247 setProductParameters('action=selectWrap&finishId=' + finishId + '&mountTypeId=' + mountTypeId + '&galleryWrapColorId=' + galleryWrapColorId, refreshTargets); 248 249 } 250 else 251 { 252 alert('Something is not correct.'); 253 } 254 255 } 256 257 258 function selectFinish(checkId,finishId) 259 { 260 for(i = 1; i <= 10; i ++) 261 { 262 if(document.getElementById('checkfinish[' + i + ']') != null) 263 { 264 if(i == checkId) 265 { 266 document.getElementById('checkfinish[' + i + ']').className = 'optionselected'; 267 } 268 else 269 { 270 document.getElementById('checkfinish[' + i + ']').className = 'optionnotselected'; 271 } 272 } 273 } 274 275 var refreshTargets = {image:true, price:true}; 276 setProductParameters('action=selectFinish&finishId=' + finishId, refreshTargets); 277 278 } 279 280 function selectFinish2019(index) 281 { 282 if(document.getElementById('finishType_' + index)) 283 { 284 var finishId = document.getElementById('finishType_' + index).getAttribute('data-finish-id'); 285 286 var targetButtons = document.getElementsByClassName('finishType2019'); 287 288 var targetClassName; 289 290 for(var i = 0; i < targetButtons.length; i ++) 291 { 292 targetClassName = 'finishType2019'; 293 294 if(targetButtons[i].id == 'finishType_' + index) 295 { 296 targetClassName = 'finishType2019 finishTypeSelected2019'; 297 } 298 299 targetButtons[i].className = targetClassName; 300 } 301 302 var refreshTargets = {image:true, price:true}; 303 setProductParameters('action=selectFinish&finishId=' + finishId, refreshTargets); 304 305 } 306 } 307 308 309 function loadTimeoutUrl() 310 { 311 window.location = document.getElementById('timeoutUrl').value; 312 } 313 314 315 function setProductParameters(parameterString, refreshTargets) 316 { 317 if(refreshTargets == undefined) 318 { 319 var refreshTargets = {image:true}; 320 } 321 322 //alert('parameterString = ' + parameterString); 323 324 var localvalue = requestcount; 325 326 httpobject[localvalue] = newHttpReq(); 327 httpobject[localvalue].onreadystatechange = function(){ 328 329 try 330 { 331 if(httpobject[localvalue].readyState == 4) 332 { 333 } 334 335 if(httpobject[localvalue].status == 200) 336 { 337 } 338 } 339 catch (e) 340 { 341 return; 342 } 343 344 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 345 { 346 //alert(httpobject[localvalue].responseText); 347 348 var response = JSON.parse(httpobject[localvalue].responseText); 349 350 // The response will only fail if the session has timed out. If that's the case, then redirect 351 // to the appropriate timeout URL. 352 if(response.status == 'success') 353 { 354 //console.log(response); 355 356 //alert(response.message); 357 //alert(response.price); 358 359 if(refreshTargets.image == true) 360 { 361 document.getElementById('productPreviewImage').src = response.renderedImage; 362 363 if(response.pixelWidth && response.pixelHeight) 364 { 365 document.getElementById('productPreviewImage').setAttribute('width', response.pixelWidth); 366 document.getElementById('productPreviewImage').setAttribute('height', response.pixelHeight); 367 } 368 369 if(document.getElementById('frameImage') && response.frameImage) 370 { 371 document.getElementById('frameImage').src = response.frameImage; 372 document.getElementById('framePopUpUrl').setAttribute('onclick', response.framePopUpUrl); 373 374 document.getElementById('mat1Image').src = response.mat1Image; 375 document.getElementById('mat1Name').innerHTML = response.mat1Name; 376 377 document.getElementById('mat2Image').src = response.mat2Image; 378 document.getElementById('mat2Name').innerHTML = response.mat2Name; 379 380 document.getElementById('dimensiondiv').innerHTML = response.dimensionsHTML; 381 } 382 383 if(document.getElementById('renderedImageMobileTop')) 384 { 385 document.getElementById('renderedImageMobileTop').src = response.renderedImage; 386 } 387 388 389 // Display the additional product images. 390 if(response.additionalImages != '' && response.additionalImages != null) 391 { 392 for(var key in response.additionalImages) 393 { 394 var currentImage = response.additionalImages[key]; 395 396 if(document.getElementById(currentImage['id']) != null) 397 { 398 //document.getElementById(currentImage['id']).src = currentImage['url']; 399 document.getElementById(currentImage['id']).src = currentImage['urlSmall']; 400 document.getElementById(currentImage['id']).setAttribute('data-url-large', currentImage['url']); 401 } 402 } 403 } 404 405 406 // Display the three dimensional models. 407 if(response.threeDimensionalModels != '' && response.threeDimensionalModels != null) 408 { 409 for(var key in response.threeDimensionalModels) 410 { 411 var currentImage = response.threeDimensionalModels[key]; 412 413 if(document.getElementById(currentImage['id']) != null) 414 { 415 document.getElementById(currentImage['id']).parentNode.parentNode.style.display = 'inline-block'; 416 417 if(document.getElementById(currentImage['id']).getAttribute('data-model-version') == 1) 418 { 419 document.getElementById(currentImage['id']).setAttribute('data-url-large', currentImage['url']); 420 } 421 422 if(document.getElementById(currentImage['id']).getAttribute('data-model-version') == 2) 423 { 424 document.getElementById(currentImage['id']).setAttribute('data-viewer-options', currentImage['viewerOptions']); 425 } 426 427 } 428 } 429 } 430 else 431 { 432 var previous3dModelDivs = document.getElementsByClassName('additionalImage3dModelDiv'); 433 for(i = 0; i < previous3dModelDivs.length; i ++) 434 { 435 previous3dModelDivs[i].style.display = 'none'; 436 } 437 } 438 439 440 // Display the mobile app wall views.
441 if(response.mobileAppWallViews != '' && response.mobileAppWallViews != null) 442 { 443 for(var key in response.mobileAppWallViews) 444 { 445 var currentImage = response.mobileAppWallViews[key]; 446 447 if(document.getElementById(currentImage['id']) != null) 448 { 449 document.getElementById(currentImage['id']).parentNode.parentNode.style.display = 'inline-block'; 450 document.getElementById(currentImage['id']).setAttribute('data-target-url', currentImage['url']); 451 } 452 } 453 } 454 else 455 { 456 var previousMobileAppWallViewDivs = document.getElementsByClassName('additionalImageMobileAppWallViewsDiv'); 457 for(i = 0; i < previousMobileAppWallViewDivs.length; i ++) 458 { 459 previousMobileAppWallViewDivs[i].style.display = 'none'; 460 } 461 } 462 463 464 } 465 466 if(refreshTargets.price == true) 467 { 468 refreshprice(); 469 } 470 471 if(refreshTargets.menu == true) 472 { 473 refreshmenu(); 474 } 475 476 // Display the complete product SKU. 477 if(typeof response.completeProductSku !== 'undefined' && document.getElementById('completeProductSku')) 478 { 479 //document.getElementById('completeProductSku').innerHTML = response.completeProductSku; 480 document.getElementById('completeProductSku').value = response.completeProductSku; 481 482 // https://gist.github.com/jlong/2428561 483 var parser = document.createElement('a'); 484 parser.href = window.location; 485 486 //var currentLocation = parser.pathname + parser.search; 487 var currentLocation = parser.pathname; 488 var queryString = parser.search; 489 490 queryString = queryString.replace('?', ''); 491 492 //alert(queryString); 493 494 var queryParameters = queryString.split('&'); 495 496 //console.log(queryParameters); 497 498 var newQueryString = ''; 499 500 if(queryParameters.length > 0) 501 { 502 for(var i = 0; i < queryParameters.length; i ++) 503 { 504 var queryData = queryParameters[i].split('='); 505 506 if(queryData[0] != '' && queryData[0] != 'completeProductSku') 507 { 508 newQueryString += queryData[0] + '=' + queryData[1] + '&'; 509 } 510 } 511 512 newQueryString = newQueryString.replace(/&+$/,''); 513 514 } 515 516 if(currentLocation.indexOf('productconfigurator.html') == -1) 517 { 518 var newLocation = currentLocation; 519 520 if(newQueryString != '') 521 { 522 newLocation += '?' + newQueryString; 523 } 524 525 if(newLocation.indexOf('?') == -1) 526 { 527 newLocation += '?'; 528 } 529 else 530 { 531 newLocation += '&'; 532 } 533 534 newLocation += 'completeProductSku=' + response.completeProductSku; 535 536 window.history.replaceState('','', newLocation); 537 } 538 539 } 540 541 if(typeof response.alertMessage !== 'undefined') 542 { 543 alert(response.alertMessage); 544 } 545 546 } 547 else 548 { 549 loadTimeoutUrl(); 550 } 551 552 553 } 554 555 556 }; 557 558 //disableAddToCart(); 559 560 if(refreshTargets.image == true) 561 { 562 showBusyImage(); 563 } 564 565 if(refreshTargets.price == true) 566 { 567 disableAddToCart(); 568 } 569 570 var url = "/queries/queryUpdateProductConfiguratorProductPrint.php"; 571 var postString = 'sessionId=' + document.getElementById('sessionId').value + '&uniqueId=' + document.getElementById('uniqueId').value + '&' + parameterString; 572 573 //alert(postString); 574 575 httpobject[localvalue].open('post',url,true); 576 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 577 httpobject[localvalue].send(postString); 578 579 requestcount += 1; 580 581 } 582 583 584 function setManualPaintingRequired() 585 { 586 var manualPaintingRequired = 0; 587 588 if(document.getElementById('manualpaintingrequired').checked == true) 589 { 590 manualPaintingRequired = 1; 591 } 592 593 var refreshTargets = {image:true, menu:true, price:true}; 594 setProductParameters('action=setManualPaintingRequired&manualPaintingRequired=' + manualPaintingRequired, refreshTargets); 595 } 596 597 function setCropType(cropType) 598 { 599 var refreshTargets = {image:true, menu:true, price:true}; 600 document.getElementById('printSizeContainerDiv').innerHTML = "<img src='/assets/images/Searching.gif'>"; 601 602 setProductParameters('action=setCropType&cropType=' + cropType, refreshTargets); 603 } 604 605 function simpleSelectCropType(cropTypeId) 606 { 607 if(document.getElementById('buttonSimplePrintShape_' + cropTypeId)
607) 608 { 609 var newCropTypeId = document.getElementById('buttonSimplePrintShape_' + cropTypeId).getAttribute('data-crop-type-id'); 610 var newCropTypeName = document.getElementById('buttonSimplePrintShape_' + cropTypeId).getAttribute('data-crop-type-name'); 611 612 document.getElementById('buttonSimpleSelectedPrintShape').innerHTML = newCropTypeName; 613 614 var targetButtons = document.getElementsByClassName('buttonSimplePrintShape'); 615 616 var targetClassName; 617 var targetPressed; 618 619 for(var i = 0; i < targetButtons.length; i ++) 620 { 621 targetClassName = 'buttonSimplePrintShape'; 622 targetPressed = false; 623 624 if(targetButtons[i].getAttribute('data-crop-type-id') == newCropTypeId) 625 { 626 targetClassName += ' buttonSimplePrintShapeSelected'; 627 targetPressed = true; 628 } 629 630 targetButtons[i].className = targetClassName; 631 targetButtons[i].setAttribute('aria-pressed', targetPressed); 632 } 633 634 toggleAvailablePrintShapes(0); 635 636 var refreshTargets = {image:true, menu:true, price:true}; 637 document.getElementById('artPrintMenuSimple').innerHTML = "<img src='/assets/images/Searching.gif'>"; 638 639 setProductParameters('action=setCropType&cropType=' + newCropTypeId, refreshTargets); 640 641 } 642 643 } 644 645 646 function setPrintSize(index) 647 { 648 var width; 649 var height; 650 var markupprice; 651 652 for(i = 1; i <= 15; i ++) 653 { 654 if(document.getElementById('checksize[' + i + ']') != null) 655 { 656 if(i == index) 657 { 658 document.getElementById('checksize[' + i + ']').className = 'optionselected'; 659 } 660 else 661 { 662 document.getElementById('checksize[' + i + ']').className = 'optionnotselected'; 663 } 664 } 665 666 if(document.getElementById('optionPrintSize[' + i + ']') != null) 667 { 668 if(i == index) 669 { 670 document.getElementById('optionPrintSize[' + i + ']').className = 'optionPrintSize optionPrintSizeSelected'; 671 } 672 else 673 { 674 document.getElementById('optionPrintSize[' + i + ']').className = 'optionPrintSize'; 675 } 676 } 677 678 } 679 680 width = document.getElementById("targetwidth[" + index + "]").value; 681 height = document.getElementById("targetheight[" + index + "]").value; 682 683 var refreshTargets = {image:true, price:true}; 684 685 setProductParameters('action=setPrintSize&width=' + width + '&height=' + height, refreshTargets); 686 687 } 688 689 690 function setSimplePrintSize(index) 691 { 692 if(document.getElementById('simplePrintSize_' + index)) 693 { 694 var width = document.getElementById('simplePrintSize_' + index).getAttribute('data-target-width'); 695 var height = document.getElementById('simplePrintSize_' + index).getAttribute('data-target-height'); 696 697 var targetButtons = document.getElementsByClassName('simplePrintSize'); 698 699 var targetClassName; 700 var targetPressed; 701 702 for(var i = 0; i < targetButtons.length; i ++) 703 { 704 targetClassName = 'simplePrintSize'; 705 targetPressed = false; 706 707 if(targetButtons[i].id == 'simplePrintSize_' + index) 708 { 709 targetClassName = 'simplePrintSize simplePrintSizeSelected'; 710 targetPressed = true; 711 712 document.getElementById('buttonSimpleSelectedPrintSize').innerHTML = targetButtons[i].innerHTML; 713 } 714 715 targetButtons[i].className = targetClassName; 716 targetButtons[i].setAttribute('aria-pressed', targetPressed); 717 } 718 719 toggleAvailablePrintSizes(); 720 721 var refreshTargets = {image:true, price:true}; 722 setProductParameters('action=setPrintSize&width=' + width + '&height=' + height, refreshTargets); 723 724 } 725 726 } 727 728 729 function simpleSelectPaper(index) 730 { 731 if(document.getElementById('buttonSimplePaper_' + index)) 732 { 733 var newPaperId = document.getElementById('buttonSimplePaper_' + index).getAttribute('data-paper-id'); 734 var newPaperName = document.getElementById('buttonSimplePaper_' + index).getAttribute('data-paper-name'); 735 736 document.getElementById('buttonSimpleSelectedPaper').innerHTML = newPaperName; 737 738 var targetButtons = document.getElementsByClassName('buttonSimplePaper'); 739 740 var targetClassName; 741 var targetPressed; 742 743 for(var i = 0; i < targetButtons.length; i ++) 744 { 745 targetClassName = 'buttonSimplePaper'; 746 targetPressed = false;
747 748 if(targetButtons[i].id == 'buttonSimplePaper_' + index) 749 { 750 targetClassName += ' buttonSimplePaperSelected'; 751 targetPressed = true; 752 } 753 754 targetButtons[i].className = targetClassName; 755 targetButtons[i].setAttribute('aria-pressed', targetPressed); 756 } 757 758 toggleAvailablePapers(0); 759 760 var refreshTargets = {price:true}; 761 setProductParameters('action=selectPaper&paperId=' + newPaperId, refreshTargets); 762 763 } 764 765 } 766 767 function simpleSelectCanvasWrap(wrapId) 768 { 769 if(document.getElementById('buttonSimpleCanvasWrap_' + wrapId)) 770 { 771 var newFinishId = document.getElementById('buttonSimpleCanvasWrap_' + wrapId).getAttribute('data-finish-id'); 772 var newWrapColorId = document.getElementById('buttonSimpleCanvasWrap_' + wrapId).getAttribute('data-wrap-color-id'); 773 var newMountTypeId = document.getElementById('buttonSimpleCanvasWrap_' + wrapId).getAttribute('data-mount-type-id'); 774 775 if(newFinishId == '') 776 { 777 // Check to see if a frame is currently selected. 778 var flagFrameSelected = document.getElementById('simpleFrameContainerDiv').getAttribute('data-frame-selected'); 779 780 if(flagFrameSelected == 1) 781 { 782 var response = confirm("You must remove the frame in order to ship your print in a cardboard tube. Do you want to remove the frame?"); 783 784 if(response === false) 785 { 786 return; 787 } 788 } 789 } 790 791 document.getElementById('buttonSimpleSelectedCanvasWrap').innerHTML = document.getElementById('buttonSimpleCanvasWrap_' + wrapId).innerHTML; 792 793 var targetButtons = document.getElementsByClassName('buttonSimpleCanvasWrap'); 794 795 var targetClassName; 796 var targetPressed; 797 798 for(var i = 0; i < targetButtons.length; i ++) 799 { 800 targetClassName = 'buttonSimpleCanvasWrap'; 801 targetPressed = false; 802 803 if(targetButtons[i].id == 'buttonSimpleCanvasWrap_' + wrapId) 804 { 805 targetClassName += ' buttonSimpleCanvasWrapSelected'; 806 targetPressed = true; 807 } 808 809 targetButtons[i].className = targetClassName; 810 targetButtons[i].setAttribute('aria-pressed', targetPressed); 811 } 812 813 toggleAvailableCanvasWraps(0); 814 815 var refreshTargets = {image:true, price:true, menu:true}; 816 817 //alert(newFinishId + ' - ' + newMountTypeId + ' - ' + newWrapColorId); 818 819 setProductParameters('action=selectWrap&finishId=' + newFinishId + '&mountTypeId=' + newMountTypeId + '&galleryWrapColorId=' + newWrapColorId, refreshTargets); 820 821 } 822 823 } 824 825 826 function simpleSelectFinish(finishId) 827 { 828 if(document.getElementById('buttonSimpleFinish_' + finishId)) 829 { 830 var newFinishId = document.getElementById('buttonSimpleFinish_' + finishId).getAttribute('data-finish-id'); 831 832 document.getElementById('buttonSimpleSelectedFinish').innerHTML = document.getElementById('buttonSimpleFinishText_' + finishId).innerHTML; 833 834 var targetButtons = document.getElementsByClassName('buttonSimpleFinish'); 835 836 var targetClassName; 837 var targetPressed; 838 839 for(var i = 0; i < targetButtons.length; i ++) 840 { 841 targetClassName = 'buttonSimpleFinish'; 842 targetPressed = false; 843 844 if(targetButtons[i].id == 'buttonSimpleFinish_' + finishId) 845 { 846 targetClassName += ' buttonSimpleFinishSelected'; 847 targetPressed = true; 848 } 849 850 targetButtons[i].className = targetClassName; 851 targetButtons[i].setAttribute('aria-pressed', targetPressed); 852 } 853 854 toggleAvailableFinishes(0); 855 856 var refreshTargets = {image:true, price:true}; 857 setProductParameters('action=selectFinish&finishId=' + finishId, refreshTargets); 858 } 859 860 } 861 862 function setPrintSize2019(index) 863 { 864 if(document.getElementById('printSize_' + index)) 865 { 866 var width = document.getElementById('printSize_' + index).getAttribute('data-target-width'); 867 var height = document.getElementById('printSize_' + index).getAttribute('data-target-height'); 868 869 var targetButtons = document.getElementsByClassName('printSize2019'); 870 871 var targetClassName; 872 var targetPressed; 873 874 for(var i = 0; i < targetButtons.length; i ++) 875 { 876 targetClassName = 'printSize2019'; 877 targetPressed = false;
878 879 if(targetButtons[i].id == 'printSize_' + index) 880 { 881 targetClassName = 'printSize2019 printSizeSelected2019'; 882 targetPressed = true; 883 } 884 885 targetButtons[i].className = targetClassName; 886 targetButtons[i].setAttribute('aria-pressed', targetPressed); 887 } 888 889 var refreshTargets = {image:true, price:true}; 890 setProductParameters('action=setPrintSize&width=' + width + '&height=' + height, refreshTargets); 891 892 } 893 894 } 895 896 function activateFrame() 897 { 898 var refreshTargets = {image:true, menu:true, price:true}; 899 setProductParameters('action=activateFrame', refreshTargets); 900 } 901 902 function deactivateFrame() 903 { 904 var refreshTargets = {image:true, menu:true, price:true}; 905 setProductParameters('action=deactivateFrame', refreshTargets); 906 } 907 908 function activateMat1() 909 { 910 var refreshTargets = {image:true, menu:true, price:true}; 911 setProductParameters('action=activateMat1', refreshTargets); 912 } 913 914 function deactivateMat1() 915 { 916 var refreshTargets = {image:true, menu:true, price:true}; 917 setProductParameters('action=deactivateMat1', refreshTargets); 918 } 919 920 function activateMat2() 921 { 922 var refreshTargets = {image:true, menu:true, price:true}; 923 setProductParameters('action=activateMat2', refreshTargets); 924 } 925 926 function deactivateMat2() 927 { 928 var refreshTargets = {image:true, menu:true, price:true}; 929 setProductParameters('action=deactivateMat2', refreshTargets); 930 } 931 932 function simpleActivateMat2() 933 { 934 var refreshTargets = {image:true, menu:true, price:true}; 935 setProductParameters('action=activateMat2', refreshTargets); 936 } 937 938 function updateNote(note) 939 { 940 var refreshTargets = {}; 941 942 setProductParameters('action=setNote¬e=' + note, refreshTargets); 943 } 944 945 function updateIncomingMailItemDimensions() 946 { 947 var refreshTargets = {image:true, price:true}; 948 949 var itemWidth = document.getElementById('incomingMailItemWidth').options[document.getElementById('incomingMailItemWidth').selectedIndex].value; 950 var itemHeight = document.getElementById('incomingMailItemHeight').options[document.getElementById('incomingMailItemHeight').selectedIndex].value; 951 var itemDepth = document.getElementById('incomingMailItemDepth').options[document.getElementById('incomingMailItemDepth').selectedIndex].value; 952 953 setProductParameters('action=updateIncomingMailItemDimensions&itemWidth=' + itemWidth + '&itemHeight=' + itemHeight + '&itemDepth=' + itemDepth, refreshTargets); 954 } 955 956 function updateIncomingMailPackageType() 957 { 958 var refreshTargets = {price:true}; 959 960 var incomingMailPackageType = document.getElementById('incomingMailPackageType').options[document.getElementById('incomingMailPackageType').selectedIndex].value; 961 962 setProductParameters('action=updateIncomingMailPackageType&incomingMailPackageType=' + incomingMailPackageType, refreshTargets); 963 } 964 965 function selectFrame(newFrameId,newFrameColor) 966 { 967 var refreshTargets = {image:true, price:true}; 968 969 if(document.getElementById('textSelectedFrame')) 970 { 971 document.getElementById('textSelectedFrame').style.display = 'none'; 972 } 973 974 if(document.getElementById('selectedFrameId')) 975 { 976 document.getElementById('selectedFrameId').innerHTML = newFrameId; 977 } 978 979 if(document.getElementById('selectedFrameImage')) 980 { 981 document.getElementById('selectedFrameImage').src = document.getElementById('frameImage[' + newFrameId + ']').src; 982 } 983 984 if(document.getElementById('selectedFrameLink')) 985 { 986 document.getElementById('selectedFrameLink').setAttribute('href', "javascript: showframedetail('" + newFrameId + "');"); 987 } 988 989 var frameDivs = document.getElementsByClassName('frameDiv'); 990 991 for(var i = 0; i < frameDivs.length; i ++) 992 { 993 if(frameDivs[i].getAttribute('data-frameId') == newFrameId) 994 { 995 frameDivs[i].className = 'frameDiv frameDivSelected'; 996 } 997 else 998 { 999 frameDivs[i].className = 'frameDiv'; 1000 } 1001 } 1002 1003 setProductParameters('action=selectFrame&frameId=' + newFrameId + '&frameColor=' + newFrameColor, refreshTargets); 1004 } 1005 1006 function simpleSelectFrame(newFrameId) 1007 { 1008 var newFrameName = document.getElementById('simpleFrame_' + newFrameId).getAttribute('data-frameName'); 1009 var newFrameImageUrl = document.getElementById('simpleFrame_' + newFrameId).getAttribute('data-frameImageUrl'); 1010 1011 if(document.getElementById('spanFrameNotFoundInColorGroup')) 1012 { 1013 document.getElementById('spanFrameNotFoundInColorGroup').style.display = 'none'; 1014 } 1015 1016 var flagFrameSelected = 1; 1017 1018 if(newFrameId == 'noFrame') 1019 { 1020 flagFrameSelected = 0; 1021 } 1022 1023 document.getElementById('buttonSimpleSelectedFrameImage').src = newFrameImageUrl; 1024 document.getElementById('buttonSimpleSelectedFrameText').innerHTML = newFrameName; 1025 document.getElementById('simpleFrameContainerDiv').setAttribute('data-frame-selected', flagFrameSelected); 1026 1027 var refreshTargets = {image:true, price:true}; 1028 1029 var frameButtons = document.getElementsByClassName('buttonSimpleFrame'); 1030 1031 for(var i = 0; i < frameButtons.length; i ++) 1032 { 1033 if(frameButtons[i].getAttribute('data-frameId') == newFrameId) 1034 { 1035 frameButtons[i].className = 'buttonSimpleFrame buttonSimpleFrameSelected'; 1036 } 1037 else 1038 { 1039 frameButtons[i].className = 'buttonSimpleFrame'; 1040 } 1041 } 1042 1043 toggleAvailableFrames(0); 1044 1045 if(flagFrameSelected == 1) 1046 { 1047 setProductParameters('action=selectFrame&frameId=' + newFrameId, refreshTargets); 1048 } 1049 else 1050 { 1051 var refreshTargets = {image:true, menu:true, price:true}; 1052 setProductParameters('action=deactivateFrame', refreshTargets); 1053 } 1054 1055 } 1056 1057 function simpleSelectFrameColor(newFrameColorId) 1058 { 1059 //toggleAvailableFrameColors(0); 1060 //return; 1061 1062 refreshmenu('frame','action=setFrameColor&frameColor=' + newFrameColorId); 1063 } 1064 1065 1066 function simpleSelectMat1(newMatId) 1067 { 1068 var flagMat1Selected = 1; 1069
1070 if(newMatId == 'noMat') 1071 { 1072 flagMat1Selected = 0; 1073 } 1074 1075 var flagMat1PreviouslySelected = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat1-selected'); 1076 var flagMat2Selected = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-selected'); 1077 1078 if(flagMat1Selected == 0 && flagMat2Selected == 1) 1079 { 1080 // Get the current ID of Mat #2. 1081 var mat2Id = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-id'); 1082 newMatId = mat2Id; 1083 1084 simpleSelectMat2('noMat'); 1085 } 1086 1087 var newMatName = document.getElementById('simpleMat1_' + newMatId).getAttribute('data-matName'); 1088 var newMatImageUrl = document.getElementById('simpleMat1_' + newMatId).getAttribute('data-matImageUrl'); 1089 1090 1091 1092 1093 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat1-selected', flagMat1Selected); 1094 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat1-id', newMatId); 1095 1096 var refreshTargets = {}; 1097 1098 if(document.getElementById('buttonSimpleSelectedMat1Image')) 1099 { 1100 document.getElementById('buttonSimpleSelectedMat1Image').src = newMatImageUrl; 1101 } 1102 1103 if(document.getElementById('buttonSimpleSelectedMat1Text')) 1104 { 1105 document.getElementById('buttonSimpleSelectedMat1Text').innerHTML = newMatName; 1106 } 1107 1108 var matButtons = document.getElementsByClassName('buttonSimpleMat1'); 1109 1110 for(var i = 0; i < matButtons.length; i ++) 1111 { 1112 if(matButtons[i].getAttribute('data-matId') == newMatId) 1113 { 1114 matButtons[i].className = 'buttonSimpleMat1 buttonSimpleMat buttonSimpleMatSelected'; 1115 } 1116 else 1117 { 1118 matButtons[i].className = 'buttonSimpleMat1 buttonSimpleMat'; 1119 } 1120 } 1121 1122 toggleAvailableMats1(0); 1123 1124 if(newMatId == 'noMat') 1125 { 1126 refreshTargets = {image:true, menu:true, price:true}; 1127 setProductParameters('action=deactivateMat1', refreshTargets); 1128 } 1129 else 1130 { 1131 refreshTargets = {image:true, price:true}; 1132 1133 if(flagMat1PreviouslySelected == 0) 1134 { 1135 refreshTargets = {image:true, menu:true, price:true}; 1136 } 1137 1138 setProductParameters('action=selectMat1&mat1Id=' + newMatId, refreshTargets); 1139 } 1140 } 1141 1142 function simpleSelectMat1Width(newMatWidth) 1143 { 1144 var flagMat2Selected = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-selected'); 1145 1146 if(flagMat2Selected == 1) 1147 { 1148 // Get the width of mat #2. 1149 var mat2Width = document.getElementById('buttonSimpleSelectedMat2Width').getAttribute('data-mat-width'); 1150 1151 if(newMatWidth < mat2Width + 0.25) 1152 { 1153 toggleAvailableMat1Widths(0); 1154 alert('Your top mat width can not be smaller than the bottom mat width. Please reduce the size of your bottom mat width or increase the size of your top mat width.'); 1155 return false; 1156 } 1157 1158 } 1159 1160 var displayNewMatWidth = document.getElementById('simpleMat1Width_' + newMatWidth).getAttribute('data-display-width'); 1161 1162 document.getElementById('buttonSimpleSelectedMat1Width').setAttribute('data-mat-width', newMatWidth); 1163 document.getElementById('buttonSimpleSelectedMat1Width').innerHTML = displayNewMatWidth; 1164 1165 var matWidthButtons = document.getElementsByClassName('simpleMatWidth1'); 1166 1167 for(var i = 0; i < matWidthButtons.length; i ++) 1168 { 1169 if(matWidthButtons[i].getAttribute('data-mat-width') == newMatWidth) 1170 { 1171 matWidthButtons[i].className = 'simpleMatWidth1 simpleMatWidth simpleMatWidthSelected'; 1172 } 1173 else 1174 { 1175 matWidthButtons[i].className = 'simpleMatWidth1 simpleMatWidth'; 1176 } 1177 } 1178 1179 toggleAvailableMat1Widths(0); 1180 1181 var refreshTargets = {image:true, price:true}; 1182 setProductParameters('action=selectMatWidth&matWidth=' + newMatWidth, refreshTargets); 1183 } 1184 1185 function simpleSelectMat2(newMatId) 1186 { 1187 var newMatName = document.getElementById('simpleMat2_' + newMatId).getAttribute('data-matName'); 1188 var newMatImageUrl = document.getElementById('simpleMat2_' + newMatId).getAttribute('data-matImageUrl'); 1189 var flagMat2PreviouslySelected = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-selected'); 1190 var flagMatSelected = 1; 1191
1192 if(newMatId == 'noMat') 1193 { 1194 flagMatSelected = 0; 1195 } 1196 1197 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat2-selected', flagMatSelected); 1198 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat2-id', newMatId); 1199 1200 var refreshTargets = {}; 1201 1202 document.getElementById('buttonSimpleSelectedMat2Image').src = newMatImageUrl;if(document.getElementById('buttonSimpleSelectedMat1Image')) 1203 document.getElementById('buttonSimpleSelectedMat2Text').innerHTML = newMatName; 1204 1205 var matButtons = document.getElementsByClassName('buttonSimpleMat2'); 1206 1207 for(var i = 0; i < matButtons.length; i ++) 1208 { 1209 if(matButtons[i].getAttribute('data-matId') == newMatId) 1210 { 1211 matButtons[i].className = 'buttonSimpleMat2 buttonSimpleMat buttonSimpleMatSelected'; 1212 } 1213 else 1214 { 1215 matButtons[i].className = 'buttonSimpleMat2 buttonSimpleMat'; 1216 } 1217 } 1218 1219 toggleAvailableMats2(0); 1220 1221 if(newMatId == 'noMat') 1222 { 1223 refreshTargets = {image:true, menu:true, price:true}; 1224 setProductParameters('action=deactivateMat2', refreshTargets); 1225 } 1226 else 1227 { 1228 refreshTargets = {image:true, price:true}; 1229 1230 if(flagMat2PreviouslySelected == 0) 1231 { 1232 refreshTargets = {image:true, menu:true, price:true}; 1233 } 1234 1235 setProductParameters('action=selectMat2&mat2Id=' + newMatId, refreshTargets); 1236 } 1237 } 1238 1239 function simpleSelectMat2Width(newMatWidth) 1240 { 1241 // Get the width of mat #1. 1242 var mat1Width = document.getElementById('buttonSimpleSelectedMat1Width').getAttribute('data-mat-width'); 1243 1244 if(newMatWidth > mat1Width - 0.25) 1245 { 1246 toggleAvailableMat2Widths(0); 1247 alert('Your bottom mat width can not be larger that the top mat width. Please reduce the size of your bottom mat width or increase the size of your top mat width.'); 1248 return false; 1249 } 1250 1251 var displayNewMatWidth = document.getElementById('simpleMat2Width_' + newMatWidth).getAttribute('data-display-width'); 1252 1253 //alert(displayNewMatWidth + ' - ' + newMatWidth); 1254 1255 document.getElementById('buttonSimpleSelectedMat2Width').setAttribute('data-mat-width', newMatWidth); 1256 document.getElementById('buttonSimpleSelectedMat2Width').innerHTML = displayNewMatWidth; 1257 1258 var matWidthButtons = document.getElementsByClassName('simpleMatWidth2'); 1259 1260 for(var i = 0; i < matWidthButtons.length; i ++) 1261 { 1262 if(matWidthButtons[i].getAttribute('data-mat-width') == newMatWidth) 1263 { 1264 matWidthButtons[i].className = 'simpleMatWidth2 simpleMatWidth simpleMatWidthSelected'; 1265 } 1266 else 1267 { 1268 matWidthButtons[i].className = 'simpleMatWidth2 simpleMatWidth'; 1269 } 1270 } 1271 1272 toggleAvailableMat2Widths(0); 1273 1274 //var refreshTargets = {image:true, price:true}; 1275 //setProductParameters('action=selectMatWidth&matWidth=' + newMatWidth, refreshTargets); 1276 1277 var refreshTargets = {image:true, price:true}; 1278 setProductParameters('action=selectMatOffset&matOffset=' + newMatWidth, refreshTargets); 1279 1280 } 1281 1282 1283 function selectMat1(newMat1Id) 1284 { 1285 if(document.getElementById('mat1image')) 1286 { 1287 document.getElementById('mat1image').src = '/frames/mats/' + newMat1Id + '-square.jpg?test=1234'; 1288 } 1289 1290 if(document.getElementById('mat1ContainerDiv')) 1291 { 1292 var targetButtons = document.getElementById('mat1ContainerDiv').getElementsByClassName('matImage'); 1293 1294 //console.log(targetButtons); 1295 1296 var targetClassName; 1297 1298 for(var i = 0; i < targetButtons.length; i ++) 1299 { 1300 targetClassName = 'matImage'; 1301 1302 if(targetButtons[i].id == 'mat_' + newMat1Id) 1303 { 1304 targetClassName = 'matImage matImageSelected'; 1305 } 1306 1307 targetButtons[i].className = targetClassName; 1308 } 1309 } 1310 1311 var refreshTargets = {image:true, price:true};
1312 setProductParameters('action=selectMat1&mat1Id=' + newMat1Id, refreshTargets); 1313 } 1314 1315 function selectMat2(newMat2Id) 1316 { 1317 if(document.getElementById('mat2image')) 1318 { 1319 document.getElementById('mat2image').src = '/frames/mats/' + newMat2Id + '-square.jpg?test=1234'; 1320 } 1321 1322 if(document.getElementById('mat2ContainerDiv')) 1323 { 1324 var targetButtons = document.getElementById('mat2ContainerDiv').getElementsByClassName('matImage'); 1325 1326 //console.log(targetButtons); 1327 1328 var targetClassName; 1329 1330 for(var i = 0; i < targetButtons.length; i ++) 1331 { 1332 targetClassName = 'matImage'; 1333 1334 if(targetButtons[i].id == 'mat_' + newMat2Id) 1335 { 1336 targetClassName = 'matImage matImageSelected'; 1337 } 1338 1339 targetButtons[i].className = targetClassName; 1340 } 1341 } 1342 1343 var refreshTargets = {image:true, price:true}; 1344 setProductParameters('action=selectMat2&mat2Id=' + newMat2Id, refreshTargets); 1345 } 1346 1347 function selectMatWidth() 1348 { 1349 var refreshTargets = {image:true, price:true}; 1350 setProductParameters('action=selectMatWidth&matWidth=' + document.getElementById('matWidth').value, refreshTargets); 1351 } 1352 1353 1354 function selectMatOffset() 1355 { 1356 var previousMatOffset = document.getElementById('matOffset').getAttribute('data-currentValue'); 1357 previousMatOffset = parseFloat(previousMatOffset).toFixed(2); 1358 1359 var currentMatWidth = document.getElementById('matWidth').value; 1360 var currentMatOffset = document.getElementById('matOffset').value; 1361 1362 if(currentMatOffset > currentMatWidth - 0.25) 1363 { 1364 alert('Your bottom mat width can not be larger that the top mat width. Please reduce the size of your bottom mat width or increase the size of your top mat width.'); 1365 document.getElementById('matOffset').value = previousMatOffset; 1366 return false; 1367 } 1368 1369 document.getElementById('matOffset').setAttribute('data-currentValue', currentMatOffset); 1370 1371 var refreshTargets = {image:true, price:true}; 1372 setProductParameters('action=selectMatOffset&matOffset=' + currentMatOffset, refreshTargets); 1373 } 1374 1375 1376 function refreshmenu(tabname, parameters) 1377 { 1378 flagstophighlight = 1; 1379 1380 var localvalue = requestcount; 1381 1382 httpobject[localvalue] = newHttpReq(); 1383 httpobject[localvalue].onreadystatechange = function(){ 1384 1385 try 1386 { 1387 if(httpobject[localvalue].readyState == 4) 1388 { 1389 } 1390 1391 if(httpobject[localvalue].status == 200) 1392 { 1393 } 1394 } 1395 catch (e) 1396 { 1397 return; 1398 } 1399 1400 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1401 { 1402 var response = httpobject[localvalue].responseText.split("<EXTRAINSTRUCTIONS>"); 1403 1404 document.getElementById('menudiv').innerHTML = response[0]; 1405 1406 if(response[1]) 1407 { 1408 eval(response[1]); 1409 } 1410 1411 if(document.getElementById('artworkTabContainerDiv')) 1412 { 1413 document.getElementById('artworkTabContainerDiv').focus(); 1414 } 1415 1416 if(document.getElementById('artworkTabContainerDiv2019')) 1417 { 1418 document.getElementById('artworkTabContainerDiv2019').focus(); 1419 } 1420 1421 //artworkOptionsFocusTrap.activate(); 1422 1423 //var artworkOptionsFocusTrap = focusTrap(document.getElementById('artworkTabContainerDiv'),{clickOutsideDeactivates: true,}); 1424 //artworkOptionsFocusTrap.activate(); 1425 1426 } 1427 1428 1429 }; 1430 1431 var url = "/products/pageSectionArtPrintMenu.php"; 1432 var postString = 'tab=' + tabname + '&sessionId=' + document.getElementById('sessionId').value + '&uniqueId=' + document.getElementById('uniqueId').value; 1433 1434 if(parameters != undefined) 1435 { 1436 postString += '&' + parameters; 1437 } 1438 1439 //alert(postString); 1440 1441 httpobject[localvalue].open('post',url,true); 1442 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1443 httpobject[localvalue].send(postString); 1444 1445 requestcount += 1; 1446 1447 return; 1448 } 1449 1450 1451 function refreshprice(parameters) 1452 { 1453 1454 var localvalue = requestcount; 1455 1456 httpobject[localvalue] = newHttpReq(); 1457 httpobject[localvalue].onreadystatechange = function(){ 1458 1459 try 1460 { 1461 if(httpobject[localvalue].readyState == 4) 1462 { 1463 } 1464 1465 if(httpobject[localvalue].status == 200) 1466 { 1467 } 1468 } 1469 catch (e) 1470 { 1471 return; 1472 } 1473 1474 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1475 { 1476 var response = httpobject[localvalue].responseText.split("<EXTRAINSTRUCTIONS>"); 1477 1478 document.getElementById('pricediv').innerHTML = response[0]; 1479 document.getElementById('pricediv').focus(); 1480 1481 if(response[1]) 1482 { 1483 eval(response[1]); 1484 1485 } 1486 1487 window.dataLayer.push({event: 'gtm.priceChange'}); 1488 1489 if(document.getElementById('productPriceMobileTop')) 1490 { 1491 document.getElementById('productPriceMobileTop').innerHTML = document.getElementById('productPrice').innerHTML; 1492 1493 if(document.getElementById('buttonaddtocart')) 1494 { 1495 document.getElementById('buttonAddToCartMobileTop').style.display = 'inline-block'; 1496 } 1497 else 1498 { 1499 document.getElementById('buttonAddToCartMobileTop').style.display = 'none'; 1500 } 1501 } 1502 1503 } 1504 1505 1506 }; 1507 1508 var url = "/queries/new-querypricenew.php"; 1509 var postString = 'sessionId=' + document.getElementById('sessionId').value + '&uniqueId=' + document.getElementById('uniqueId').value + '&flagWidget=' + document.getElementById('flagWidget').value; 1510 1511 if(parameters != undefined) 1512 { 1513 postString += '&' + parameters; 1514 } 1515 1516 httpobject[localvalue].open('post',url,true); 1517 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1518 httpobject[localvalue].send(postString); 1519 1520 requestcount += 1; 1521 1522 return; 1523 1524 } 1525 1526 1527 1528 function showpaperscanvases() 1529 { 1530 var randomnumber = Math.floor(Math.random()*100); 1531 1532 pagename = 'http://fineartamerica.com/showpaperscanvases.html'; 1533 newWindow = window.open(pagename,randomnumber,'toolbar=0, scrollbars = 1, resizable = no, width=990px, height=750px, top=25px, left=25px'); 1534 } 1535 1536 var menuindex = 2; 1537 var t = ''; 1538 1539 function highlightmenutabs() 1540 { 1541 if(flagstophighlight == 1) 1542 { 1543 return; 1544 } 1545 1546 if(document.getElementById('menu[' + menuindex + ']')) 1547 { 1548 document.getElementById('menu[' + menuindex + ']').className = 'menu3'; 1549 } 1550 1551 if(menuindex >= 3 && document.getElementById('menu[' + (menuindex - 1) + ']')) 1552 { 1553 document.getElementById('menu[' + (menuindex - 1) + ']').className = 'menu2'; 1554 } 1555 1556 menuindex ++; 1557 1558 if(menuindex <= 6) 1559 { 1560 setTimeout("highlightmenutabs()",350); 1561 } 1562 } 1563 1564 var httpobject = []; 1565 var requestcount = 0; 1566 1567 function showframedetail(frameid) 1568 {
1569 createForegroundAndBackgroundDiv(); 1570 1571 var backgroundobject = document.getElementById('backgroundDiv'); 1572 backgroundobject.style.width = '100%'; 1573 backgroundobject.style.height = '100%'; 1574 backgroundobject.style.visibility = 'visible'; 1575 1576 var widthclient = parseInt(document.documentElement.clientWidth); 1577 var heightclient = parseInt(document.documentElement.clientHeight); 1578 1579 //alert(widthclient); 1580 1581 var widthtarget = parseInt(widthclient*0.90); 1582 var heighttarget = parseInt(heightclient*0.90); 1583 1584 widthtarget = Math.min(widthtarget, widthclient - 20, 1000); 1585 heighttarget = Math.min(heighttarget, heightclient - 20, 1000); 1586 1587 var offsetleft = 0; 1588 var offsettop = 0; 1589 1590 var offsetx = 0; 1591 var offsety = 0; 1592 1593 var logindiv = document.getElementById('foregroundDiv'); 1594 logindiv.style.width = widthtarget + 'px'; 1595 logindiv.style.height = heighttarget + 'px'; 1596 logindiv.style.visibility = 'visible'; 1597 logindiv.innerHTML = "<img src='/assets/images/Searching.gif'>"; 1598 1599 logindiv.style.left = (offsetx + offsetleft + parseInt((widthclient - widthtarget) / 2)) + 'px'; 1600 logindiv.style.top = (offsety + offsettop + parseInt((heightclient - heighttarget) / 2)) + 'px'; 1601 logindiv.style.overflowX = 'hidden'; 1602 1603 var localvalue = requestcount; 1604 1605 httpobject[localvalue] = newHttpReq(); 1606 httpobject[localvalue].onreadystatechange = function(){ 1607 1608 try 1609 { 1610 if(httpobject[localvalue].readyState == 4) 1611 { 1612 } 1613 1614 if(httpobject[localvalue].status == 200) 1615 { 1616 } 1617 } 1618 catch (e) 1619 { 1620 return; 1621 } 1622 1623 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1624 { 1625 document.getElementById('foregroundDiv').innerHTML = httpobject[localvalue].responseText; 1626 focusTrapArtPrint = focusTrap(document.getElementById('foregroundDiv'), {'clickOutsideDeactivates': true,'escapeDeactivates': false,}); 1627 focusTrapArtPrint.activate(); 1628 } 1629 1630 1631 }; 1632 1633 var url = "/queries/queryframedetails.php"; 1634 var poststring = "frameid=" + frameid; 1635 1636 httpobject[localvalue].open('post',url,true); 1637 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1638 httpobject[localvalue].send(poststring); 1639 1640 requestcount += 1; 1641 1642 return; 1643 } 1644 1645 function hideframedetail() 1646 { 1647 document.getElementById('backgroundDiv').style.visibility = 'hidden'; 1648 document.getElementById('foregroundDiv').style.visibility = 'hidden'; 1649 document.getElementById('foregroundDiv').innerHTML = ' '; 1650 } 1651 1652 function simpleShowPaperDetails(e) 1653 { 1654 1655 var eventSource = e.target || e.srcElement; 1656 var paperId = eventSource.getAttribute('data-paper-id'); 1657 1658 e.preventDefault(); 1659 e.stopImmediatePropagation(); 1660 1661 showPaperDetails(paperId); 1662 1663 } 1664 1665 function showPaperDetails(paperId) 1666 { 1667 createForegroundAndBackgroundDiv(); 1668 1669 var backgroundobject = document.getElementById('backgroundDiv'); 1670 backgroundobject.style.width = '100%'; 1671 backgroundobject.style.height = '100%'; 1672 backgroundobject.style.visibility = 'visible'; 1673 1674 var widthclient = parseInt(document.documentElement.clientWidth); 1675 var heightclient = parseInt(document.documentElement.clientHeight); 1676 1677 //alert(widthclient); 1678 1679 var widthtarget = parseInt(widthclient*0.90); 1680 var heighttarget = parseInt(heightclient*0.90); 1681 1682 widthtarget = Math.min(widthtarget, widthclient - 20, 1000); 1683 heighttarget = Math.min(heighttarget, heightclient - 20, 1000); 1684 1685 var offsetleft = 0; 1686 var offsettop = 0; 1687 1688 var offsetx = 0; 1689 var offsety = 0; 1690 1691 var logindiv = document.getElementById('foregroundDiv'); 1692 logindiv.style.width = widthtarget + 'px'; 1693 logindiv.style.height = heighttarget + 'px'; 1694 logindiv.style.visibility = 'visible'; 1695 logindiv.innerHTML = "<img src='/assets/images/Searching.gif'>"; 1696 1697 logindiv.style.left = (offsetx + offsetleft + parseInt((widthclient - widthtarget) / 2)) + 'px'; 1698 logindiv.style.top = (offsety + offsettop + parseInt((heightclient - heighttarget) / 2)) + 'px'; 1699 logindiv.style.overflowX = 'hidden'; 1700 1701 var localvalue = requestcount; 1702 1703 httpobject[localvalue] = newHttpReq(); 1704 httpobject[localvalue].onreadystatechange = function(){ 1705 1706 try 1707 { 1708 if(httpobject[localvalue].readyState == 4) 1709 { 1710 } 1711 1712 if(httpobject[localvalue].status == 200) 1713 { 1714 } 1715 } 1716 catch (e) 1717 { 1718 return; 1719 } 1720 1721 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1722 { 1723 document.getElementById('foregroundDiv').innerHTML = httpobject[localvalue].responseText; 1724 focusTrapArtPrint = focusTrap(document.getElementById('foregroundDiv'), {'clickOutsideDeactivates': true,'escapeDeactivates': false,}); 1725 focusTrapArtPrint.activate(); 1726 } 1727 1728 1729 }; 1730 1731 var url = "/queries/queryPaperDetails.php"; 1732 var poststring = "paperId=" + paperId + "&widthTarget=" + widthtarget; 1733 1734 httpobject[localvalue].open('post',url,true); 1735 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1736 httpobject[localvalue].send(poststring); 1737 1738 requestcount += 1; 1739 1740 return; 1741 } 1742 1743 function hidePaperDetails() 1744 { 1745 document.getElementById('backgroundDiv').style.visibility = 'hidden'; 1746 document.getElementById('foregroundDiv').style.visibility = 'hidden'; 1747 document.getElementById('foregroundDiv').innerHTML = ' '; 1748 } 1749 1750 1751 1752 function hideForegroundDiv() 1753 { 1754 document.getElementById('backgroundDiv').style.visibility = 'hidden'; 1755 document.getElementById('foregroundDiv').style.visibility = 'hidden'; 1756 document.getElementById('foregroundDiv').innerHTML = ' '; 1757 1758 if(typeof focusTrapArtPrint === 'object') 1759 { 1760 //console.log(focusTrapArtPrint); 1761 focusTrapArtPrint.deactivate(); 1762 } 1763 } 1764 1765 function simpleShowFinishDetails(e) 1766 { 1767 1768 var eventSource = e.target || e.srcElement; 1769 var finishId = eventSource.getAttribute('data-finish-id'); 1770 1771 e.preventDefault(); 1772 e.stopImmediatePropagation(); 1773 1774 showfinishdetail(finishId); 1775 1776 } 1777 1778 1779 function showfinishdetail(finishid) 1780 {
1781 createForegroundAndBackgroundDiv(); 1782 1783 var backgroundobject = document.getElementById('backgroundDiv'); 1784 backgroundobject.style.width = '100%'; 1785 backgroundobject.style.height = '100%'; 1786 backgroundobject.style.visibility = 'visible'; 1787 1788 var widthclient = parseInt(document.documentElement.clientWidth); 1789 var heightclient = parseInt(document.documentElement.clientHeight); 1790 1791 //alert(widthclient); 1792 1793 var widthtarget = parseInt(widthclient*0.90); 1794 var heighttarget = parseInt(heightclient*0.90); 1795 1796 widthtarget = Math.min(widthtarget, widthclient - 20, 1000); 1797 heighttarget = Math.min(heighttarget, heightclient - 20, 1000); 1798 1799 var offsetleft = 0; 1800 var offsettop = 0; 1801 1802 var offsetx = 0; 1803 var offsety = 0; 1804 1805 var logindiv = document.getElementById('foregroundDiv'); 1806 logindiv.style.width = widthtarget + 'px'; 1807 logindiv.style.height = heighttarget + 'px'; 1808 logindiv.style.visibility = 'visible'; 1809 logindiv.innerHTML = "<img src='/assets/images/Searching.gif'>"; 1810 1811 logindiv.style.left = (offsetx + offsetleft + parseInt((widthclient - widthtarget) / 2)) + 'px'; 1812 logindiv.style.top = (offsety + offsettop + parseInt((heightclient - heighttarget) / 2)) + 'px'; 1813 logindiv.style.overflowX = 'hidden'; 1814 1815 var localvalue = requestcount; 1816 1817 httpobject[localvalue] = newHttpReq(); 1818 httpobject[localvalue].onreadystatechange = function(){ 1819 1820 try 1821 { 1822 if(httpobject[localvalue].readyState == 4) 1823 { 1824 } 1825 1826 if(httpobject[localvalue].status == 200) 1827 { 1828 } 1829 } 1830 catch (e) 1831 { 1832 return; 1833 } 1834 1835 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1836 { 1837 document.getElementById('foregroundDiv').innerHTML = httpobject[localvalue].responseText; 1838 focusTrapArtPrint = focusTrap(document.getElementById('foregroundDiv'), {'clickOutsideDeactivates': true,'escapeDeactivates': false,}); 1839 focusTrapArtPrint.activate(); 1840 } 1841 1842 1843 }; 1844 1845 var url = "/queries/queryfinishdetails.php"; 1846 var poststring = "finishid=" + finishid; 1847 1848 httpobject[localvalue].open('post',url,true); 1849 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1850 httpobject[localvalue].send(poststring); 1851 1852 requestcount += 1; 1853 1854 return; 1855 } 1856 1857 function showpricedetails() 1858 { 1859 refreshprice('showPriceDetails=true'); 1860 } 1861 1862 function hidepricedetails() 1863 { 1864 refreshprice('hidePriceDetails=true'); 1865 } 1866 1867 1868 function favoriteimage(uniqueId) 1869 { 1870 if(memberidtype == 'none') 1871 { 1872 targetfunction = "favoriteimage('" + uniqueId + "')"; 1873 showLoginPopUp(false); 1874 return; 1875 } 1876 1877 document.getElementById('favoritediv').style.display = 'inline-block'; 1878 document.getElementById('favoritediv').innerHTML = "<div style='float: left; width: 100%; padding-top: 15px; padding-bottom: 15px; text-align: center;'><img src='/assets/images/Searching.gif'></div>\n"; 1879 1880 var localvalue = requestcount; 1881 1882 httpobject[localvalue] = newHttpReq(); 1883 httpobject[localvalue].onreadystatechange = function(){ 1884 1885 try 1886 { 1887 if(httpobject[localvalue].readyState == 4) 1888 { 1889 } 1890 1891 if(httpobject[localvalue].status == 200) 1892 { 1893 } 1894 } 1895 catch (e) 1896 { 1897 return; 1898 } 1899 1900 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1901 { 1902 var response = httpobject[localvalue].responseText.split("<EXTRAINSTRUCTIONS>"); 1903 1904 document.getElementById('favoritediv').innerHTML = response[0]; 1905 1906 if(response[1]) 1907 { 1908 eval(response[1]); 1909 } 1910 1911 } 1912 1913 1914 }; 1915 1916 var poststring = 'uniqueId=' + uniqueId + '&flagShoppingPage=true'; 1917 var url = '/queries/new-queryaddtofavoritesnew.php'; 1918 1919 httpobject[localvalue].open('post',url,true); 1920 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1921 httpobject[localvalue].send(poststring); 1922 1923 requestcount += 1; 1924 } 1925 1926 1927 function favoriteImageTop(artworkId) 1928 { 1929 if(memberidtype == 'none') 1930 { 1931 targetfunction = "favoriteImageTop(" + artworkId + ")"; 1932 showLoginPopUp(false); 1933 return; 1934 } 1935 1936 document.getElementById('messageDivTop').style.display = 'inline-block'; 1937 document.getElementById('messageDivTop').innerHTML = "<div style='float: left; width: 100%; padding-top: 15px; padding-bottom: 15px; text-align: center;'><img src='/assets/images/Searching.gif'></div>\n"; 1938 1939 var localvalue = requestcount; 1940 1941 httpobject[localvalue] = newHttpReq(); 1942 httpobject[localvalue].onreadystatechange = function(){ 1943 1944 try 1945 { 1946 if(httpobject[localvalue].readyState == 4) 1947 { 1948 } 1949 1950 if(httpobject[localvalue].status == 200) 1951 { 1952 } 1953 } 1954 catch (e) 1955 { 1956 return; 1957 } 1958 1959 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 1960 { 1961 var response = httpobject[localvalue].responseText.split("<EXTRAINSTRUCTIONS>"); 1962 1963 document.getElementById('messageDivTop').innerHTML = response[0]; 1964 1965 if(response[1]) 1966 { 1967 eval(response[1]); 1968 } 1969 1970 } 1971 1972 1973 }; 1974 1975 var uniqueId = document.getElementById('uniqueId').value; 1976 1977 var poststring = 'uniqueId=' + uniqueId + '&flagShoppingPage=true'; 1978 1979 //alert(poststring); 1980 //return; 1981 1982 var url = '/queries/new-queryaddtofavoritesnew.php'; 1983 1984 httpobject[localvalue].open('post',url,true); 1985 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 1986 httpobject[localvalue].send(poststring); 1987 1988 requestcount += 1; 1989 } 1990 1991 1992 function addtocart() 1993 { 1994 if(simpleEcommerceId && typeof fbq == 'function') 1995 { 1996 fbq('track', 'AddToCart', {content_type: 'product', content_ids: [simpleEcommerceId], value: simpleEcommercePrice, currency: 'USD'}); 1997 } 1998 1999 document.getElementById('frameform').submit(); 2000 } 2001 2002 function changestylebuttonaddtocart(newvalue) 2003 { 2004 if(newvalue == 1) 2005 { 2006 document.getElementById('buttonaddtocart').style.backgroundColor = '#445577'; 2007 } 2008 else 2009 { 2010 document.getElementById('buttonaddtocart').style.backgroundColor = '#7EB93B'; 2011 } 2012 } 2013 2014 2015 2016 var touchx0; 2017 var touchy0; 2018 var timestamp0; 2019 2020 var touchxcurrent; 2021 var touchycurrent; 2022 2023 function touchcapturestart(evt) 2024 { 2025 if(evt.touches) 2026 { 2027 timestamp0 = new Date(); 2028 timestamp0 = timestamp0.getTime(); 2029 2030 touchx0 = evt.touches[0].pageX; 2031 touchy0 = evt.touches[0].pageY; 2032 2033 touchxcurrent = touchx0; 2034 touchycurrent = touchy0; 2035 } 2036 } 2037 2038 function touchcapturemove(evt) 2039 { 2040 if(evt.touches) 2041 { 2042 touchxcurrent = evt.touches[0].pageX; 2043 touchycurrent = evt.touches[0].pageY; 2044 } 2045 } 2046 2047 function touchcaptureend(evt) 2048 { 2049 if(isNaN(touchx0) || isNaN(touchy0) || isNaN(touchxcurrent) || isNaN(touchycurrent)) 2050 { 2051 return; 2052 } 2053 2054 var touchdeltax = touchxcurrent - touchx0; 2055 var touchdeltay = touchycurrent - touchy0; 2056 var currenttime = new Date(); 2057 currenttime = currenttime.getTime(); 2058 2059 var touchtimestampdelta = currenttime - timestamp0; 2060 2061 //alert(touchdeltax + ' - ' + touchdeltay + ' - ' + touchtimestampdelta); 2062 2063 if(touchdeltax < -100 && Math.abs(touchdeltay) < 100 && touchtimestampdelta < 1500) 2064 { 2065 if(document.getElementById('linknext')) 2066 { 2067 showswipeinprogress(); 2068 document.getElementById('linknext').click(); 2069 } 2070 } 2071 2072 if(touchdeltax > 100 && Math.abs(touchdeltay) < 100 && touchtimestampdelta < 1500) 2073 { 2074 if(document.getElementById('linkprevious')) 2075 { 2076 showswipeinprogress(); 2077 document.getElementById('linkprevious').click(); 2078 } 2079 } 2080 2081 } 2082 2083 function showswipeinprogress() 2084 { 2085 var widthclient = parseInt(document.documentElement.clientWidth); 2086 var heightclient = parseInt(document.documentElement.clientHeight); 2087 2088 var widthtarget = 131; 2089 var heighttarget = 23; 2090 2091 var offsetleft = 0; 2092 var offsettop = 0; 2093 2094 if(false) 2095 { 2096 if(document.documentElement.scrollTop && !document.body.scrollTop) 2097 { 2098 offsetleft = document.documentElement.scrollLeft; 2099 offsettop = document.documentElement.scrollTop; 2100 } 2101 else 2102 { 2103 offsetleft = document.body.scrollLeft; 2104 offsettop = document.body.scrollTop; 2105 } 2106 } 2107 2108 var sourceobject = document.getElementById('topnavigationdiv'); 2109 2110 if (sourceobject.offsetParent) 2111 { 2112 offsettop = sourceobject.offsetTop; 2113 2114 while (sourceobject = sourceobject.offsetParent) 2115 { 2116 offsettop += sourceobject.offsetTop; 2117 } 2118 } 2119 2120 if(!document.getElementById('foregrounddiv') || !document.getElementById('backgrounddiv')) 2121 { 2122 2123 var newdiv; 2124 var cssstyle; 2125
2126 // Background Div 2127 if(!document.getElementById('backgrounddiv')) 2128 { 2129 newdiv = document.createElement('div'); 2130 cssstyle = 'position: fixed; z-index: 5000; left: 0px; top: 0px; width: 10px; height: 10px; background-color: #000000; visibility: hidden; opacity: 0.25; filter: alpha(opacity=25);'; 2131 newdiv.id = 'backgrounddiv'; 2132 newdiv.setAttribute('style',cssstyle); 2133 newdiv.style.cssText = cssstyle; 2134 document.body.appendChild(newdiv); 2135 } 2136 2137 // Foreground Div 2138 if(!document.getElementById('foregrounddiv')) 2139 { 2140 newdiv = document.createElement('div'); 2141 cssstyle = 'position: fixed; z-index: 5001; left: 0px; top: 0px; width: 10px; min-height: 10px; padding: 0px; overflow: hidden; border: none; background-color: transparent; visibility: hidden; box-shadow: none;'; 2142 newdiv.id = 'foregrounddiv'; 2143 newdiv.setAttribute('style',cssstyle); 2144 newdiv.style.cssText = cssstyle; 2145 document.body.appendChild(newdiv); 2146 } 2147 } 2148 2149 var backgroundobject = document.getElementById('backgrounddiv'); 2150 backgroundobject.style.width = '100%'; 2151 backgroundobject.style.height = '100%'; 2152 //backgroundobject.style.visibility = 'visible'; 2153 2154 var foregrounddiv = document.getElementById('foregrounddiv'); 2155 foregrounddiv.style.width = widthtarget + 'px'; 2156 foregrounddiv.style.height = heighttarget + 'px'; 2157 foregrounddiv.style.backgroundColor = 'transparent'; 2158 foregrounddiv.style.border = 'none'; 2159 foregrounddiv.style.boxShadow = 'none'; 2160 foregrounddiv.innerHTML = "<img src='/assets/images/Searching.gif' style='float: left;'>"; 2161 2162 foregrounddiv.style.left = (offsetleft + parseInt((widthclient - widthtarget) / 2)) + 'px'; 2163 //foregrounddiv.style.top = (offsettop + parseInt((heightclient - heighttarget) / 2)) + 'px'; 2164 //foregrounddiv.style.top = '130px'; 2165 foregrounddiv.style.top = offsettop + 'px'; 2166 2167 foregrounddiv.style.visibility = 'visible'; 2168 2169 } 2170 2171 function addfavoritetofolder(favoriteid) 2172 { 2173 var targetfavoritefolderid = document.getElementById('targetfavoritefolderid').value; 2174 var poststring = 'action=addfavoritetofolder&favoriteid=' + favoriteid + '&targetfavoritefolderid=' + targetfavoritefolderid; 2175 2176 document.getElementById('messageaddfavoritetofolderdiv').style.display = 'inline-block'; 2177 document.getElementById('messageaddfavoritetofolderdiv').innerHTML = "<div style='float: left; width: 100%; padding-top: 15px; padding-bottom: 15px; text-align: center;'><img src='/assets/images/Searching.gif'></div>\n"; 2178 2179 var localvalue = requestcount; 2180 2181 httpobject[localvalue] = newHttpReq(); 2182 httpobject[localvalue].onreadystatechange = function(){ 2183 2184 try 2185 { 2186 if(httpobject[localvalue].readyState == 4) 2187 { 2188 } 2189 2190 if(httpobject[localvalue].status == 200) 2191 { 2192 } 2193 } 2194 catch (e) 2195 { 2196 return; 2197 } 2198 2199 if(httpobject[localvalue].readyState == 4 && httpobject[localvalue].status == 200) 2200 { 2201 var response = httpobject[localvalue].responseText.split("<EXTRAINSTRUCTIONS>"); 2202 2203 document.getElementById('messageaddfavoritetofolderdiv').innerHTML = response[0]; 2204 2205 if(response[1]) 2206 { 2207 eval(response[1]); 2208 } 2209 2210 } 2211 2212 2213 }; 2214 2215 var url = '/queries/new-queryaddtofavoritesnew.php'; 2216 2217 httpobject[localvalue].open('post',url,true); 2218 httpobject[localvalue].setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 2219 httpobject[localvalue].send(poststring); 2220 2221 requestcount += 1; 2222 2223 2224 } 2225 2226 function logininteriordesignerprints() 2227 { 2228 window.location = "/logincollector.php?targetpage=" + document.getElementById('timeoutUrl').value; 2229 } 2230 2231 2232 2233 function toggleavailableproducts() 2234 { 2235 if(document.getElementById('availableproductsdiv').style.display == 'none') 2236 { 2237 document.getElementById('availableproductsdiv').style.display = 'inline-block'; 2238 2239 if(false) 2240 { 2241 // This lazy loads all of the product images in the dropdown product menus. 2242 var additionalArtProductImages = document.getElementById('availableproductsdiv').getElementsByClassName('additionalArtProductImage'); 2243 2244 for(var i = 0; i < additionalArtProductImages.length; i ++) 2245 { 2246 if(additionalArtProductImages[i].getAttribute('data-pixels-src')) 2247 { 2248 additionalArtProductImages[i].src = additionalArtProductImages[i].getAttribute('data-pixels-src'); 2249 additionalArtProductImages[i].removeAttribute('data-pixels-src'); 2250 } 2251 } 2252 } 2253 } 2254 else 2255 { 2256 document.getElementById('availableproductsdiv').style.display = 'none'; 2257 } 2258 } 2259 2260 function checknextprevious(theEvent) 2261 { 2262 var activeelementtagname = document.activeElement.tagName; 2263 activeelementtagname = activeelementtagname.toLowerCase(); 2264 2265 if(activeelementtagname == 'textarea') 2266 { 2267 return; 2268 } 2269 2270 if (theEvent == null) 2271 { 2272 theEvent = window.event; 2273 } 2274 2275 if (theEvent.target) 2276 { 2277 theTarget = theEvent.target; 2278 } 2279 else 2280 {
2281 theTarget = theEvent.srcElement; 2282 } 2283 2284 if(false && theEvent.keyCode == 37) 2285 { 2286 if(document.getElementById('linkprevioussidearrow')) 2287 { 2288 window.location = document.getElementById('linkprevioussidearrow').getAttribute('href'); 2289 } 2290 } 2291 2292 if(false && theEvent.keyCode == 39) 2293 { 2294 if(document.getElementById('linknextsidearrow')) 2295 { 2296 window.location = document.getElementById('linknextsidearrow').getAttribute('href'); 2297 } 2298 } 2299 } 2300 2301 function toggleAvailablePrintSizes(newState) 2302 { 2303 if(typeof newState === 'undefined') 2304 { 2305 var currentState = document.getElementById('simplePrintSizeContainerDiv').getAttribute('data-sizes-visible'); 2306 newState = 1 - currentState; 2307 } 2308 2309 if(newState == 1) 2310 { 2311 toggleAvailablePrintShapes(0); 2312 } 2313 2314 document.getElementById('simplePrintSizeContainerDiv').setAttribute('data-sizes-visible', newState); 2315 } 2316 2317 function toggleAvailablePrintShapes(newState) 2318 { 2319 if(typeof newState === 'undefined') 2320 { 2321 var currentState = document.getElementById('simplePrintSizeContainerDiv').getAttribute('data-shapes-visible'); 2322 newState = 1 - currentState; 2323 } 2324 2325 if(newState == 1) 2326 { 2327 toggleAvailablePrintSizes(0); 2328 } 2329 2330 document.getElementById('simplePrintSizeContainerDiv').setAttribute('data-shapes-visible', newState); 2331 } 2332 2333 function toggleAvailableFrames(newState) 2334 { 2335 if(typeof newState === 'undefined') 2336 { 2337 var currentState = document.getElementById('simpleFrameContainerDiv').getAttribute('data-frames-visible'); 2338 newState = 1 - currentState; 2339 } 2340 2341 document.getElementById('simpleFrameContainerDiv').setAttribute('data-frames-visible', newState); 2342 } 2343 2344 function toggleAvailableFrameColors(newState) 2345 { 2346 if(typeof newState === 'undefined') 2347 { 2348 var currentState = document.getElementById('simpleFrameContainerDiv').getAttribute('data-frame-colors-visible'); 2349 newState = 1 - currentState; 2350 } 2351 2352 document.getElementById('simpleFrameContainerDiv').setAttribute('data-frame-colors-visible', newState); 2353 } 2354 2355 function toggleAvailableMats1(newState) 2356 { 2357 if(typeof newState === 'undefined') 2358 { 2359 var currentState = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat1-options-visible'); 2360 newState = 1 - currentState; 2361 } 2362 2363 if(newState == 1) 2364 { 2365 toggleAvailableMat1Widths(0); 2366 } 2367 2368 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat1-options-visible', newState); 2369 } 2370 2371 function toggleAvailableMat1Widths(newState) 2372 { 2373 if(typeof newState === 'undefined') 2374 { 2375 var currentState = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat1-widths-visible'); 2376 newState = 1 - currentState; 2377 } 2378 2379 if(newState == 1) 2380 { 2381 toggleAvailableMats1(0); 2382 } 2383 2384 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat1-widths-visible', newState); 2385 } 2386 2387 function toggleAvailableMats2(newState) 2388 { 2389 if(typeof newState === 'undefined') 2390 { 2391 var currentState = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-options-visible'); 2392 newState = 1 - currentState; 2393 } 2394 2395 if(newState == 1) 2396 { 2397 toggleAvailableMat2Widths(0); 2398 } 2399 2400 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat2-options-visible', newState); 2401 } 2402 2403 function toggleAvailableMat2Widths(newState) 2404 { 2405 if(typeof newState === 'undefined') 2406 { 2407 var currentState = document.getElementById('simpleMatContainerDiv').getAttribute('data-mat2-widths-visible'); 2408 newState = 1 - currentState; 2409 } 2410 2411 if(newState == 1) 2412 { 2413 toggleAvailableMats2(0); 2414 } 2415 2416 document.getElementById('simpleMatContainerDiv').setAttribute('data-mat2-widths-visible', newState); 2417 } 2418 2419 function toggleAvailablePapers(newState) 2420 { 2421 if(typeof newState === 'undefined') 2422 { 2423 var currentState = document.getElementById('simplePaperContainerDiv').getAttribute('data-papers-visible'); 2424 newState = 1 - currentState; 2425 } 2426 2427 document.getElementById('simplePaperContainerDiv').setAttribute('data-papers-visible', newState); 2428 } 2429 2430 function toggleAvailableCanvasWraps(newState) 2431 { 2432 if(typeof newState === 'undefined') 2433 { 2434 var currentState = document.getElementById('simpleCanvasWrapContainerDiv').getAttribute('data-canvas-wraps-visible'); 2435 newState = 1 - currentState; 2436 } 2437 2438 document.getElementById('simpleCanvasWrapContainerDiv').setAttribute('data-canvas-wraps-visible', newState); 2439 } 2440 2441 function toggleAvailableFinishes(newState) 2442 { 2443 if(typeof newState === 'undefined') 2444 { 2445 var currentState = document.getElementById('simpleFinishContainerDiv').getAttribute('data-finishes-visible'); 2446 newState = 1 - currentState; 2447 } 2448 2449 document.getElementById('simpleFinishContainerDiv').setAttribute('data-finishes-visible', newState); 2450 } 2451 2452 document.addEventListener("DOMContentLoaded", function(){ 2453 2454 if(false) 2455 { 2456 var artworkOptionsMenuContainer = document.getElementById('artworkTabContainerDiv');
2457 var artworkOptionsFocusTrap = focusTrap(artworkOptionsMenuContainer,{clickOutsideDeactivates: true,}); 2458 var artworkOptionsTabLinks = document.querySelectorAll('.menuTabLink'); 2459 2460 for(var i = 0; i < artworkOptionsTabLinks.length; i ++) 2461 { 2462 artworkOptionsTabLinks[i].addEventListener('keydown', function(event){ 2463 2464 if(event.keyCode == 13) 2465 { 2466 artworkOptionsFocusTrap.activate(); 2467 } 2468 }); 2469 } 2470 } 2471 }); 2472 2473 function positionPriceDiv() 2474 { 2475 var widthClient = parseInt(document.documentElement.clientWidth); 2476 var heightClient = parseInt(document.documentElement.clientHeight); 2477 2478 if(document.getElementById('pricediv') && document.getElementById('artistHeadshotAndNameContainerDiv')) 2479 { 2480 var sourcePosY = 0; 2481 var sourceObject = document.getElementById('artistHeadshotAndNameContainerDiv'); 2482 2483 if (sourceObject.offsetParent) 2484 { 2485 sourcePosY = sourceObject.offsetTop; 2486 2487 while (sourceObject = sourceObject.offsetParent) 2488 { 2489 sourcePosY += sourceObject.offsetTop; 2490 } 2491 } 2492 2493 var divHeight = getComputedStyle(document.getElementById('artistHeadshotAndNameContainerDiv')).getPropertyValue('height'); 2494 divHeight = divHeight.replace('px',''); 2495 2496 sourcePosY += parseInt(divHeight); 2497 2498 var scrollY = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 2499 2500 if(scrollY == 0) 2501 { 2502 scrollY = document.body.scrollTop; 2503 } 2504 2505 //console.log(sourcePosY + ' - ' + scrollY + ' - ' + heightClient); 2506 2507 if(heightClient + scrollY > (sourcePosY + 130)) 2508 { 2509 document.getElementById('pricediv').className = 'normal'; 2510 } 2511 else 2512 { 2513 document.getElementById('pricediv').className = 'fixed'; 2514 } 2515 2516 } 2517 } 2518 2519 function positionPriceDiv2() 2520 { 2521 var widthClient = parseInt(document.documentElement.clientWidth); 2522 var heightClient = parseInt(document.documentElement.clientHeight); 2523 2524 if(document.getElementById('pricediv') && document.getElementById('menudiv')) 2525 { 2526 var sourcePosY = 0; 2527 var sourceObject = document.getElementById('menudiv'); 2528 2529 if (sourceObject.offsetParent) 2530 { 2531 sourcePosY = sourceObject.offsetTop; 2532 2533 while (sourceObject = sourceObject.offsetParent) 2534 { 2535 sourcePosY += sourceObject.offsetTop; 2536 } 2537 } 2538 2539 var divHeight = getComputedStyle(document.getElementById('menudiv')).getPropertyValue('height'); 2540 divHeight = divHeight.replace('px',''); 2541 2542 sourcePosY += parseInt(divHeight); 2543 2544 var scrollY = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 2545 2546 if(scrollY == 0) 2547 { 2548 scrollY = document.body.scrollTop; 2549 } 2550 2551 //console.log(sourcePosY + ' - ' + scrollY + ' - ' + heightClient); 2552 2553 if(heightClient + scrollY > (sourcePosY + 0)) 2554 { 2555 document.getElementById('pricediv').className = 'normal'; 2556 } 2557 else 2558 { 2559 document.getElementById('pricediv').className = 'fixed'; 2560 } 2561 2562 } 2563 } 2564 2565 function hidePriceDiv() 2566 { 2567 var widthClient = parseInt(document.documentElement.clientWidth); 2568 var heightClient = parseInt(document.documentElement.clientHeight); 2569 2570 if(document.getElementById('pricediv') && document.getElementById('rightDiv')) 2571 { 2572 var sourcePosY = 0; 2573 var sourceObject = document.getElementById('rightDiv'); 2574 2575 if (sourceObject.offsetParent) 2576 { 2577 sourcePosY = sourceObject.offsetTop; 2578 2579 while (sourceObject = sourceObject.offsetParent) 2580 { 2581 sourcePosY += sourceObject.offsetTop; 2582 } 2583 } 2584 2585 var divHeight = getComputedStyle(document.getElementById('rightDiv')).getPropertyValue('height'); 2586 divHeight = divHeight.replace('px',''); 2587 2588 sourcePosY += parseInt(divHeight); 2589 2590 var scrollY = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 2591 2592 if(scrollY == 0) 2593 { 2594 scrollY = document.body.scrollTop; 2595 } 2596
2597 //console.log(sourcePosY + ' - ' + scrollY + ' - ' + heightClient); 2598 2599 if(heightClient + scrollY > (sourcePosY + 130)) 2600 { 2601 document.getElementById('pricediv').className = 'hidden'; 2602 } 2603 else 2604 { 2605 document.getElementById('pricediv').className = 'fixed'; 2606 } 2607 2608 } 2609 } 2610 2611 window.addEventListener('click', positionPriceDiv2); 2612 window.addEventListener('scroll', positionPriceDiv2);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.