var http_request = false;

function makePOSTRequest(url, parameters, inFunktion, franDIV, autoSize) 
{
	http_request = false;
	if (window.XMLHttpRequest) // Mozilla, Safari mf
	{ 
		http_request = new XMLHttpRequest();
		
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/html');
		}
			
	} 
	
	else if (window.ActiveXObject) // IE
	{ 
		try 
		{
			http_request = new ActiveXObject('Msxml2.XMLHTTP');
		} 
		
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject('Microsoft.XMLHTTP');
			} 
			catch (e) 
			{
			}
		}
	}
	
	if (!http_request) 
	{
		alert('Kan inte skapa XMLHTTP instance');
		return false;
	}
	
	if(franDIV!='')
	{
			http_request.onreadystatechange = function() {inFunktion(franDIV, autoSize);return false;} 
	}
	else
	{
		http_request.onreadystatechange = inFunktion;
	}
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	http_request.setRequestHeader('Content-length', parameters.length);
	http_request.setRequestHeader('Connection', 'close');
	http_request.send(parameters);
}


// ################################################# DYNAMISK !!!  POST ELLER GET MED AJAX
function getPostInfoAjaxSvar(franDIV, autoSize)
{
	var result='';
	
	if (http_request.readyState == 4) 
	{
		if(result=='')
		{
			//document.getElementById('ajaxLaddar').style.display='block';
		}
			
		if (http_request.status == 200) 
		{
			result = http_request.responseText;
			
			//document.getElementById('ajaxLaddar').style.display='none';

			// Här kör vi de olika saker som ska hända beroende på vart man kommer ifrån !!!
			felTest=(result.substring(0,5));
			medelandeTest=(result.substring(0,4));
			if(felTest=='error') // Ifall något flevererar error så ska den inte förstöra formuläret utan mdeddela detta
			{
				inVarning=(result.substring(6,500));
				// Tar det innehåll den redan har och lägger till en varning högst upp från svarsfilen
				//nuvarandeInnehall=document.getElementById(franDIV).innerHTML;
				//document.getElementById(franDIV).innerHTML=inVarning+'<br/>'+nuvarandeInnehall;
				
				// Om det inte finns så skapas en status div i fönstret, annars skrivs bara status ut i den
				if(document.getElementById('utStatus_'+franDIV+'_'+pip_UniktPiPNummer)==null)
				{
					var statusObjekt = document.createElement('div');
					statusObjekt.id = 'utStatus_'+franDIV+'_'+pip_UniktPiPNummer;
					statusObjekt.className = 'utStatus';
					statusObjekt.style.float = 'right';
					statusObjekt.style.textAlign = 'right';
					statusObjekt.style.padding = 10+'px';
					statusObjekt.style.paddingTop = 14+'px';
					statusObjekt.innerHTML=inVarning+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>';
					document.getElementById(franDIV).appendChild(statusObjekt);
				}
				else
				{
					document.getElementById('utStatus_'+franDIV+'_'+pip_UniktPiPNummer).innerHTML=inVarning+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>';
				}
			}
			else if(medelandeTest=='info')
			{
				utInfo=(result.substring(5,500));
				// Tar det innehåll den redan har och lägger till den info som kommer från svarsfilen
				//nuvarandeInnehall=document.getElementById(franDIV).innerHTML;
				//document.getElementById(franDIV).innerHTML=utInfo+'<br/>'+nuvarandeInnehall;
				
				// Om det inte finns så skapas en status div i fönstret, annars skrivs bara status ut i den
				if(document.getElementById('utStatus_'+franDIV+'_'+pip_UniktPiPNummer)==null)
				{
					var statusObjekt = document.createElement('div');
					statusObjekt.id = 'utStatus_'+franDIV+'_'+pip_UniktPiPNummer;
					statusObjekt.className = 'utStatus';
					statusObjekt.style.float = 'right';
					statusObjekt.style.textAlign = 'right';
					statusObjekt.style.padding = 10+'px';
					statusObjekt.style.paddingTop = 14+'px';
					statusObjekt.innerHTML=utInfo+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>';
					document.getElementById(franDIV).appendChild(statusObjekt);
				}
				else
				{
					document.getElementById('utStatus_'+franDIV+'_'+pip_UniktPiPNummer).innerHTML=utInfo+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>';
				}
				
			}
			else // Annars verkar formuläret ha blivit bra postat och vi kan visa det tänkta innehållet
			{
				document.getElementById(franDIV).innerHTML = result;	
			}	
			
			// Formar om diven så att innehållet får bättre plats
			narmastePiP_Innehallare=taUtNarmastePIP_Innehallare(document.getElementById(franDIV));
			
			// Om vi inte satt resizaren till nått så ska den ändra storlek annars händer inget // Sparar den här till senare då kan man kanske även sätta värden här man vill att den ska ändras om till
			if(autoSize==null)
			{
				sattAutoHojdBredd(narmastePiP_Innehallare);
			}
			
		} 
		
		else 
		{
			alert('Det blev ett problem! Error osv... :(');
		}
	}
}

