var xmlhttp;
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

function stateChanged(ele,trans)
{
if (trans == null){
   trans = 1;
}
if (xmlhttp.readyState==4)
  {

	var result = xmlhttp.responseText.split("||");
	if((document.getElementById(ele).tagName).toString() == "SELECT"){
		document.getElementById(ele).value=trim(result[0].toString());
	}else{
		document.getElementById(ele).innerHTML=trim(result[0]);
	}
	if(result.length>1){
		document.getElementById(ele).innerHTML=trim(result[0]);
		document.forms["addWord"].split.value=trim(result[1]);
	}
	if (trans==1){
		$('#'+ele).fadeIn("fast");
	} else if (trans==2){
		$('#'+ele).show("fast");
	} else if (trans==3){
		$('#'+ele).show("fast");
		$('#'+ele).fadeIn("fast");
	}
  }
}
function ajaxShow(str,url,ele)
{

	if (str.length==0)
	{
	  if((document.getElementById(ele).tagName).toString() != "SELECT"){
		  document.getElementById(ele).innerHTML="";
	  }
	  return;
	}
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
	  alert ("Din webbläsare stödjer ej XMLHTTP!");
	  return;
	}
	url=url+"?q="+str;
	url=url+"&sid="+Math.random();
	//xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.onreadystatechange=function(){stateChanged(ele)}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}
function ajaxSet(url)
{

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
	  alert ("Din webbläsare stödjer ej XMLHTTP!");
	  return;
	}
	url=url+"&sid="+Math.random();
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}
function ajaxGet(url,ele,loadMsg) {
	var trans = 0;
	url = url + "&dummy=" + new Date().getTime();
	if(loadMsg==null){ loadMsg = ""; }
	if (trans==2){
		$('#'+ele).hide("fast");
	} else if(trans==3) {
		$('#'+ele).fadeOut("fast");
	} else {
		$('#'+ele).fadeOut("fast", function() {
			//if($('#'+ele).html==null){
				$('#'+ele).fadeIn(100);
				//$('#'+ele).html("<table width='100% height='100%' border='1' style='border: 5px solid black;background-color:#FFFFFF;'><tr><td><center><img src='img/design/loader.gif'>&nbsp;"+loadMsg+"</center></td></tr></table>");
				//$('#'+ele).html = $('#'+ele).html + "<div style='position:absolute;top:50%;left:50%;z-index:1000000;'><center><img src='img/design/loader.gif'>&nbsp;"+loadMsg+"</center></div>"
			//}
		});
	}


	$.ajax({
		type: "GET",
		url: url,
		success: function(msg){
			$('#'+ele).html(msg);
			/*var ob = document.getElementsByTagName("script");
			for(var i=0; i<ob.length-1; i++){
				if(ob[i+1].text!=null) eval(ob[i+1].text);
			}*/
			$('#'+ele).fadeIn("fast");
		}
	});

}
function ajaxPost(url,ele,loadMsg) {
	var trans = 0;
	url = url + "&dummy=" + new Date().getTime();
	if(loadMsg==null){ loadMsg = ""; }
	if (trans==2){
		$('#'+ele).hide("fast");
	} else if(trans==3) {
		$('#'+ele).fadeOut("fast");
	} else {
		$('#'+ele).fadeOut("fast", function() {
			//if($('#'+ele).html==null){
				$('#'+ele).fadeIn(100);
				//$('#'+ele).html("<table width='100% height='100%' border='1' style='border: 5px solid black;background-color:#FFFFFF;'><tr><td><center><img src='img/design/loader.gif'>&nbsp;"+loadMsg+"</center></td></tr></table>");
				//$('#'+ele).html = $('#'+ele).html + "<div style='position:absolute;top:50%;left:50%;z-index:1000000;'><center><img src='img/design/loader.gif'>&nbsp;"+loadMsg+"</center></div>"
			//}
		});
	}


	$.ajax({
		type: "POST",
		url: url,
		success: function(msg){
			$('#'+ele).html(msg);
			/*var ob = document.getElementsByTagName("script");
			for(var i=0; i<ob.length-1; i++){
				if(ob[i+1].text!=null) eval(ob[i+1].text);
			}*/
			$('#'+ele).fadeIn("fast");
		}
	});

}


function ajaxGetOld(url,ele)
{


	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
	  alert ("Din webbläsare stödjer ej XMLHTTP!");
	  return;
	}
	url=url+"&sid="+Math.random();
	//xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.onreadystatechange=function(){stateChanged(ele)}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}



var Ajax = new Object();
Ajax.isUpdating = true;

Ajax.Request = function(method, url, query, callback)
{
	this.isUpdating = true;
	this.callbackMethod = callback;
	this.request = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	this.request.onreadystatechange = function() { Ajax.checkReadyState(); };

	if(method.toLowerCase() == 'get') url = url+"?"+query;
	this.request.open(method, url, true);
	this.request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	this.request.send(query);
}

Ajax.checkReadyState = function(_id)
{
	switch(this.request.readyState)
	{
		case 1: break;
		case 2: break;
		case 3: break;
		case 4:
			this.isUpdating = false;
			this.callbackMethod(this.request.responseText);
			document.getElementById("result").innerHTML = this.request.responseText;
	}
}

var Post = new Object();
Post.Send = function(form)
{
	var query = Post.buildQuery(form);
	Ajax.Request(form.method, form.action, query, Post.OnResponse);
}

Post.OnResponse = function(xml)
{
	//var results = document.createElement('div');
	//document.getElementsByTagName('body')[0].appendChild(results)
	//results.innerHTML = xml.firstChild.nodeValue;
}

Post.buildQuery = function(form)
{
	var query = "";
	for(var i=0; i<form.elements.length; i++)
	{
		var key = form.elements[i].name;
		var value = Post.getElementValue(form.elements[i]);
		if(key && value)
		{
			query += key +"="+ value +"&";
		}
	}
	return query;
}

Post.getElementValue = function(formElement)
{
	if(formElement.length != null) var type = formElement[0].type;
	if((typeof(type) == 'undefined') || (type == 0)) var type = formElement.type;

	switch(type)
	{
		case 'undefined': return;

		case 'radio':
			for(var x=0; x < formElement.length; x++)
				if(formElement[x].checked == true)
			return formElement[x].value;

		case 'select-multiple':
			var myArray = new Array();
			for(var x=0; x < formElement.length; x++)
				if(formElement[x].selected == true)
					myArray[myArray.length] = formElement[x].value;
			return myArray;

		case 'checkbox': return formElement.checked;

		default: return formElement.value;
	}
}
