// sina.js

var xmlHttp;

var logall = 0;
var logmore = 0;

var lastfoto = 0;
var debug = 0;

var httpreq = 0;

var current_typ = "";
var current_direction = "";
var current_one = 0;
	
// for debugging
var use = 1;	//0 for debugging

  // if running Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
	xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch (e) 
    {
	xmlHttp = false;
	
      
    }
  }
  
  // if running Mozilla or other browsers
  else
  {
    try 
    {
	xmlHttp = new XMLHttpRequest();
	
    }
    catch (e) 
    {
	xmlHttp = false;
	
      
    }
    
  }
  // return the created object or display an error message
  if (!xmlHttp)
  {
     alert('Error creating the XMLHttpRequest object.');
  } 
  

function process()
{

}




	
	
// make asynchronous HTTP request using the XMLHttpRequest object 
function process_media(typ, direction)
{
if (use){
	current_typ = typ;
	current_direction = direction;
	
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    try 
    {
        if (logall) document.getElementById('debug').innerHTML += '# requesting getTransceiverStatus.php #<br>';
	      xmlHttp.open('GET', 'inhalt.xml', true);
    }
    catch (e) 
    {
      alert('There was a problem opening target:\n' + e.toString());
    }
    // define the method to handle server responses
    
    xmlHttp.onreadystatechange = handleServerResponse;
    // make the server request
    xmlHttp.send(null);
  }
  else{
    if (logall) document.getElementById('debug').innerHTML += '##### getTransceiverStatus busy!!!#<br>';
    // if the connection is busy, try again after one second  
    setTimeout('process_media(typ, direction)', 1000);
    }
}
}




// ####################################################################################################################################################
// ####################################################################################################################################################
// ####################################################################################################################################################



// executed automatically when a message is received from the server
function handleServerResponse() 
{
  // move forward only if the transaction has completed
  if (xmlHttp.readyState == 4) 
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200) 
    {
	
			try
			{
				// extract the XML retrieved from the server
				var xmlResponse = xmlHttp.responseXML;
				if (!xmlResponse || !xmlResponse.documentElement)
				{
					throw ('Invalid XML structure:\n' + xmlHttp.responseText);
				}
				// obtain the document element (the root element) of the XML structure
				var xmlDoc = xmlResponse.documentElement;
				var xmlNode = xmlDoc.getElementsByTagName(current_typ);
				// test 
				if (xmlNode.length != 0 && xmlNode.item(0).firstChild)
				{
					//if (debug) alert("now");
					
					// direction?
					if (current_direction == 'next')
					{
						if (current_one < xmlNode.length)
						{
							var now_this = current_one;
							current_one++;
						}
					}
					else if (current_direction == 'last')
					{
						if ( current_one >= 2 )
						{
							var now_this = current_one-2;
							current_one--;
						}
					}
					else { if (debug == 1) alert('Fehler: did not found direction of rotation')};
					var link = xmlNode.item(now_this).firstChild.data;
					if (debug) alert("next one: " + link);
					// Fotos oder Theater
					if (current_typ == 'Foto' || current_typ == 'Theater')
					{
						var element = document.getElementById('foto');
						var newHTML = '<img src="fotos/' + link + '">';
						element.innerHTML = newHTML;
						if ( current_typ == 'Foto') var xmlNodeText = xmlDoc.getElementsByTagName('Fototext');
						else if ( current_typ == 'Theater') var xmlNodeText = xmlDoc.getElementsByTagName('Theatertext');
						else { if (debug) alert('Fehler: did not found current data type')};
						var text = '';
						if (xmlNodeText.length != 0 && xmlNodeText.item(now_this).firstChild)
						{
							text = xmlNodeText.item(now_this).firstChild.data;
							//alert(text);
						}
						else { if (debug) alert('Length:' + xmlNodeText.length + ' Item: ' + xmlNodeText.item(now_this).firstChild)};
						var element = document.getElementById('fototext');
						element.innerHTML = text;
						
							
					}
					// Film
					else if (current_typ == 'Film')
					{
							
						var link = xmlNode.item(now_this).firstChild.data;
						var element=document.getElementById('foto');
						var newHTML='<embed src="'+link+'" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425">';
						element.innerHTML=newHTML;
						
						var outputFields=new Array(
					  'Filmtitel','Filmprojekt','Filmlaenge','Filmdatum','Filmbeschreibung');
				
					  for (n in outputFields)
					  {
  	
							var xmlNode2 = xmlDoc.getElementsByTagName(outputFields[n]);
							if (xmlNode2.length != 0 && xmlNode2.item(now_this).firstChild)
							{
								var titel = xmlNode2.item(now_this).firstChild.data;
								var element = document.getElementById(outputFields[n]);
								element.innerHTML = titel;
							}
						}
					}
					// sonst
					else alert('Could not read media type!');
								
							
					if (current_one == xmlNode.length)
					{
						document.getElementById("pfeil-rechts").className = 'hidden';
					}
					if (current_one < xmlNode.length && current_one > 1)
					{
						document.getElementById("pfeil-rechts").className = 'nothidden';
					}
							
					if (current_one > 1 && current_one != xmlNode.length)
					{
						document.getElementById("pfeil-links").className = 'nothidden';
					}
					if (current_one <= 1)
					{
						document.getElementById("pfeil-links").className = 'hidden';
					}		
					
				}
				else alert('Node length:' + xmlNode.length);
					
			}
			catch (e) 
			{
				alert('A problem occured during the attempt to read the XML file:\n' + e.toString());
				setTimeout('process_media(current_typ, current_direction)', 300);
			}
    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert('There was a problem accessing the server (next foto): ' + xmlHttp.statusText);
    }
  }
}

function jsTest()
{
  alert('TEST TEST TEST');
}



