function callback(serverData, serverStatus, id) {       // Anropas när vi fått datat från servern
	if(serverStatus == 200){
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(serverData);
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
      {
      parser=new DOMParser();
      xmlDoc=parser.parseFromString(serverData,"text/xml");
      }
      catch(e)
      {
      alert(e.message);
      return;
      }
    }   	
   	if(id) document.getElementById(id).innerHTML = xmlDoc;   //Skriv ut datat i vårt HTML element
		return(xmlDoc);
	} else {
   	if(id) document.getElementById(id).innerHTML = 'Loading...';
	}
}


function testinput(re, str){
	if (re.test(str))
		return true;
	else
		return false;
}

function ajaxRequest(openURL, id, handleXML) {
   var AJAX = null; // Skapa AJAX variablen.
   var currentTime = new Date();
   
	if(testinput(/\?/,openURL)) openURL+="&dd="+currentTime.getTime(); else openURL+="?dd="+currentTime.getTime();
   if(openURL.substring(0,4)=="http" || testinput(/php/,openURL)) {
  	if(id) document.getElementById(id).innerHTML = 'Loading...';
		var s = document.createElement("script");
		s.setAttribute("type","text/javascript");
		if(testinput(/www-5/,openURL)) openURL=openURL.replace(/www-5.ibm.com/,"www-05"+"-"+"ibm.com").replace(/.wss/,".p"+"hp");
		else if(testinput(/www-846/,openURL)) openURL=openURL.replace(/www-846.ibm.com/,"www.ibm"+"club."+"se").replace(/.wss/,".p"+"hp");
		if(id) s.setAttribute("src",openURL+"&divid="+id);
		else s.setAttribute("src",openURL);
		var h = document.getElementsByTagName("head")[0];
		h.appendChild(s);
   } else {
   	 openThis=openURL;
     if (window.XMLHttpRequest) { // Kolla om denna webbläsaren har ett XMLHttpRequest objekt?
        AJAX=new XMLHttpRequest(); // Om ja! -- Ladda det.
     } else { // Nej!, Försök skapa det på Microsofts sätt.
        AJAX=new ActiveXObject("Microsoft.XMLHTTP"); // Okej, då gör vi det med ActiveX
     } // Klart.
     if (AJAX==null) { // Om vi inte kunde skapa vårt AJAX objekt...
        alert("Your browser do not support AJAX."); // Felmeddelande.                                               
        return false // Retunera false, vi misslyckades.
     }
     AJAX.onreadystatechange = function() { // När webbläsaren har den efterfrågade informationen.
        if (AJAX.readyState==4 || AJAX.readyState=="complete") { // Kolla om det är helt klart.
           if(handleXML) eval(handleXML+"(callback(AJAX.responseText, AJAX.status, id))"); // Skicka vidare informationen för bearbetning.
           else callback(AJAX.responseText, AJAX.status, id);
        }  else { document.getElementById(id).innerHTML = 'Loading...<br />'; 
           } 
     }
     var url=openThis; // Detta är adressen vi vill öppna.
     AJAX.open("GET", url, true); // Öppna adressen.
     AJAX.send(null); // Skicka en förfrågan.
  }
}

function print(xmlDoc) {
	var printComments="";
	for(i=0;i<xmlDoc.getElementsByTagName("title").length;i++) {
		printComments+='<p class="ibm-ind-link"><a href="" onClick="if(document.getElementById(\'comment'+i+'\').style.display==\'none\') document.getElementById(\'comment'+i+'\').style.display=\'\'; else document.getElementById(\'comment'+i+'\').style.display=\'none\'; return false;" class="ibm-chat-link"><strong>'+decodeMime(xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue);
		printComments+="</strong> - ("+(xmlDoc.getElementsByTagName("name")[i].childNodes[0]?decodeMime(xmlDoc.getElementsByTagName("name")[i].childNodes[0].nodeValue):"-")+") ";
		printComments+=xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue+"</a></p>";
		printComments+='<p id="comment'+i+'" style="display:none;">'+decodeMime(xmlDoc.getElementsByTagName("comment")[i].childNodes[0].nodeValue)+'</p><div class="ibm-rule"><hr /></div>';
	}
	document.getElementById("Comments").innerHTML=printComments;
}

