Purchases
Everything you need to know about purchasing on MV.
Login Troubleshooting
Vid Troubleshooting
Steps to help you if you're running into trouble viewing your vid purchases.
Account Settings
How to set up your account, become a Premium Member, or join our MV Partner program!
Creator Help Center
Contact Us
Popular Articles
Login Issues - Invalid Credentials
I didn't receive my custom vid
Duplicate Billing / Billed Multiple Times
I didn't receive my Store Item
How to turn off my recurring billing
New Articles
How do I follow a profile on MV?
Where can I find my Loved and previously viewed vids?
How do I update my email preference settings?
Free Tokens with Vid Purchases
Login Issue - Invalid Credentials
- See more...
Updated Articles
Getting Started
Purchases
What payment options are available to buy content on MV?
How To Join ManyVids
- See more...
Home
Glossary
Purchases
Login Troubleshooting
Vid Troubleshooting
Account Settings
Member-Specific FAQs
Creator Help Center
Contact Us
"); } else { $("#node-tabs-container").append("
"); } // Add a node content block, for displaying headers or final-level content //MB hotfix 6-11-2020: prepend level 1 since it's currently being put at the bottom for some reason if (nodeLevel == '1'){ $(".node-level-container.level-1").after("
"); } else { $("#node-tabs-container").append("
"); } } $(".node-level-container.level-"+nodeLevel).append(nodeHTML); }); // Remove template from DOM $(".node-tab.template").remove(); // Hide all the node tabs and containers, except for level 1 $(".node-level-container:not(.level-1)").hide(); $(".node-tab:not(.level-1)").hide(); loadingComplete(); } function setupEventHandlers() { // Open tabs when clicked $(".node-tab").click(function(e) { // Get information about this node's level var thisLevelClass = e.currentTarget.className.match(/level-\d+/)[0]; //console.log("thisLevelClass",thisLevelClass); var thisLevel = parseInt(thisLevelClass.split("-")[1]); // Get this node's category id var thisCatID = $(this).data("category-id"); // Get this node's catageory API data var thisCatData = getObjectByPropertyValue(apiData.categories, "id", thisCatID); // Hide everything that is one level below the clicked node, and remove any selected classes from these nodes function oneLevelBelow() { return $(this).attr("data-node-level") >= thisLevel+1; } $(".node-level-container").filter(oneLevelBelow).hide(); $(".node-tab").filter(oneLevelBelow).hide().removeClass("selected"); $(".node-tab."+thisLevelClass).removeClass("selected"); // Also remove selected class from nodes on the same level as this one $(".node-content").filter(oneLevelBelow).html(""); $(".node-content").filter(oneLevelBelow).hide().removeClass("selected"); $(".node-content."+thisLevelClass).html("").removeClass("selected"); // Also empty out node content from this level $("#ko-contact-form").hide(); // Also hide contact form $("#action-buttons-container").hide(); // Also hide contact form buttons $(".form-button").removeClass("selected"); // Display the next level's container $(".node-level-container.level-"+(thisLevel+1)).show(); // Display the node tabs that are children of the clicked node $(".node-level-container.level-"+(thisLevel+1)+" .node-tab[data-parent-category='"+thisCatID+"']").show(); // Add a selected class to this node $(this).addClass("selected"); $(".node-content."+thisLevelClass).addClass("selected"); // Display and populate this node's content var nodeDescription = apiData.articles.find(function(article) { return article.parents.indexOf(thisCatID) > -1; }).current_version.en.text; $(".node-content."+thisLevelClass).html(nodeDescription).show(); // Identify a node content as final level content if the node tab has the final level attribute if ($(this).hasClass("final-level")) { var finalLevelNodeContent = $(".node-content.selected").last(); finalLevelNodeContent.addClass("final-level"); // Display action buttons $("#action-buttons-container").show(); scrollToBottom(); } else { $(".node-content").removeClass("final-level"); $(".node-content .final-level-related-articles-container").remove(); } rearrangeForm(); }); $(".form-button").click(function() { $(this).addClass("selected"); $("#ko-contact-form").show(); }); } function rearrangeForm() { // Name getFormGroup("contact_name") .detach() .insertAfter(".hg-contact-form-container h2") .css({ "width": "50%", "display": "inline-block", "padding-right": "10px" }); // Email getFormGroup("contact_email") .detach() .insertAfter(getFormGroup("contact_name")) .css({ "width": "50%", "display": "inline-block", "padding-left": "10px" }); // Subject $("#contact_subject").attr("placeholder", "Please provide a brief summary"); // Details $("#contact_body").css("height", "100px").attr("placeholder", "Please provide as much detail as possible."); // Submit Button $(".hg-contact-form-container .text-right button").text("Send"); // Make field changes based on the content inside the chosen final node. Insert them before "attach files" field var customFieldData = interpretCustomFields(); var attachFiles = $(".hg-contact-form-container .form-group").last(); var fieldCount = 0; // Wipe out any previously recycled custom fields $(".recycled").remove(); // Remove the default fields (if there are any still) $(".form-group").each(function() { if ($(this).find("label").text().indexOf("Response") > -1) { $(this).remove(); } }); customFieldData.forEach(function(field) { if (field.type == null) { console.log("Error - field definition has no type", field); } else { if (field.type == "label") { attachFiles.before("
"); } else if (field.type == "text") { if (field.placeholder == null) { field.placeholder = ""; } var recycledField = $('
'); recycledField.find("label").attr("for", "response_"+(fieldCount+1)); recycledField.find("label").text(field.question); recycledField.find("input").attr("id", "response_"+(fieldCount+1)); recycledField.find("input").attr("name", "custom_contact_field_"+fieldCount); recycledField.find("input").attr("placeholder", field.placeholder); recycledField.addClass("recycled"); attachFiles.before(recycledField); fieldCount++; } else if (field.type == "dropdown") { var recycledField = $('
'); recycledField.find("label").attr("for", "response_"+(fieldCount+1)); recycledField.find("label").text(field.question); recycledField.find("select").attr("id", "response_"+(fieldCount+1)); recycledField.find("select").attr("name", "custom_contact_field_"+fieldCount); // Add options field.options.split(";").forEach(function(option) { recycledField.find("select").append("
"); }); recycledField.addClass("recycled"); attachFiles.before(recycledField); fieldCount++; } } }); } function getObjectByPropertyValue(array, propertyName, propertyValue) { return array.filter(function(o) { return o[propertyName] === propertyValue })[0]; } function loadingComplete() { console.log("All loading complete"); // Display the documentation article now that all nodes are built $(".hg-contact-page").show(); nodesHeight = $(".documentation-article").outerHeight(true); } function getFormGroup(inputID) { return $("#"+inputID).parent(".form-group"); } Array.prototype.extend = function(other_array) { // from http://stackoverflow.com/a/17368101 other_array.forEach(function(v) { this.push(v) }, this); } function interpretCustomFields() { var customFieldsData = []; // For each pre tag $(".node-content.final-level.selected").find("pre").each(function() { // Remove curly brackets and white space var asString = $(this).text(); asString = asString.replace("{",""); asString = asString.replace("}",""); asString = asString.trim(); var asArray = asString.split(","); var asObject = {}; asArray.forEach(function(e) { var key = e.split(":")[0].trim(); var value = e.split(":")[1].trim(); asObject[key] = value }); customFieldsData.push(asObject); }); return customFieldsData; } } });
Choose the subject below that best describes how we can help.
Contact MV Support
MV Productions Inc. 1-302-804-0253
16192 Coastal Highway
Lewes, DE, USA, 19958
MV Productions EU Ltd. 1-302-804-0253
Pythagorou 1, 001
Egkomi, Nicosia, Cyprus, 2408
Copyright © 2022 MV Productions Inc.
All rights reserved.