area = '';
period = '';
searchOptions = '';
searchterm = '';


//Writes the Options in the "area"-Select component for the search
function writeLablesOption() 
{
    for (i = 0; i < tabLables.length; i++) {
        option = document.createElement("option");
        text = document.createTextNode(tabLables[i]);
        document.getElementById("area").appendChild(option);
        document.getElementById("area").options[i].appendChild(text);
        document.getElementById("area").options[i].value = i+1;               
    }
}

function reset(server,language)
{
    area = '';
    period = '';
    searchOptions = '';
    searchterm = '';
    document.getElementById("searchterm_news") .value = "";
    document.getElementById("area").options[0].selected=true;
    document.getElementById("period").options[0].selected=true;
    document.getElementById("btn_reset") .className = "btn_reset_hidden";
    showNews(1,server, language, 1,1);
}

// Will be triggered by click on search (only once for every search)
// writes all search parameters permanently
function searchnews(server, language) {
    document.getElementById("btn_reset") .className = "btn_news_search";
    area = document.getElementById("area") .value;
    period = document.getElementById("period") .value;
    searchOptions = '';
    searchterm = document.getElementById("searchterm_news") .value;
    searchterm = encodeURIComponent(searchterm);
      
    words = searchterm.split(" ");    
    correctWords = 0;   
    
    visitedTabs = new Array();
            
    /*�berpr�fen welches radio gew�hlt wurde*/
    radios = document.getElementsByName("searchterms");
    for (i = 0; i < radios.length; i++) {
        if (radios[i].checked == true) {
            searchOptions = radios[i].value;
        }
    }

    if(document.getElementById("searchterm_news").value!='')//Only when searchterm is filled
    {          
        for(i=0; i < words.length; i++)
        {
            if(words[i].length>=3)
            {                
                correctWords++;
            }            
        }
        if(correctWords == words.length)
        {   
            showNews(area,server, language, 1,1);
        }
        else
        {
            alert("Bitte geben Sie W�rter mit mind. 3 Zeichen ein");
        }
    }
    else
    {
         showNews(area,server, language, 1,1);
    }
    
    
}

// Will be triggered by all clicks on search tabs
function showNews(area,serverNameWithPort, language,page,suche,download,sort,txtSE_numberOfResultsPerPage,txtSE_numberOfResultsPerTab,txtSE_numberOfChars)  
{
    rssFeed = rssFeeds[area - 1];
    if(page=='undefined' || page==null) 
    {
        page=1;
    }
    // ersetzen &amp; durch &
    var transformedRssFeed = (rssFeed.split("&amp;")).join("&");
    /*var transformedRssFeed = rssFeed;*/
    
    if  ( rssFeed.substring(0,6)== 'cocoon' ) {
    	url = 'http://'+ serverNameWithPort +'/dynamic/internal/news.xml?numberOfItems=10&tabId=' + area + '&page='+page+ '&download='+download+ '&lang=' + language  + '&area=' + area + '&searchterm=' + searchterm + '&period=' + period + '&searchOptions=' + searchOptions + '&formatDate=' + formatDate + '&rssFeed=' + escape(transformedRssFeed) + '&extNewsDetail='+extNewsDetail + '&extIRNewsDetail='+extIRNewsDetail+'&sort='+sort+'&txtSE_numberOfResultsPerPage=' + txtSE_numberOfResultsPerPage+'&txtSE_numberOfResultsPerTab=' + txtSE_numberOfResultsPerTab+'&txtSE_numberOfChars=' + txtSE_numberOfChars;
   	} else {
   		url = 'http://'+ serverNameWithPort +'/dynamic/external/news.xml?numberOfItems=10&tabId=' + area + '&page='+page+ '&download='+download+ '&lang=' + language  + '&area=' + area + '&searchterm=' + searchterm + '&period=' + period + '&searchOptions=' + searchOptions + '&formatDate=' + formatDate + '&rssFeed=' + escape(transformedRssFeed) + '&extNewsDetail='+extNewsDetail + '&extIRNewsDetail='+extIRNewsDetail+'&sort='+sort+'&txtSE_numberOfResultsPerPage=' + txtSE_numberOfResultsPerPage+'&txtSE_numberOfResultsPerTab=' + txtSE_numberOfResultsPerTab+'&txtSE_numberOfChars=' + txtSE_numberOfChars;
   	}
    showtab1(area); 
    getContent(area, url, page, suche);  
}

//NEWS
var req;
var tab;
var visitedTabs = new Array();
function getContent(tabs, url,page, suche) {
        
    //�berpr�fen ob aufgerufenes Tab im Array vorhanden ist
    isNewTab = true;
    for (i = 0; i < visitedTabs.length; i++) {
        if (visitedTabs[i] == tabs) {
            isNewTab = false;
        }
    }
    
    if(suche == 1)
    {
        isNewTab = true;
    }
    //Wenn Tab noch nicht aufgerufen wurde mit News bef�llen
    // TODO: Beim Loading einblenden den Content nicht springen lassen.
    if (isNewTab == true || page>=1) {
        visitedTabs.push(tabs);
        //neues Tab in Array speichern
        tab = tabs;
        req = false;
        // f�r Mozilla etc.
        if (window.XMLHttpRequest) {
            try {
                //Fehler abfangen
                req = new XMLHttpRequest();
            } catch (e) {
                req = false;
            }
            // f�r den InternetExplorer
        }
        else if (window.ActiveXObject) {
            try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    req = false;
                }
            }
        }
        if (req) {
            //falls Objekt erzeugt werden konnte
            //bei Aenderung des Status der Anfrage, wird Funktion handleReqChange aufgerufen
            req.onreadystatechange = handleReqChange;
            req.open('GET', url, true);
            req.send(null);
        }
    }
}



function handleReqChange() {
    
    tabCont = "tabcontent"+tab;
    // Wenn der Status der Anfrage "completed" ist
    if (req.readyState == 4) {
        // wenn die Server Nachricht den Statuscode 200 hat
        if (req.status == 200) {
            // hier wird die XML Antwort verarbeitet
            response = req.responseXML.documentElement;
            
            //Inhalt der XML in den Tab schreiben
            document.getElementById(tabCont) .innerHTML = req.responseText;
        }
        else {
            //Exception-Handling und Fehlerausgabe
            error_code = "ERROR while reading xml:\nStatus: " + req.status + "\nText:" + req.statusText;
            document.getElementById(tabCont) .innerHTML = "<span class='component_error'>" + error_code + "</span><div class='clearing'>&nbsp;</div>";
        }
    }
    else if (req.readyState == 0 || req.readyState > 4) {
        //Exception-Handling und Fehlerausgabe
        error_code = "Could not find xml";
        document.getElementById(tabCont) .innerHTML = "<span class='component_error'>" + error_code + "</span><div class='clearing'>&nbsp;</div>";
    }
}

//SUCHE

function showsearch(on) {
    if (on == 0) {
        document.getElementById('box_newssearch') .style.display = "none";
        document.getElementById('box_newssearch') .style.visibility = "hidden";
        document.getElementById('box_newssearch_showhide') .innerHTML = '<a href="#" onclick="showsearch(1)" class="off">Show News Search</a>';
    }
    else {
        document.getElementById('box_newssearch') .style.display = "block";
        document.getElementById('box_newssearch') .style.visibility = "visible";
        document.getElementById('box_newssearch_showhide') .innerHTML = '<a href="#" onclick="showsearch(0)" class="on">Hide News Search</a>';
    }
}
