/***** Created by Terje Rudi, HVL, 2017 *****/ function domReady () { // JQUERY ready-alternative - det blir ingen feil dersom denne funksjonen gjentas document.body.className += " javascript"; //... } function isNotVal(val){ // brukes til sjekking om verdi har innhold og/eller er gyldig return (val==null || val===false); } // Mozilla, Opera, Webkit if ( document.addEventListener ) { document.addEventListener( "DOMContentLoaded", function(){ document.removeEventListener( "DOMContentLoaded", arguments.callee, false); domReady(); // <- kan brukes ute i html-doc }, false ); // If IE event model is used (Explorer 8...) } else if ( document.attachEvent ) { // ensure firing before onload document.attachEvent("onreadystatechange", function(){ if ( document.readyState === "complete" ) { document.detachEvent( "onreadystatechange", arguments.callee ); domReady(); // <- kan brukes ute i html-doc } }); } // AJAX var AJAXerrors = { "0":"Unknown Error", "100":"Continue", "101":"Switching Protocol", "103":"Processing (WebDAV)", "200":"OK", "201":"Created", "202":"Accepted", "203":"Non-Authoritative Information", "204":"No Content", "205":"Reset Content", "206":"Partial Content", "207":"Multi-Status (WebDAV)", "208":"Multi-Status (WebDAV)", "226":"IM Used (HTTP Delta encoding)", "300":"Multiple Choice", "301":"Moved Permanently", "302":"Found", "303":"See Other", "304":"Not Modified", "305":"Use Proxy ", "306":"unused", "307":"Temporary Redirect", "308":"Permanent Redirect", "400":"Bad Request", "401":"Unauthorized", "402":"Payment Required", "403":"Forbidden", "404":"Not Found", "405":"Method Not Allowed", "406":"Not Acceptable", "407":"Proxy Authentication Required", "408":"Request Timeout", "409":"Conflict", "410":"Gone", "411":"Length Required", "412":"Precondition Failed", "413":"Payload Too Large", "414":"URI Too Long", "415":"Unsupported Media Type", "416":"Requested Range Not Satisfiable", "417":"Expectation Failed", "418":"I'm a teapot", "421":"Misdirected Request", "422":"Unprocessable Entity (WebDAV)", "423":"Locked (WebDAV)", "424":"Failed Dependency (WebDAV)", "426":"Upgrade Required", "428":"Precondition Required", "429":"Too Many Requests", "431":"Request Header Fields Too Large", "451":"Unavailable For Legal Reasons", "500":"Internal Server Error", "501":"Not Implemented", "502":"Bad Gateway", "503":"Service Unavailable", "504":"Gateway Timeout", "505":"HTTP Version Not Supported", "506":"Variant Also Negotiates", "507":"Insufficient Storage", "508":"Loop Detected (WebDAV)", "510":"Not Extended", "511":"Network Authentication Required" } function makeRequest(url,callback,ref,callbackExstraArgsObj) { // AJAX-kall if (typeof callback != "undefined"){ var req = new XMLHttpRequest(); if (!req) { alert('Gir opp :( XMLHTTP instance not created -1'); return false; } req.onreadystatechange = function(){ try { if (req.readyState === XMLHttpRequest.DONE) { if (req.status !== 200) { try { console.log('En feil oppstod: ' + AJAXerrors[req.status] + ' (' + req.status + ')'); }catch (e){ console.log('Det var et problem med å hente data. Feilkode: ' + req.status); } }else{ try{ if (callbackExstraArgsObj && typeof callbackExstraArgsObj == "object"){ callback(req.responseText,callbackExstraArgsObj); }else{ callback(req.responseText); } }catch(e){ try { console.log('En feil oppstod [-1]: ' + e + ' (Melding: ' + AJAXerrors[req.status] + ' (sjekk callback))'); }catch (f){ console.log('Kunne ikke aktivere callback: ' + e + ' (Status: ' + req.status + ')'); } } } } }catch( e ) { console.log('Opplevde et unntak: ' + e.description); } }; req.open('GET', url); req.send(); }else{ console.log("Callback undefinert i 'makeRequest', referanse: " + ref); } } function postJson(url,json,callback,ref,callbackExstraArgsObj) { // Sendes som btoa (base64) // AJAX-kall if (typeof callback != "undefined"){ var req = new XMLHttpRequest(); if (!req) { alert('Gir opp :( XMLHTTP instance not created -2'); return false; } req.onreadystatechange = function(){ try { if (req.readyState === XMLHttpRequest.DONE) { if (req.status !== 200) { try { console.log('En feil oppstod: ' + AJAXerrors[req.status]); }catch (e){ console.log('Det var et problem med å hente data. Feilkode: ' + req.status); } }else{ try{ if (callbackExstraArgsObj && typeof callbackExstraArgsObj == "object"){ callback(req.responseText,callbackExstraArgsObj); }else{ callback(req.responseText); } }catch(e){ try { console.log('En feil oppstod [-2]: ' + e + ' (Melding: ' + AJAXerrors[req.status] + ', Callback = ' + JSON.stringify(callback) + ')'); }catch (f){ console.log('Kunne ikke aktivere callback: ' + e + ' (Status: ' + req.status + ')'); } } } } }catch( e ) { console.log('Opplevde et unntak: ' + e.description); } }; req.open("POST", url); var params = "btoajson=" + btoa(JSON.stringify(json)); //Send the proper header information along with the request req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //req.setRequestHeader("Content-length", params.length); //req.setRequestHeader("Connection", "close"); req.send(params); }else{ console.log("Callback undefinert i 'makeJSONpostRequest', referanse: " + ref); } } function addCSSRule(sheet, selector, rules, index) { return true; /* FASET UT try{ if("insertRule" in sheet) { sheet.insertRule(selector + "{" + rules + "}", index); }else if("addRule" in sheet) { sheet.addRule(selector, rules, index); } }catch(e){ console.log("FEIL ved innsetting av i stilark: " + e + ". Sheet = " + sheet + " Selector = " + selector + " Index = " + index); } */ } // SlideUp SlideDown SlideToggle /* Element to slide gets the following CSS: max-height: 0;opacity: 0;overflow: hidden;transition: max-height 0.4s ease 0s; */ function slideElemDown(elem) { elem.style.maxHeight = '1000px'; // We're using a timer to set opacity = 0 because setting max-height = 0 doesn't (completely) hide the element. elem.style.opacity = '1'; } function slideElemUp(elem) { elem.style.maxHeight = '0'; once( 1, function () { elem.style.opacity = '0'; }); } function slideElemToggle(elem){ if (elem.style.opacity == 1){ slideElemUp(elem); }else{ slideElemDown(elem); } } function once (seconds, callback) { var counter = 0; var time = window.setInterval( function () { counter++; if ( counter >= seconds ) { callback(); window.clearInterval( time ); } }, 400 ); } // Sliding ferdig /* UTFASET // direkte manipulering av stilark for HVL-Bouvet-stil try{ // Fjerne dobbel ned-pil i Explorer i rullegardinmeny: addCSSRule(document.styleSheets[0],'select::-ms-expand','display: none',0); // Sette inn spinner addCSSRule(document.styleSheets[0],'@-webkit-keyframes rwSpinnerRotate','{-webkit-transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);}',document.styleSheets[0].cssRules.length); addCSSRule(document.styleSheets[0],'@-moz-keyframes rwSpinnerRotate','{-moz-transform:rotate(0deg);}to{-moz-transform:rotate(360deg);}',document.styleSheets[0].cssRules.length); addCSSRule(document.styleSheets[0],'@-ms-keyframes rwSpinnerRotate','{-ms-transform:rotate(0deg);}to{-ms-transform:rotate(360deg);}',document.styleSheets[0].cssRules.length); addCSSRule(document.styleSheets[0],'@keyframes rwSpinnerRotate','{transform:rotate(0deg);}to{transform:rotate(360deg);}',document.styleSheets[0].cssRules.length); addCSSRule(document.styleSheets[0],'.rwSpin','position:relative;top:0.3rem;left:0.3rem;padding: 0.2rem;color: #fff;width: 0.6rem;height: 0.6rem;background: #acb7b2;border-radius: 0.6rem;-webkit-animation-name: rwSpinnerRotate;-webkit-animation-duration: 0.8s;-webkit-animation-iteration-count: infinite;-webkit-animation-timing-function: linear;-moz-animation-name: rwSpinnerRotate;-moz-animation-duration: 0.8s;-moz-animation-iteration-count: infinite;-moz-animation-timing-function: linear;-ms-animation-name: rwSpinnerRotate;-ms-animation-duration: 0.8s;-ms-animation-iteration-count: infinite;-ms-animation-timing-function: linear;'); }catch(e){ console.log("addRule or insertRule not supported"); } */ /*** FASTE HJELPERE ***/ function swapLang(){ // Bytter ut all elementers tekst med verdi fra 'data-english' - oversetter rett ot slett, // men bare derson verdi i data-english eksisterer: // Eks: try{ var otherLangVals = document.querySelectorAll("[data-english]"); for (key in otherLangVals){ try{ var otherLangString = otherLangVals[key].getAttribute("data-english"); if (otherLangString != "undefined"){ var originalString = otherLangVals[key].innerHTML; otherLangVals[key].innerHTML = otherLangString; otherLangVals[key].setAttribute("data-english",originalString); } }catch(f){ console.log(f); } } }catch(e){ alert("Sorry, translation unavailable :-("); } } /*** FASTE HJELPERE SLUTT ***/ var defaultWidthCss = "width: 100%;max-width: 30rem;"; function errToHtml(errorString){ var elm = crTextBlock("pre","Feil: " + errorString); elm.style.background = "#F9DE45"; elm.style.padding = "1rem"; elm.style.borderRadius = "0.6rem"; return elm; } function crInputWithLabel(keyVals){ if (typeof keyVals != "object"){ return errToHtml("Argument er ikke i objekt-format."); } if (keyVals["tag"] != undefined){ var elm = document.createElement(keyVals["tag"]); if (!isNotVal(keyVals["id"])){ elm.id = keyVals["id"]; } if (!isNotVal(keyVals["cls"])){ elm.className = keyVals["cls"]; } if (!isNotVal(keyVals["styles"])){ elm.style.cssText = keyVals["styles"]; } if (!isNotVal(keyVals["label"])){ var lbl = crTextBlock("label",keyVals["label"] + ":",keyVals["required"],"Form__Element__Caption","color: #004357;font-family: Arial,sans-serif;padding: 0.1rem 0;"); // <- Bouvetklasse Form__Element__Caption lbl.setAttribute("for",keyVals["name"]); elm.appendChild(lbl); } if (!isNotVal(keyVals["type"])){ elm.appendChild(crInput(keyVals["type"],keyVals["name"],keyVals["val"],keyVals["required"],false,"padding: 0.4rem 0.2rem;",keyVals["label"])); }else{ return errToHtml("Felttype er udefinert."); } }else{ return errToHtml("'tag' er udefinert."); } return elm; } function crArea(t,id,cls,styles){ var elm = document.createElement(t); if (!isNotVal(id)){ elm.id = id; } if (!isNotVal(cls)){ elm.className = cls; } if (!isNotVal(styles)){ elm.style.cssText = styles; } return elm; } function crTextBlock(t,txt,obl,cls,styles){ var elm = document.createElement(t); if (!isNotVal(cls)){ elm.className = cls; } if (!isNotVal(styles)){ elm.style.cssText = styles; } elmTxt = document.createTextNode(txt + (!isNotVal(obl) && obl == true ? "*" : "" )); elm.appendChild(elmTxt); return elm; } function crInput(t,id,val,obl,cls,styles,dataLabel){ try{ if (t == "hidden" || t == "text" || t == "email" || t == "number"){ var elm = document.createElement("input"); elm.type = t; }else if (t == "textarea"){ var elm = document.createElement("textarea"); elm.rows = 8; }else if (t == "submit"){ var elm = document.createElement("input"); elm.type = "submit"; }else if (t == "radio" || t == "checkbox"){ return errToHtml("Bruk heller egen funksjon tilpasset for avkrysningknapper."); }else{ var elm = document.createElement("input"); elm.type = t; } elm.name = id; elm.id = id; if (!isNotVal(dataLabel)){ elm.dataset.label = dataLabel; } if (!isNotVal(val)){ elm.value = val; } if (!isNotVal(cls)){ elm.className = cls; } if (!isNotVal(styles)){ if (t == "text" || t == "email" || t == "textarea"){ elm.style.cssText = defaultWidthCss + styles; }else{ elm.style.cssText = styles; } }else{ if (t == "text" || t == "email" || t == "textarea"){ elm.style.cssText = defaultWidthCss; } } if (!isNotVal(obl) && obl == true){ elm.required = true; } return elm; }catch(e){ console.log("FEIL oppstod: " + e); return errToHtml("JavaScript-feil for ID '" + id + "' (type: " + t + ")"); } } function crRadio(id,lblString,nameValObj,obl,cls,styles){ try{ var elm = crArea("div",id + "Area",false,defaultWidthCss + "display: flex;flex-wrap: wrap;justify-content: flex-start;"); if(!isNotVal(lblString)){ var lbl = crTextBlock("label",lblString + "*:",false,"Form__Element__Caption","color: #004357;font-family: Arial,sans-serif;font-weight: bold;margin-right: 0.6rem;"); // <- Bouvetklasse Form__Element__Caption lbl.setAttribute("for",id); elm.appendChild(lbl); } if (typeof nameValObj == "object"){ var cnt = 0; for (var key in nameValObj) { var radioFrame = crArea("div",false,"button filter-button filter-button--disable-one ng-binding ng-scope"); //,"display: flex;flex-wrap: nowrap;justify-content: space-around;align-items: baseline;padding: 0 0.4rem;border-radius: 0.3rem;border: solid 1px #96de99;margin: 0 0.6rem 0.6rem 0;") var radio = document.createElement("input"); radio.type = "radio"; radio.name = id; radio.value = nameValObj[key]; if (cnt < 1){ radio.setAttribute('checked', 'checked'); } radio.dataset.label = lblString; radioFrame.appendChild(crTextBlock("span",key,false,"Form__Element__Caption","color: #008a8f;font-family: Arial,sans-serif;padding: 0 0.2rem !important;margin-right: 1rem;")); // <- Bouvetklasse Form__Element__Caption); radioFrame.appendChild(radio); elm.appendChild(radioFrame); cnt++; } } return elm; }catch(e){ console.log("FEIL oppstod: " + e); return errToHtml("JavaScript-feil for ID '" + id + "' (radio)"); } } function crSelect(id,nameValObj,cls,styles,dataLabel){ var elm = document.createElement("select"); if (!isNotVal(id)){ elm.id = id; } if (!isNotVal(dataLabel)){ elm.dataset.label = dataLabel; } if (!isNotVal(cls)){ elm.className = cls; } if (!isNotVal(styles)){ elm.style.cssText = defaultWidthCss + styles; }else{ elm.style.cssText = defaultWidthCss; } if (typeof nameValObj == "object"){ for (var key in nameValObj) { // skip loop if the property is from prototype if (!nameValObj.hasOwnProperty(key)) continue; var opt = document.createElement('option'); opt.value = nameValObj[key]; opt.innerHTML = key; elm.appendChild(opt); } }else{ return crTextBlock("pre","FEIL: Verdiene sendt til element '" + id + "' er ikke i objekt-format, men i " + typeof nameValObj + "-format"); } return elm; } try{ if (typeof crInput !== "function") { alert("FEIL: Manglende javascript [-1]"); } }catch(e){ alert("FEIL: Manglende javascript [-2] " + e); } function checkFormValues(f){ var json = {}; var elem = f.elements; for(var i = 0; i < elem.length; i++){ console.log(i + ": " + elem[i].id); if ((elem[i].required != "undefined") && elem[i].value.length < 1){ alert("Eit felt er ikkje blitt fylt ut."); return false; }else if (elem[i].id == "contactFormTargetUnit"){ json["contacttarget"] = elem[i].value; } if (elem[i].id == "contactFormKey" && elem[i].value.length > 0){ json["key"] = elem[i].value; } if (elem[i].dataset.label != "undefined"){ // Levere label med i JSON-data, samme som feltnavn, men med labelPrefix-foran var elemId = "Udefinert"; if (elem[i].id != "undefined"){ elemId = elem[i].id; }else if (elem[i].name!= "undefined"){ elemId = elem[i].name; } json["label_" + elemId] = escape(elem[i].dataset.label); } // Legge verdi inn i JSON /*if (elem[i].type == "radio"){ if (elem[i].checked){ j[elem[i].name] = escape(elem[i].value); // Kan ikke bruke unikt Id her } }else{*/ json[elem[i].id] = escape(elem[i].value); /*}*/ } console.log("https://v.hvl.no/js/vanilla/kontakt/biblioteket.php?json=" + JSON.stringify(json)); var req = postJson("https://v.hvl.no/js/vanilla/kontakt/biblioteket.php",json,contactFormResponse,"Kontaktskjema"); try { $("#contactFormSend").slideToggle(); }catch(e){ document.getElementById("contactFormSend").outerHTML = "

Meldinga blir no send...

"; } return json; } function contactFormResponse(d){ result = JSON.parse(d); if (!result["Error"]){ // Ingen feil // Sjekk om html er intakt, dersom ikke, avslutt med en

var receivedHtml = result["Data"]["html"]; var tooLongNote = "…

NB! Visninga av det du sendte måtte bli forkorta her.

"; try { if (!receivedHtml.endsWith("

")){ receivedHtml += tooLongNote; } }catch(e){ console.log("Advarsel: Test av for lange medlinger med endsWith fungerer ikke."); } // Toem kontaktskjema contactForm.innerHTML = ""; // Produser HTML-respons og legg ut var thxs = "Takk for det du sendte inn, "; if (window.location.href.search(/\/en\//i) > 0){ thxs = "Thank you for the request, "; } var responseHeader = crTextBlock("h2",thxs + unescape(result["Data"]["namn"]) + ":"); contactForm.appendChild(responseHeader); var responseReceived = crArea("div","responseReceived",false,"background: #eaeff1;padding: 1.6rem 2rem;margin: 2rem 0;border-radius: 0.2rem;box-shadow: 2px 2px 5px rgba(0,0,0,0.2);"); responseReceived.innerHTML = receivedHtml; contactForm.appendChild(responseReceived); }else{ contactForm.insertBefore(errToHtml(result["Msg"]),contactFormSubmit); } } // Oppretter skjema. Avhengig av at script-fil 'htmlElements.php' er med tidligere i dette scriptet // Skjemaomradet som all HTML som na vil bli produsert skal legges inn i // document.write("
"); if (location.protocol != "https:"){ document.querySelector("#skjema").appendChild(errToHtml("Skjemaet tilgjengelig kun på web-server med SSL. Webutvikler gir mer info.")); }else{ // Opprettet et skjema-(form)-HTML-element som feltene skal ligge i var contactForm = document.createElement("form"); contactForm.id = "contactForm"; contactForm.style.maxWidth = "36rem"; contactForm.style.border = "dotted 1px #beebc0f"; contactForm.style.padding = "1rem 2rem"; contactForm.style.borderRadius = "1rem"; // registrere hva som skal skje naar man klikker 'Send inn' - en funksjon contactForm.addEventListener("submit",function(evt){ evt.preventDefault(); checkFormValues(contactForm); }); // Legge til API-key (for aa unngaa misbruk av skjema) contactFormKey = document.createElement("input"); contactFormKey.id = "contactFormKey"; contactFormKey.type = "hidden"; contactFormKey.value = "2e235477e05d977064a4520c8bac8756"; contactForm.appendChild(contactFormKey); if (window.location.href.search(/\/en\//i) < 0){ // Lage melding til brukerne om obligatoriske felt contactForm.appendChild(crTextBlock("p","Alle felt må fyllast ut.",false,"full-width-link-block__description","font-size: smaller;")); // <- full-width-link-block__description = bouvet-css // Lage identfikasjonsrullegardin var contactFormClient = { "Eg er*" : "", "Student" : "Student", "HVL-Tilsett" : "Tilsett", }; contactForm.appendChild(crSelect("contactFormClient",contactFormClient,"accordion__heading","font-size: large;","Status")); // <- accordion__heading = bouvet-css // Lage mottaker-rullegardinliste var contactFormTarget = { "Studiestad*" : "", "Bergen" : "Bergen", "Førde" : "Førde", "Haugesund" : "Haugesund", "Sogndal" : "Sogndal", "Stord" : "Stord" }; contactForm.appendChild(crSelect("contactFormTargetUnit",contactFormTarget,"accordion__heading","font-size: large;","Studiestad")); // <- accordion__heading = bouvet-css // Lage navnefelt (og etikett/tittel) var contactForm_namn = { "tag" : "div", "id" : "Navnerad", "cls" : false, "required" : true, "label" : "Namn", "type" : "text", "name" : "namn", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_namn)); // Lage e-postfelt (og etikett/tittel) var contactForm_epost = { "tag" : "div", "id" : "Epostrad", "cls" : false, "required" : true, "label" : "E-post", "type" : "email", "name" : "epost", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_epost)); // Lage telefonnummerfelt (og etikett/tittel) var contactForm_telefon = { "tag" : "div", "id" : "Telefonnummerrad", "cls" : false, "required" : true, "label" : "Telefonnummer", "type" : "text", "name" : "telefonnummer", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_telefon)); contactForm.appendChild(crTextBlock("p","Nummeret blir ikkje lagra og brukt til andre ting!",false,false,"font-style: italic;font-size: x-small;")); // Lage felt for tilknytning (og etikett/tittel) var contactForm_tilknytning = { "tag" : "div", "id" : "Tilknytningssrad", "cls" : false, "required" : true, "label" : "Utdanning, institutt eller seksjon", "type" : "text", "name" : "tilknytning" } contactForm.appendChild(crInputWithLabel(contactForm_tilknytning)); // Lage felt for oppgave- eller arbeidstype (og etikett/tittel) var contactForm_oppgave = { "tag" : "div", "id" : "Oppgaverad", "cls" : false, "required" : true, "label" : "Kva type oppgåve/arbeid gjeld det?", "type" : "textarea", "name" : "arbeidoppgave" } contactForm.appendChild(crInputWithLabel(contactForm_oppgave)); // Lage felt for problemstilling (og etikett/tittel) var contactForm_problem = { "tag" : "div", "id" : "Problemstillingsrad", "cls" : false, "required" : true, "label" : "Problemstilling for oppgåva", "type" : "textarea", "name" : "problemstilling" } contactForm.appendChild(crInputWithLabel(contactForm_problem)); // Lage felt for benytta søkeord (og etikett/tittel) var contactForm_sokeord = { "tag" : "div", "id" : "Soekeordssrad", "cls" : false, "required" : true, "label" : "Søkeord du har brukt", "type" : "text", "name" : "sokeord" } contactForm.appendChild(crInputWithLabel(contactForm_sokeord)); // Lage felt for kjelder (og etikett/tittel) var contactForm_kjelder = { "tag" : "div", "id" : "Kjelderad", "cls" : false, "required" : true, "label" : "Kjelder/databasar du allereie har søkt i", "type" : "textarea", "name" : "kjelder" } contactForm.appendChild(crInputWithLabel(contactForm_kjelder)); // Lage innsendings-knapp var contactFormSubmit = crInput("submit","contactFormSend","Send spørsmål",false,"button button--text"); contactForm.appendChild(contactFormSubmit); }else{ // E n g l i s h // Lage melding til brukerne om obligatoriske felt contactForm.appendChild(crTextBlock("p","All fields are required.",false,"full-width-link-block__description","font-size: smaller;")); // <- full-width-link-block__description = bouvet-css // Lage identfikasjonsrullegardin var contactFormClient = { "I am*" : "", "Student" : "a student", "HVL-Tilsett" : "HVL staff", }; contactForm.appendChild(crSelect("contactFormClient",contactFormClient,"accordion__heading","font-size: large;","Status")); // <- accordion__heading = bouvet-css // Lage mottaker-rullegardinliste var contactFormTarget = { "Campus*" : "", "Bergen" : "Bergen", "Førde" : "Førde", "Haugesund" : "Haugesund", "Sogndal" : "Sogndal", "Stord" : "Stord" }; contactForm.appendChild(crSelect("contactFormTargetUnit",contactFormTarget,"accordion__heading","font-size: large;","Studiestad")); // <- accordion__heading = bouvet-css // Lage navnefelt (og etikett/tittel) var contactForm_namn = { "tag" : "div", "id" : "Navnerad", "cls" : false, "required" : true, "label" : "Name", "type" : "text", "name" : "namn", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_namn)); // Lage e-postfelt (og etikett/tittel) var contactForm_epost = { "tag" : "div", "id" : "Epostrad", "cls" : false, "required" : true, "label" : "Email", "type" : "email", "name" : "epost", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_epost)); // Lage telefonnummerfelt (og etikett/tittel) var contactForm_telefon = { "tag" : "div", "id" : "Telefonnummerrad", "cls" : false, "required" : true, "label" : "Phone number", "type" : "text", "name" : "telefonnummer", "val" : false } contactForm.appendChild(crInputWithLabel(contactForm_telefon)); contactForm.appendChild(crTextBlock("p","Your number will not be stored",false,false,"font-style: italic;font-size: x-small;")); // Lage felt for tilknytning (og etikett/tittel) var contactForm_tilknytning = { "tag" : "div", "id" : "Tilknytningssrad", "cls" : false, "required" : true, "label" : "Faculty or study programme", "type" : "text", "name" : "tilknytning" } contactForm.appendChild(crInputWithLabel(contactForm_tilknytning)); // Lage felt for oppgave- eller arbeidstype (og etikett/tittel) var contactForm_oppgave = { "tag" : "div", "id" : "Oppgaverad", "cls" : false, "required" : true, "label" : "What kind of assignment are you writing?", "type" : "textarea", "name" : "arbeidoppgave" } contactForm.appendChild(crInputWithLabel(contactForm_oppgave)); // Lage felt for problemstilling (og etikett/tittel) var contactForm_problem = { "tag" : "div", "id" : "Problemstillingsrad", "cls" : false, "required" : true, "label" : "Brief description of your topic and information need", "type" : "textarea", "name" : "problemstilling" } contactForm.appendChild(crInputWithLabel(contactForm_problem)); // Lage felt for benytta søkeord (og etikett/tittel) var contactForm_sokeord = { "tag" : "div", "id" : "Soekeordssrad", "cls" : false, "required" : true, "label" : "Search words used", "type" : "text", "name" : "sokeord" } contactForm.appendChild(crInputWithLabel(contactForm_sokeord)); // Lage felt for kjelder (og etikett/tittel) var contactForm_kjelder = { "tag" : "div", "id" : "Kjelderad", "cls" : false, "required" : true, "label" : "Databases you have already searched", "type" : "textarea", "name" : "kjelder" } contactForm.appendChild(crInputWithLabel(contactForm_kjelder)); // Lage innsendings-knapp var contactFormSubmit = crInput("submit","contactFormSend","Send Request",false,"button button--text"); contactForm.appendChild(contactFormSubmit); } // Legge all produsert HTML inn i skjemaomradet i sida let skjemaTrgt = document.getElementById("skjema"); if (!!skjemaTrgt){ skjemaTrgt.innerHTML = ''; skjemaTrgt.appendChild(contactForm); }else{ console.error('Element Skjema er ikke tilgjengelig'); } }