/**
* 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 = "";
});
}
}
}
);
});
}
}
});