var bad_togglersLoaded=new Array();
var bad_togglersLoadedUrl=new Array();
var bad_togglersUrl=false;
var bad_togglersCounter=0;

function tx_badglos_pi1_contentToggler(obj,state) {
    if(!obj.id) { return true; }
    obj.blur();
	if(!state) { state=0; }
    var id = obj.id.replace(/(link_|anc_)/, "");
    if(!bad_togglersUrl) {
        window.location.href=obj.href;
        return false;
    }
	var x=bad_togglersLoaded.indexOf(id);
    if(x<0) {
        var uid=id.replace(/tx_badglos_pi1_/,'');
        if(parseInt(uid)>0) {
            bad_togglersLoaded.push(id);
            document.getElementById('content_'+id).innerHTML='<p>Inhalt wird abgerufen. Bitte warten<img src="typo3conf/ext/bad_glos/res/process.gif" alt="" /></p>';
			if(bad_togglersLoadedUrl[uid] && bad_togglersLoadedUrl[uid][0]) {
				var tmp=bad_togglersLoadedUrl[uid][0].split('?');
				var url=tmp[0];
				var pars=tmp[1];
			}
            else {
				var url=bad_togglersUrl;
				var pars = "no_cache=1&tx_badglos_pi1[get]=1&tx_badglos_pi1[showUid]="+uid;
			}
//document.write(url+'?'+pars);            
            var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: tx_badglos_update});
        }
    }
//alert(id);

	var frame=document.getElementById(id);
	var content=frame.getElementsByTagName('div');
	if(content.length>0) {
		for(var i=0;i<content.length;i++) {
			if(content[i].className.lastIndexOf('csc-sh-content')>=0) {
				if((content[i].style.display=="block" || $(id).className.lastIndexOf('togFrameACT')>=0) && state!=1) {
					content[i].style.display="none"; 
					$(id).removeClassName('togFrameACT');
					$(id).addClassName('togFrame');
					break;
				}
				else {
					content[i].style.display="block";
					$(id).removeClassName('togFrame');
					$(id).addClassName('togFrameACT');
					break;
				}
			}
		}
	}
    return false;
}
var tx_badglos_pi1_loadingDivs=new Array(new Object());
function tx_badglos_update(obj) {
    var uid=parseInt(obj.getHeader('badglos'));
    if(!uid) { 
        return;
    }
	var part=parseInt(obj.getHeader('badglospart'));
	var parts=parseInt(obj.getHeader('badglosparts'));
	var xmldoc = obj.responseXML;
	var result = xmldoc.getElementsByTagName("data")[0].firstChild.data;

    var cId='content_tx_badglos_pi1_'+uid;
	var update=false;
//alert('part: '+part+' / parts: '+parts);
	if(parts>1) {
		if(!tx_badglos_pi1_loadingDivs[0][uid]) {
//alert('creat new result array: '+uid);
			tx_badglos_pi1_loadingDivs[0][uid]=new Array();
		}
		tx_badglos_pi1_loadingDivs[0][uid][part]=result;
		var partCount=0;
		var partMissing=0;
		for(var j=0;j<parts;j++) {
			if(tx_badglos_pi1_loadingDivs[0][uid][j+1]) {
//alert(tx_badglos_pi1_loading[0][uid][j+1]);
				partCount++;
			}
			else {
				partMissing=j+1;
				break;
			}
		}

		if(partCount==parts) {
			update=true;
//alert('update');		
		}
		else {
//alert('get part '+partMissing+" of parts "+parts+" from uid "+uid);
			if(bad_togglersLoadedUrl[uid] && bad_togglersLoadedUrl[uid][(partMissing-1)]) {
				var tmp=bad_togglersLoadedUrl[uid][(partMissing-1)].split('?');
				var url=tmp[0];
				var pars=tmp[1];
			}
            else {
	            var pars = "no_cache=1&tx_badglos_pi1[get]="+partMissing+"&tx_badglos_pi1[showUid]="+uid;
				var url=bad_togglersUrl;
			}
//document.write(bad_togglersUrl+'?'+pars);            
            var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: tx_badglos_update});			
		}
	}
	else {
		update=true;
	}
	
	if(update) {
	    //alert(document.getElementById(cId).tagName);
		if(parts>1) {
			result='';
			for(var i=0;i<parts;i++) {
				result+=tx_badglos_pi1_loadingDivs[0][uid][i+1];
			}
			tx_badglos_pi1_loadingDivs[0][uid]=new Array();
//alert(result);
		}
	    document.getElementById(cId).innerHTML=result;
		tx_badglos_pi1_checkLinks('content_tx_badglos_pi1_'+uid);
	}
}

try {
    if(!bad_togglersProcessed) {
       var bad_togglersProcessed=new Array();
    }
} catch(e) {
    var bad_togglersProcessed=new Array();
}

