//XML-Schnittstelle
var gosmcHTTPrequestXML = false;
var ggosmcXML = false;

function smcXMLrequest(url)
{
    gosmcHTTPrequestXML = false;
    if (window.XMLHttpRequest)
	{
		// Mozilla, Safari,...
        gosmcHTTPrequestXML = new XMLHttpRequest();
        if (gosmcHTTPrequestXML.overrideMimeType)
		{
            gosmcHTTPrequestXML.overrideMimeType('text/xml');
        }
    }
	else if (window.ActiveXObject)
	{
		// IE
        try
		{
            gosmcHTTPrequestXML = new ActiveXObject("Msxml2.XMLHTTP");
        }
		catch (e)
		{
            try
			{
                gosmcHTTPrequestXML = new ActiveXObject("Microsoft.XMLHTTP");
            }
			catch (e) {}
        }
    }

    if (!gosmcHTTPrequestXML)
	{
        alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
        return false;
    }
    //gosmcHTTPrequestXML.onreadystatechange = smcXMLrequestTest;
    gosmcHTTPrequestXML.open('GET', url, false);
    gosmcHTTPrequestXML.send(null);
}

function smcXMLcontrol(strURL, strBaseTag, flagDebug)
{
	this.Debug = flagDebug;
	this.Error = true;
	this.LastError = "";
	this.responseXML = false;
	this.Record = false;
	this.RecordCount = 0;
	this.RecordNumber = 0;
	this.BaseTag = strBaseTag;

	smcXMLrequest(strURL);
    if (gosmcHTTPrequestXML.readyState == 4)
	{
        if (gosmcHTTPrequestXML.status == 200)
		{
			this.responseXML = gosmcHTTPrequestXML.responseXML;
			this.Record = this.responseXML.getElementsByTagName(this.BaseTag);
			this.RecordCount = this.Record.length;
			this.Error = false;
			return true;
        }
		else
		{
            this.LastError = "ERROR smcXMLrequest (" + gosmcHTTPrequestXML.status + ")";
        }
	}
 	else
	{
        this.LastError = "ERROR smcXMLrequest (" + gosmcHTTPrequestXML.readyState + ")";
    }
	return false;
}

function smcGetNextRecord()
{
	if (gosmcXML.RecordNumber < gosmcXML.RecordCount)
	{
		gosmcXML.RecordNumber++;
		return true;
	}
	else return false;
}

function smcGetField(strF)
{
	this.FieldName = "";
	this.FieldValue = "";

	var oRecord = gosmcXML.Record[gosmcXML.RecordNumber];
	if (oRecord.getElementsByTagName(strF))
	{
		var oField = oRecord.getElementsByTagName(strF);
		if (oField)
		{
			try
			{
				with (oField[0])
				{
					this.FieldName = nodeName;
					this.FieldValue = firstChild.nodeValue;
				}
			}
			catch (e)
			{
				return false;
			}
		}
		else
		{
			alert("FIELD NOT FOUND:" + strF);
			return false;
		}
	}
	else
	{
		alert("FIELD NOT FOUND:" + strF);
		return false;
	}
}

function smcGetFieldValue(strF)
{
	var oValue = new smcGetField(strF);
	try
	{
		return oValue.FieldValue;
	}
	catch (e)
	{
		return "";
	}
}

function smcGetFieldDateSmc(strF)
{
	var oValue = new smcGetField(strF);
	try
	{
		//!!!hier Attribut lesen
		return oValue.FieldValue;
	}
	catch (e)
	{
		return "";
	}
}

function smcGetLinkSI(strF)
{
	var oValue = new smcGetField("silink");
	try
	{
		strA = oValue.getElementsByTagName("a");
		if (strA != "")
		{
			return "1:" + strA;
		}
		else return "x";
	}
	catch (e)
	{
		return "";
	}
}

// spezielle Funktion zum Lesen von RSS:
function smcGetRSStitle()
{
	var oValue = new smcGetField("title");
	try
	{
		return oValue.FieldValue;
	}
	catch (e)
	{
		return "";
	}
}
function smcGetRSSdescription()
{
	var oValue = new smcGetField("description");
	try
	{
		return oValue.FieldValue;
	}
	catch (e)
	{
		return "";
	}
}
function smcGetRSSlink()
{
	var oValue = new smcGetField("link");
	try
	{
		return encodeURI(oValue.FieldValue);
	}
	catch (e)
	{
		return "";
	}
}

