function fcGetOrientation(file, callback) {
var reader = new FileReader();
reader.onload = function(e) {
var view = new DataView(e.target.result);
if (view.getUint16(0, false) != 0xFFD8) return callback(-2);
var length = view.byteLength, offset = 2;
while (offset < length) {
var marker = view.getUint16(offset, false);
offset += 2;
if (marker == 0xFFE1) {
if (view.getUint32(offset += 2, false) != 0x45786966) return callback(-1);
var little = view.getUint16(offset += 6, false) == 0x4949;
offset += view.getUint32(offset + 4, little);
var tags = view.getUint16(offset, little);
offset += 2;
for (var i = 0; i < tags; i++)
if (view.getUint16(offset + (i * 12), little) == 0x0112)
return callback(view.getUint16(offset + (i * 12) + 8, little));
}
else if ((marker & 0xFF00) != 0xFF00) break;
else offset += view.getUint16(offset, false);
}
return callback(-1);
};
reader.readAsArrayBuffer(file.slice(0, 64 * 1024));
}
function fcResetElement(element) {
element.find(".uploaded-image").css("transform", "rotate(0deg)").removeClass("compensated");
element.find("input[type=file]").val("");
element.find(".uploaded-image").css("background-image", "none");
}
function fcValidateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function fcNotify(message) {
$("#fcNotifier").fadeOut(250, function () {
$("#fcNotifier").html("
"+message+"
").show();
$("#fcNotifier p").css("margin-top", (($("#fcNotifier").height()/2)-($("#fcNotifier p").height()/2))+"px");
$("#fcNotifier").hide().fadeIn(250).delay(1500).fadeOut(250);
});
}
function fcSubmitImage() {
$("#fcLoader").fadeIn(250);
var formData = new FormData($("#fcUploadForm")[0]);
$.ajax({
url : "https://www.feedcowboy.com/asiakkaat/slicefi/update/fc.fiddle.php",
type : "POST",
data : formData,
processData: false,
contentType: false,
error : function (request, status, error) {$("#fcLoader").fadeOut(250); fcNotify("Virhe tiedon käsittelyssä");},
success : function(data) {
$("#fcLoader").fadeOut(250);
if (data.status == "ok") {
$("#fcUploadForm").hide();
$("#fcConfirmation").show();
Notice: Undefined index: fcLanguage in /var/www/webroot/ROOT/asiakkaat/slicefi/update/js/e.slice.js.php on line 106
fcNotify("Image was sent successfully.");
} else {
fcNotify(data.message ? data.message : "Virhe tiedon käsittelyssä");
}
}
});
}
function eCheckForm() {
var error = false;
$("#fcUploadForm input[type=text], #fcUploadForm input[type=email]").each(function () {
if ($(this).val() == "" && $(this).hasClass("mandatory")) {error = true;}
});
$(".checker").each(function () {
if (!$(this).hasClass("checked")) {error = true;}
});
if (!error && $("#fcImageUpload input[type=file]").val() != "") {
$(".form-additionals").show();
} else {
$(".form-additionals").hide();
}
}
$(document).ready(function() {
$("#fcUploadForm input[type=text], #fcUploadForm input[type=email]").on("keyup", function () {
eCheckForm();
});
$(".checker").on("click", function () {
$(this).toggleClass("checked");
eCheckForm();
});
$("#fcLanguageForm select").change(function () {
$("#fcLanguageForm").submit();
});
$("#fcContactTypeForm select").change(function () {
$("#fcContactTypeForm").submit();
});
$(".contact-type-selector").click(function () {
if ($(this).attr("contact-type") != null) {
$("#fcContactTypeForm #fcContactType").val($(this).attr("contact-type"));
$("#fcContactTypeForm").submit();
}
});
$("#fcImageUpload input[type=file]").change(function() {
var element = $(this).parent();
var file = this.files[0];
if (file.size < 10000000) {
if (["image/jpeg", "image/png"].includes(file.type)) {
if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) {
fcGetOrientation(file, function(orientation) {
if (orientation == 3) {element.find(".uploaded-image").css("transform", "rotate(180deg)").removeClass("compensated");}
else if (orientation == 6) {element.find(".uploaded-image").css("transform", "rotate(90deg)").addClass("compensated");}
else if (orientation == 8) {element.find(".uploaded-image").css("transform", "rotate(270deg)").addClass("compensated");}
else {element.find(".uploaded-image").css("transform", "rotate(0deg)").removeClass("compensated");}
});
}
function fcImageIsLoaded(file) {
$("#fcLoader").fadeOut(250);
element.find(".uploaded-image").css("background-image", "url('"+file.target.result+"')");
var image = new Image();
image.src = file.target.result;
image.onload = function() {
eCheckForm();
};
}
$("#fcLoader").fadeIn(250);
var reader = new FileReader();
reader.onload = fcImageIsLoaded;
reader.readAsDataURL(file);
} else {
fcNotify("File type is not valid.");
fcResetElement(element);
$(".form-additionals").hide();
}
} else {
fcNotify("File size exceeds 10 MB.");
fcResetElement(element);
$(".form-additionals").hide();
}
});
});