function tx_badglos_pi1_createTogglers() {
	var content;
	var i;
	var j;
	var k;
	var togglersDiv0=$('page').select('[class="tog"]');
	var togglersDiv1=$('page').select('[class="togFrameACT"]');
	var togglersDiv2=$('page').select('[class="togFrame"]');
	var togglersDiv=togglersDiv0.concat(togglersDiv1);
	togglersDiv=togglersDiv.concat(togglersDiv2);
	if(togglersDiv.length<1) return;
	for(var ii=0;ii<togglersDiv.length;ii++) {
		if(bad_togglersProcessed.indexOf(togglersDiv[ii].id)>=0) { return; }
        
        if(togglersDiv[ii].readAttribute('rel') != 'glosItem') { continue; }
		if(!togglersDiv[ii].id) { togglersDiv[ii].id=badGetNewId(); }

		if($(togglersDiv[ii].id).className.lastIndexOf('togFrame')<0 && $(togglersDiv[ii].id).className.lastIndexOf('togFrameACT')<0) {
			$(togglersDiv[ii].id).addClassName('togFrame');
		}
		if($(togglersDiv[ii].id).className.lastIndexOf('tog')<0) {
			$(togglersDiv[ii].id).addClassName('tog');
		}
		bad_togglersProcessed.push(togglersDiv[ii].id);
		content=togglersDiv[ii].getElementsByTagName('div');
		//content=$(togglersDiv[ii].id).getElementsByTagName('DIV');
//alert('NEW DIV:'+togglersDiv[ii].id+' / DIVS: '+content.length+' / '+togglersDiv[ii].tagName);
		if(content.length>0) {
			for(i=0;i<content.length;i++) {
//alert(content[i].className);				
				if(content[i].className.lastIndexOf('csc-header')>=0) {
					var headers=new Array('H1','H2','H3','H4');
					for(j=0;j<headers.length;j++) {
						var headline=content[i].getElementsByTagName(headers[j]);
						if(headline.length>0) {
							for(k=0;k<headline.length;k++) {
								if(headline[k].readAttribute('rel') != 'togLink') { continue; }
//alert(k+':'+headline[k].readAttribute('rel')+' / '+headline[k].tagName+' / '+togglersDiv[ii].id);								
								var a=headline[k].getElementsByTagName('A');							
								if(a.length<1) {
									var link='<a href="#" id="link_'+togglersDiv[ii].id+'" onclick="tx_badglos_pi1_contentToggler(this);return false;" class="togLink">'+headline[k].innerHTML+'</a>';
									headline[k].innerHTML=link;
								}
								else {
									if(!a[0].id) { a[0].id='link_'+togglersDiv[ii].id; }									
									a[0].observe('click', function(event){
										return tx_badglos_pi1_contentToggler(this);
									});
								}
							}
						}
					}
				}
			}
		}
	}
}

function tx_badglos_pi1_loadItem(id) {
	var ln=document.getElementById('anc_tx_badglos_pi1_'+id);
	if(ln) {
	var url=window.location.href.replace(/\#(.*?)$/,'');
	tx_badglos_pi1_contentToggler(document.getElementById('tx_badglos_pi1_'+id),1);
	window.location.href=url+'#'+ln.name;
	}
	return false;
}

function tx_badglos_pi1_checkLinks(id,init) {
	if(ie6 && init) return;
	var links=document.getElementById(id).getElementsByTagName('a');
	if(links.length>0) {
		for(var i=0;i<links.length;i++) {
			if(links[i].readAttribute('rel')=='gloslink') {
				var uid=links[i].id.replace(/gloslink_/,'');				
				links[i].observe('click',function(event){
					var id=this.id.replace(/gloslink_/,'');
					tx_badglos_pi1_loadItem(id);
/*					
					var ln=document.getElementById('anc_tx_badglos_pi1_'+id);
					if(ln) {
						var url=window.location.href.replace(/\#(.*?)$/,'');
						tx_badglos_pi1_contentToggler(document.getElementById('tx_badglos_pi1_'+id),1);
						window.location.href=url+'#'+ln.name;
					}
*/
					return false;
				});
				if(document.getElementById('anc_tx_badglos_pi1_'+uid)) {
					links[i].onclick = function(){return false;}
				}
			}
		}
	}
}


Event.observe(window, 'load', function() {
	/*
	if(ie6) {
		//tx_badglos_pi1_createTogglers();
		for(var i=0;i<bad_togglersLoaded.length;i++) {
			//tx_badglos_pi1_checkLinks(bad_togglersLoaded[i],false);
		}
	}
	*/
	if(document.getElementById('badglosframe')) {
		document.getElementById('badglosframe').style.height='auto';
		document.getElementById('badglosframe').style.overflow='auto';
		document.getElementById('badgloscontent').style.display='block';
		document.getElementById('badglosframetxt').style.display='none';
	}
	if(window.location.hash!='') {
		var hash=window.location.hash.replace(/#/,'');
		var a=document.getElementsByTagName('A');
		for (var i = 0; i < a.length; i++) {
			if(a[i].name && a[i].name==hash) {
				tx_badglos_pi1_contentToggler(a[i],1);
				break;
			}
		}
	}
});
 
