// JavaScript Document
//-----------------------------------------------------------------
// Namn: ajax(inControl, inURL)
// Kort beskrivning: Funktionen anropar valfri fil via ajax
// Indata:
// inControl : id på det input, span eller div som skall tilldelas output av den anropade filen
// inURL: sökvägen till den fil som ska anropas, skickas med GET, dvs. vi kan lägga till ?func=callme&id=54 om vi vill.
// Version: 1.0
// Senast ändrad: Michael Melander 2006-11-02
// - Lade till funktionalitet för div, span och button (kan möjligen fungera för andra också)
//
// Tidigare ändrad: Bernt Johansson 2006-09-21
//
// Exempel:
//
// Stödjs av IE5+, Mozilla 1.0+, Opera, Safari, Netscape 6+
//-----------------------------------------------------------------
function ajax(inControl, inURL){
var xmlhttp = null;
document.body.style.cursor = 'wait';
if (window.XMLHttpRequest) { // Firefox, Opera, Safari och Netscape
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { // Internet Explorers olika versioner
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { alert("Din webbläsare stödjer inte Ajax"); }
}
}
if (xmlhttp){
var url = inURL
//xmlhttp.open("GET",url,false);
xmlhttp.open("POST",url,false);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send(null);
var docObj = document.getElementById(inControl);
/* Kontrollerar om vi ska skriva till value eller innerHTML */
with(docObj){
var objType = docObj.type;
switch(objType){
case "text":
case "button":
docObj.value = xmlhttp.responseText;
break;
default:
docObj.innerHTML = xmlhttp.responseText;
break;
}
}
xmlhttp.abort();
}
document.body.style.cursor = 'auto';
}
function isString(strValue){
return (typeof strValue == 'string' && strValue != '' && isNaN(strValue));
}
function isNumber(strValue){
return (!isNaN(strValue) && strValue != '');
}
function isEmail(strValue){
var objRE = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;
return (strValue != '' && objRE.test(strValue));
}
function skicka_epost(form, url, fel_id){
with(form){
isOkey = true;
errorTextArray = new Array();
errorText = '';
urlstring = '';
if((!marknadsforing.checked) && (!hemsida.checked) && (!information.checked)){
urlstring += '&intresserad=0';
}else{
urlstring += '&intresserad=1';
if(marknadsforing.checked){urlstring += '&marknadsforing='+marknadsforing.value;}
if(hemsida.checked){urlstring += '&hemsida='+hemsida.value;}
if(information.checked){urlstring += '&information='+information.value;}
}
urlstring += '&www_adress='+www_adress.value;
if(!isString(namn.value)){
errorTextArray.push('Namn måste vara text');
isOkey = false;
}else{
urlstring += '&namn='+namn.value;
}
if(!isString(foretag.value)){
errorTextArray.push('Företagsnamn måste vara text');
isOkey = false;
}else{
urlstring += '&foretag='+foretag.value;
}
if(!isNumber(telefon.value)){
errorTextArray.push('Telefonnummer får bara vara nummer');
isOkey = false;
}else{
urlstring += '&telefon='+telefon.value;
}
if(epost.value != '' && !isEmail(epost.value)){
errorTextArray.push('Felaktig e-post');
isOkey = false;
}else if(epost.value != '' && isEmail(epost.value)){
urlstring += '&epost='+epost.value;
}
if(meddelande.value == ''){
errorTextArray.push('Meddelande får inte vara tomt');
isOkey = false;
}else if(meddelande.value != ''){
urlstring += '&meddelande='+escape(meddelande.value);
}
if(isOkey){
ajax('skicka_epost', url+'templates/doMail.php?action=skicka'+urlstring);
}else{
i = 0;
while(i < errorTextArray.length){
errorText += errorTextArray[i] + '
';
i++;
}
document.getElementById(fel_id).innerHTML = '
'+errorText+'
'; } } }