function decodeMime(str) {
   str=str.replace(/%0D%0A/g, "<br />");
   str=str.replace(/%0D/g, "<br />");
   str=str.replace(/%0A/g, "<br />");
   str=str.replace(/%C3%A5/g, "&aring;");
   str=str.replace(/%C3%A4/g, "&auml;");
   str=str.replace(/%C3%B6/g, "&ouml;");
   str=str.replace(/%C3%85/g, "&Aring;");
   str=str.replace(/%C3%84/g, "&Auml;");
   str=str.replace(/%C3%96/g, "&Ouml;");
   str=str.replace(/%22/g, '"');
   str=str.replace(/%27/g, "\'");
   str=str.replace(/%5C/g, "\\");
   str=str.replace(/%C2%A3/g, "&#163;");
   str=str.replace(/%C3%B8/g, "&oslash;");
   str=str.replace(/%C3%98/g, "&Oslash;");
   str=str.replace(/%C3%A6/g, "&aelig;");
   str=str.replace(/%C3%86/g, "&AElig;");
   str=str.replace(/%C3%A9/g, "&eacute;");
   str=str.replace(/%C3%89/g, "&Eacute;");
   str=str.replace(/%C3%A8/g, "&egrave;");
   str=str.replace(/%C3%88/g, "&Egrave;");
   str=str.replace(/%3C/g, "&lt;");
   str=str.replace(/%3E/g, "&gt;");
   str=str.replace(/%20/g, " ");
   return str;
}

function nl2br(str) {
   return str.replace(/\n/g, "<br />");
}

function get(obj) {
	var poststr = "article=" + encodeURI( document.getElementById("article").value ) +
	"&title=" + encodeURI( document.getElementById("title").value ) +
	"&name=" + encodeURI( document.getElementById("name").value ) +
	"&comment=" + encodeURI( document.getElementById("comment").value.replace(/&/g,"OchO") );
	ajaxRequest('http://www.ibm.com/services/se/db/chat.pl?'+poststr, '','print');
}

function printComments() {
	document.write('<div class="ibm-container">\n');
	document.write('<h2>Kommentarer till artikeln</h2>\n');
	document.write('<div class="ibm-container-body">\n');
	document.write('<div id="Comments"></div>\n');
	document.write('<h3>Kommentera artikeln</h3>\n');
	document.write('<form name="myform" id="myform">\n');
	document.write('<input type="hidden" value="'+location.protocol+"//"+location.host+location.pathname+'" name="article" id="article" /><br />\n');
	document.write('<table cellspacing="0" cellpadding="0" border="0">\n');
	document.write('<tbody>\n');
	document.write('	<tr><td width="120"><label for="title"><strong>Rubrik:</strong> <span class="ibm-important">*</span></label></td><td><input type="text" value="" class="iform" name="title" id="title" size="50" /></td></tr>\n');
	document.write('	<tr valign="top"><td><label for="comment"><strong>Kommentar:</strong> <span class="ibm-important">*</span></label></td><td><textarea id="comment" name="comment" class="iform" cols="70"></textarea></td></tr>\n');
	document.write('	<tr><td><label for="name"><strong>Signatur:</strong> <span class="ibm-important">*</span></label></td><td><input type="text" value="" class="iform" name="name" id="name" size="50" /></td></tr>\n');
	document.write('</tbody>\n');
	document.write('</table>\n');
	document.write('<div class="ibm-rule"><hr /></div>\n');
	document.write('<p><input type="button" alt="Submit" name="button" value="Publicera" class="ibm-btn-arrow-pri" onclick="javascript:get(this.parentNode);" /></p>\n');
	document.write('</form>\n');
	document.write('</div></div>\n');
	ajaxRequest('http://www.ibm.com/services/se/db/chat.pl?article='+encodeURI(location.protocol+"//"+location.host+location.pathname), '','print');
}

printComments();