function postFixaDaligaTecken(inStrang)
{
	//document.getElementById('UtvecklingsRutan').style.display='block';
	//document.getElementById('UtvecklingsRutan').innerHTML+='--------------<br/>';
	//document.getElementById('UtvecklingsRutan').innerHTML+='inStrang Före: ' +inStrang +'<br/>';
	
	//inStrang = inStrang.replace('&', 'XochZ');
	inStrang = inStrang.replace('+', 'XplusZ');
	
	inStrang = inStrang.replace('+', 'XplusZ');
	inStrang = inStrang.replace('+', 'XplusZ');
	inStrang = inStrang.replace('+', 'XplusZ');
	inStrang = inStrang.replace('+', 'XplusZ');
	inStrang = inStrang.replace('+', 'XplusZ');
	
	//inStrang = inStrang.replace('-', 'XminusZ');
	//inStrang = inStrang.replace('=', 'XlikamedZ');
	
	inStrang = replaceAll(inStrang, '&', 'XochZ');
	//inStrang = replaceAll(inStrang, '+', 'XplusZ');
	//inStrang = replaceAll(inStrang, '-', 'XminusZ');
	inStrang = replaceAll(inStrang, '=', 'XlikamedZ');
	
	//document.getElementById('UtvecklingsRutan').innerHTML+='inStrang Efter: ' +inStrang +'<br/>';
	
	return inStrang;
}

function getPostInfoAjax(inForm, postTillFil, franDIV, autoSize) // Hämtar all information och sätter ihop den med respektive variabel från ett formulär
{
	// Variabeln vi ska skicka iväg med all information
	var postVariabels ='';
	
	// Tar ut INPUT-fälten
	var inputFalt = document.getElementById(inForm).getElementsByTagName('input');
	
	for (var i = 0; i < inputFalt.length; i++) 
	{
		if(faltNamn = inputFalt[i].type!='submit')
		{
			faltNamn = inputFalt[i].name;
		
			faltVarde = inputFalt[i].value;
			
			faltVarde=postFixaDaligaTecken(faltVarde);
					
			if(postVariabels=='')
			{
				postVariabels=faltNamn+'=' + encodeURI(faltVarde);
			}
			else
			{
				postVariabels=postVariabels+'&'+faltNamn+'=' + encodeURI(faltVarde);
			}
		}
	}
	
	// Tar ut SELECT-fälten
	var selectFalt = document.getElementById(inForm).getElementsByTagName('select');
	
	for (var i = 0; i < selectFalt.length; i++) 
	{
		selectNamn = selectFalt[i].name;
		
		selectVarde = selectFalt[i].value;
		
		selectVarde=postFixaDaligaTecken(selectVarde);
		
		if(postVariabels=='')
		{
			postVariabels=selectNamn+'=' + encodeURI(selectVarde);
		}
		else
		{
			postVariabels=postVariabels+'&'+selectNamn+'=' + encodeURI(selectVarde);
		}
	}
	
	// Tar ut TEXTAREA-fälten
	var textareaFalt = document.getElementById(inForm).getElementsByTagName('textarea');
	
	for (var i = 0; i < textareaFalt.length; i++) 
	{
		textareaNamn = textareaFalt[i].name;
		
		textareaVarde = textareaFalt[i].value;
		
		textareaVarde=postFixaDaligaTecken(textareaVarde);
		
		if(postVariabels=='')
		{
			postVariabels=textareaNamn+'=' + encodeURI(textareaVarde);
		}
		else
		{
			postVariabels=postVariabels+'&'+textareaNamn+'=' + encodeURI(textareaVarde);
		}
	}
	
	//alert(postVariabels);
	
	// Skickar iväg infon till den relevanta filen
	makePOSTRequest(postTillFil, postVariabels, getPostInfoAjaxSvar, franDIV, autoSize);

}
