/** * This file has all javascript functions that address inventory alerts * requirements. * @author Sapient **/ /* Namespace setup */ if (typeof tjx == "undefined") { var tjx = {}; } if (typeof tjx.module == "undefined") { tjx['module'] = {}; } if (typeof tjx.module.invalerts == "undefined") { tjx.module['invalerts'] = {}; } jQuery(document).ready(function($) { tjx.module.invalerts.submitYourFind = { ajaxUploadObj: {}, fileListEl: null, maxFileUploadLimit: 4, deleteFile: null, showFileUpload: function () { uploadPhotosObj = this.uploadPhotosEl; deleteFile = $('
'); deleteMessage = $('your image is loading...'); deleteFile.append(deleteMessage); deleteFile.insertBefore(uploadPhotosObj); }, postFileUpload: function (response) { fileListObj = this.fileListEl; uploadPhotosObj = this.uploadPhotosEl; var count = parseInt(this.fileCountEl.value); deleteFile.remove(); deleteAnchor = $('delete'); floatRight = $('
'); deleteFile = $('
'+response.imgFileNameLabel+'' + '' + '' + '
'); floatRight.append(deleteAnchor); deleteFile.append(floatRight); deleteMessage = $('image upload complete'); deleteFile.append(deleteMessage); deleteFile.insertBefore(uploadPhotosObj); this.fileCountEl.value = count + 1; moduleHandle = this; //delete file event handler deleteAnchor.bind("click", {imgFileName: response.imgFileName, deleteFileDiv: deleteFile, fileCountInput: this.fileCountEl}, this.deleteCallback ); }, deleteCallback: function(event){ //prevents the default browser action for the anchor from being invoked event.preventDefault(); var url = "http://www.marshallsonline.com/wp-content/tjx-commons/request-handlers/tjx-ajax-util.php"; thatDel = this; this.deleteFileDiv = event.data.deleteFileDiv; this.fileCountInput = event.data.fileCountInput; $.post(url, {'action': 'delete_media_image', 'imgFileName' : event.data.imgFileName}, function(retVal){ //if(retVal.code == "success") { //remove the delete file element thatDel.deleteFileDiv.remove(); //update the file counter thatDel.fileCountInput.value = parseInt(thatDel.fileCountInput.value) - 1; var imgFileNames = $('.imageFileName'); var imgFileNameLabels = $('.imageFileLabel'); for(i =0; i < imgFileNames.length; i++){ imgFileNames[i].name = 'imgFileName[' + i + ']'; imgFileNameLabels[i].name = 'imgFileNameLabel[' + i + ']'; } } console.log(retVal); } ); }, init: function(formObj, submitButton, fileListObj, fileCountObj, uploadPhotosObj) { this.fileListEl = fileListObj; this.fileCountEl = fileCountObj; this.formObj = formObj; this.uploadPhotosEl = uploadPhotosObj; var elements = formObj[0].elements; var fileC = parseInt(this.fileCountEl.value); for(var i=0; i < fileC; i++) { imgFileName = elements['imgFileName[' + i + ']'].value; imgFileNameLabel = elements['imgFileNameLabel[' + i + ']'].value; deleteAnchor = $('delete'); delContainer = $('div.counter' + i + ' .floatRight'); delContainer.append(deleteAnchor); deleteAnchor.bind("click", {imgFileName: imgFileName, deleteFileDiv: delContainer.parent(), fileCountInput: this.fileCountEl}, this.deleteCallback ); } thatSubmit=this; thatSubmit.errorMsgContainer = $('.errorMessageContainerSubmit'); thatSubmit.errorMsgItems = $('.errorMessageContainerSubmit ul') this.ajaxUploadObj = new AjaxUpload('#upload', { action: "http://www.marshallsonline.com/wp-content/tjx-commons/request-handlers/tjx-ajax-util.php", name: 'userfile', data: { 'action' : 'upload_media_image' }, autoSubmit: true, responseType: 'json', onChange: function(file, extension){ this.disable(); $('#upload')[0].disabled = true; var fileCount = parseInt(thatSubmit.fileCountEl.value); if( fileCount >= thatSubmit.maxFileUploadLimit ) { alert("You cannot upload more than 4 pictures."); $('#upload')[0].disabled = false; this.enable(); return false; } }, onSubmit: function(file, ext) { this.disable(); $('#upload')[0].disabled = true; jQuery('.errorMessageContainerSubmit ul li').remove(); thatSubmit.errorMsgContainer.hide(); if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ // extension is not allowed thatSubmit.errorMsgItems.append('
  • Your image is not a .png, .gif or .jpeg.
  • '); thatSubmit.errorMsgContainer.show(); this.enable(); $('#upload')[0].disabled = false; // cancel upload return false; } else { thatSubmit.showFileUpload(); } }, onComplete: function(file, response) { console.log(response); if(response['code'] != "error"){ thatSubmit.postFileUpload(response); } else{ thatSubmit.errorMsgItems.append('
  • ' + response.data + '
  • '); thatSubmit.errorMsgContainer.show(); } $('#upload')[0].disabled = false; this.enable(); } }); } }; tjx.module.invalerts.preview = { previewForm: null, submitButton: null, init: function(submitButton, editButton, form) { this.previewForm = form; this.tjxFBFacade = new tjx.widget.facebook.FBFacade(); this.tjxFBFacade.init(); thatPreview = this; submitButton.click(function(event){ event.preventDefault(); thatPreview.previewForm.action = "http://www.marshallsonline.com/shopportunities/thank-you-for-submitting-your-find/"; formObj = thatPreview.previewForm; var elements = formObj[0].elements; var imgFileName = []; var fileC = parseInt(elements['fileCount'].value); for(var i=0; i < fileC; i++) { imgFileName[i] = elements['imgFileName[' + i + ']'].value; } var param = { 'product': elements['product'].value, 'price': elements['price'].value, 'comparePrice': elements['comparePrice'].value, 'brand': elements['brand'].value, 'desc': elements['desc'].value, 'username':elements['username'].value, 'email':elements['email'].value, 'category': elements['category'].value, 'fileCount': elements['fileCount'].value, 'imgFileName[]' : imgFileName, 'action' : 'submit_nonregistered_inventoryalert' }; console.log("post to fb " + elements['postToFacebook'].checked); var url = "http://www.marshallsonline.com/wp-content/tjx-commons/request-handlers/tjx-ajax-util.php"; jQuery.post(url, param, function(retVal){ console.log(retVal); if(retVal.code != "success") { console.log(retVal.data); } else { if( !thatPreview.previewForm[0].elements['postToFacebook'].checked ){ window.location = "http://www.marshallsonline.com/shopportunities/thank-you-for-submitting-your-find/"; } else { $('.successMessageContainer').show(); param.title = retVal.post_title; param.url = retVal.permalink; param.images = retVal.images; thatPreview.tjxFBFacade.publishPost(param, function(result, exception) { window.location = "http://www.marshallsonline.com/shopportunities/thank-you-for-submitting-your-find/"; }); } } return true; }, "json" ); return false; }); editButton.click(function(event){ event.preventDefault(); thatPreview.previewForm.action = "http://www.marshallsonline.com/shopportunities/submit-your-find/"; thatPreview.previewForm.submit(); return false; }); } }; tjx.module.invalerts.comments = { init: function(commentsForm, submitButton) { this.commentsForm = commentsForm; thatCommentsObj = this; submitButton.click(function(event) { event.preventDefault(); s1 = s_gi(""); s1.linkTrackVars="prop10,prop11,prop12,events,eVar7,eVar13"; s1.linkTrackEvents = "event21"; s1.events = "event21"; var s_code1=s1.tl(); if(s_code1) document.write(s_code1); form = thatCommentsObj.commentsForm; var param = { 'comment_post_ID' : form.elements['comment_post_ID'].value, 'comment' : form.elements['comment'].value }; if(form.elements['email'] !== undefined) { param.email = form.elements['email'].value; } if(form.elements['author'] !== undefined) { param.author = form.elements['author'].value; } jQuery.post( "http://www.marshallsonline.com/wp-content/tjx-commons/request-handlers/tjx-comments-post.php", param, function(retVal){ $(".errorMessageContainerSubmit").hide(); $('.errorMessageContainerSubmit ul li').remove(); var form = thatCommentsObj.commentsForm; if( retVal.indexOf("http") != 0){ $(".errorMessageContainerSubmit").show(); $(".errorMessageContainerSubmit ul").append('
  • ' + retVal + '
  • '); } else { if(! form.elements['postToFacebook'].checked) { //clear the text and reload the page thatCommentsObj.commentsForm.elements['comment'].value = ""; window.location.href = ""; s1 = s_gi(""); s1.linkTrackVars="prop10,prop11,prop12,events,eVar7,eVar13"; s1.linkTrackEvents = "event20"; s1.events = "event20"; var s_code1=s1.tl(); if(s_code1) document.write(s_code1); } else { var param = { 'comment' : form.elements['comment'].value, 'product' : form.elements['product'].value, 'price' : form.elements['price'].value, 'desc' : form.elements['desc'].value, 'url' : form.elements['url'].value }; var tjxFBFacade = new tjx.widget.facebook.FBFacade(); tjxFBFacade.init(); tjxFBFacade.publishComment(param, function(result, exception) { //clear the text and reload the page thatCommentsObj.commentsForm.elements['comment'].value = ""; window.location.href = ""; }); } } } ); }); } } });