// 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: 	<input type="button" onClick="ajax('elementId', 'anropadFil.php');" value="Tryck här" />
//				<input type="button" onClick="ajax('elementId', 'anropadFil.asp?func=callMe');" value="Tryck här" />
// 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.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(!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){
			//alert(meddelande.value);
			ajax('skicka_epost', url+'templates/doMail.php?action=skicka'+urlstring);
		}else{
			i = 0;
			while(i < errorTextArray.length){
				errorText += errorTextArray[i] + '<br />';
				i++;
			}
			
			document.getElementById(fel_id).innerHTML = '<p>'+errorText+'</p>';
		}
	}	
}