/// define overal vars //////////////////////////////////////////
var resObjekt;
resObjekt = getXMLHttpRequest();

var showtimer;
var fitflashtimer;
var win_height;
var flashmaxheight;
var flashmaximised = true;
var changeflash;
var animflash = false;

var loading;

window.addEvent('load', function(){
	initialize();/*RSH Framework*/
	checkBookmarkedVisit();
	redefineAjaxLinks();
});



/// ajax //////////////////////////////////////////

// initialize the DHTML History framework (dhtmlHistory.js)
function initialize(){
	dhtmlHistory.initialize(); // subscribe to DHTML history change events
        dhtmlHistory.addListener(historyChange);
}
/** callback to receive history change events. */
function historyChange(idParams) {
	if(idParams){
		newLocation='index.php?id='+idParams;
		//location.href = newLocation;
		
		//location.href = idParams; //use this if staticDocuments is activated
		sndReq(idParams);
	}
}
function checkBookmarkedVisit(){//workaround for bookmark visits forst
	if(window.location.hash){
		var hashString= window.location.hash;
		var idParams=hashString.replace(/#/,"");
		//var newLocation='index.php?id='+idParams;
		var newLocation='http://www.carroux-caffee.de/'+idParams; //use this if simulateStaticDocuments is activated
		//location.href = newLocation;
		sndReq(idParams);
	}
}
function sndReq(linkvar, hashvar) {


	test = /\?id=/.test(linkvar); //regex test: is ?id= substring of linkvar?
	if(test){//simulateStaticDocuments is NOT activated
		var stringArray = linkvar.split('?id=');	
		var idParams = stringArray[1];
	}else
	if(!test){//simulateStaticDocuments IS activated
		test2 = /\//.test(linkvar);//regex test: is / a substring of linkvar?
		if(test2){//linkvar is complete link (IE)
			var stringArray = linkvar.split('/');
			var lastPos=(stringArray.length)-1;
			idParams = stringArray[lastPos];
		}else
		if(!test2){//linkvar is NOT complete link (Firefox etc)
			idParams=linkvar;
		}
	}
	
	
	dhtmlHistory.add('#'+idParams, true);//RSH framework, extract page id and add to history-->enables backbutton+history	
	
	
	
	//*********** overall object detection at the start of the script *****************
	var supportCheck=document.createElement && document.getElementsByTagName && getXMLHttpRequest();
	if(!supportCheck) return;	
	//*********** END overall object detection at the start of the script *************

	resObjekt.open('get','typo3conf/ext/tut_unobtrusiveajax/media/parserscript.php?linkurl=' + linkvar + '&linkhash='+hashvar,true);//asynchron
	resObjekt.onreadystatechange = handleResponse;
	resObjekt.send(null);
	
	// content ausblenden
	var ajaxHolder = document.getElementById("container");
	loading = new Fx.Style(ajaxHolder, 'opacity', {duration:200});
   	loading.start(.5);
}

/** Change partial page content with Ajax ***************************************/ 
function getXMLHttpRequest()
{
		if (window.XMLHttpRequest){
			//XMLHttpRequest for Firefox, Opera, Safari, ev. IE7
			return new XMLHttpRequest();
		} else
		if (window.ActiveXObject){
			try{
				//XMLHttp (new) for IE
				return new ActiveXObject("Msxml2.XMLHTTP");
			} 	catch(e) {
				try{
					//XMLHttp (old) for IE
					return new ActiveXObject("Microsoft.XMLHTTP");
				} 	catch(e){
					return null;
				}
			}
		}
		return null;
		
}

function handleResponse() {
	if(resObjekt.readyState == 4){
		var response=resObjekt.responseText;
		var stringArrayContent = response.split('xxSPLITRESPONSEHERExx');
		var responseContent = stringArrayContent[0];
		var responseTitle = stringArrayContent[1];
		
		var ajaxHolder = document.getElementById("container");
		// alles zuruecksetzen...
		clearInterval(showtimer);
		
		ajaxHolder.innerHTML = responseContent;
		
		


		// ie 6 ausgleich
		var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;

		if (IE6) {

			//alert ("ie6");
			var footer = document.getElementById("info");
			
			var contentheight = ajaxHolder.offsetHeight;
			scrolloffset = document.documentElement.scrollTop;
			myHeight = document.documentElement.clientHeight;
			ausgleich =  336 + contentheight - scrolloffset;

			if (ausgleich > myHeight) {
				// wenn content laenger als fenster plus scroll
				footer.style.top = 336 + contentheight + "px";
			}
			else {
				footer.style.top =  myHeight - 50 + scrolloffset + "px";
			}
		
		}
		

		document.title= "Carroux Caffee – " + responseTitle;

		
		// just do the javascripts		
		//evalScript(responseContent);
		redefineAjaxLinks();
		loading = new Fx.Style(ajaxHolder, 'opacity', {duration:200});
   		loading.start(1);
	}
		
}

function redefineAjaxLinks() {
// define ajax links //////////////////////////////////////////
	var ajaxlinks = $$('.ajaxLink');
	ajaxlinks.each(function(element) {
		var replacement = new Element('a');
		var linkvar=element.getAttribute("href");
		
		
		//var linktitle=element.getAttribute("title");
		var linkclass=element.className;
		replacement.setProperties({
    			href: 'javascript:void(0);'
    			//href: 'javascript:sndReq(' + linkvar +');',
			//title: linktitle
		});
		replacement.className = linkclass;

		// hashvar fuer tt_news
		var hashvar = "";

		replacement.addEvent('click', function(){sndReq(linkvar, hashvar)});
		var a_html = element.getFirst();
		/// if <a> contains <html>
		if (a_html  != null) {
			//replacement.setHTML(a_html);
			a_html.injectInside(replacement);
		}
		/// if <a> contains only text
		else {
			linktext=element.firstChild.nodeValue;
			replacement.setText(linktext);
			//replacement.set('text', linktext);

		}
		element.replaceWith(replacement);
	});
	

	// tt_news links bearbeiten
	var ajaxlinksNews = $$('span.ajaxLinkSpan a');
	ajaxlinksNews.each(function(element) {
		var replacement = new Element('a');
		var linkvar=element.getAttribute("href");
		// hash extrahieren
		var hashvar = "";
		var parts = linkvar.split("?");
		linkvar = parts[0];
		hashvar = parts[1];
		// hashvar umkodieren
		// hash? oder interne seite?
		if (hashvar) {
			hashvar = hashvar.replace(/&/g, "%");
		}
		else {
			hashvar = "";
		}
				
		//var linktitle=element.getAttribute("title");
		var linkclass=element.className;
		replacement.setProperties({
    			href: 'javascript:void(0);'
		});
		replacement.className = linkclass;
		
		var a_html = element.getFirst();
		/// if <a> contains <html>
		if (a_html  != null) {
			a_html.injectInside(replacement);
		}
		/// if <a> contains only text
		else {
			linktext=element.firstChild.nodeValue;
			replacement.setText(linktext);

		}
		var externalLink = linkvar.indexOf("http://");
		// nur ersetzen wenn kein externer link
		if (externalLink == -1) {
			replacement.addEvent('click', function(){sndReq(linkvar, hashvar)});
			element.replaceWith(replacement);
		}
		else {
			replacement.setProperties({
    			href: linkvar, target: '_blank'
			});
			element.replaceWith(replacement);
		}
	});

	// tt_news pagebrowser links bearbeiten
	var ajaxlinksPagebroser = $$('div.tx-ttnews-browsebox a');
	ajaxlinksPagebroser.each(function(element) {
		var replacement = new Element('a');
		var linkvar=element.getAttribute("href");
		// hash extrahieren
		var parts = linkvar.split("?");
		linkvar = parts[0];
		var hashvar = parts[1];
		// hashvar umkodieren
		if (hashvar) {
			hashvar = hashvar.replace(/&/g, "%");
		}
				
		//var linktitle=element.getAttribute("title");
		var linkclass=element.className;
		replacement.setProperties({
    			href: 'javascript:void(0);'
		});
		replacement.className = linkclass;
		replacement.addEvent('click', function(){sndReq(linkvar, hashvar)});
		var a_html = element.getFirst();
		/// if <a> contains <html>
		if (a_html  != null) {
			a_html.injectInside(replacement);
		}
		/// if <a> contains only text
		else {
			linktext=element.firstChild.nodeValue;
			replacement.setText(linktext);

		}
		element.replaceWith(replacement);
	});
	
	



}


function evalScript(responseContent){
alert ("evalscript");
alert (responseContent);
	var script, scripts;
	scripts = [];
	var script1 = responseContent.split('<script type="text/javascript"><!--');
	if (script1[1]) {
		var script2 = script1[1].split('//--></script>');
		scripts = script2[0];
		ajax_script = scripts;
alert (scripts);
		if (scripts) (window.execScript) ? window.execScript(scripts) : window.setTimeout(scripts, 0);
	}
}






/// animations //////////////////////////////////////////

function minimizeflash() {
	
}
function maximizeflash() {
	
}

function showsubnav(element) {
	clearInterval(showtimer);
	var ulpointer = $E('ul', element);
	ulpointer.style.display = "block";
	
	if (document.getElementById('active')) {
		var actulpointer = $E('ul', document.getElementById('active'));
		if (actulpointer) {
			actulpointer.style.display = "none";
		}
	}
	if (document.all && document.getElementById || navigator.userAgent.match(/iPhone/i)) {
		/*pseudohover ie and iphone*/
		element.className += " over";
	}
}
function hidesubnav(element) {
	clearInterval(showtimer);
	var ulpointer = $E('ul', element);
	ulpointer.style.display = "none";
	if (document.getElementById('active')) {
		showtimer = setInterval("doShow()",500);
	}
	if (document.all && document.getElementById || navigator.userAgent.match(/iPhone/i)) {
		/*pseudohover ie and iphone*/
		element.className = element.className.replace(" over", "");
	}
}
function hideactivesubnav(element) {
	clearInterval(showtimer);
	if (document.getElementById('active')) {
		var actulpointer = $E('ul', document.getElementById('active'));
		if (actulpointer) {
			actulpointer.style.display = "none";
		}
	}
	if (document.all && document.getElementById || navigator.userAgent.match(/iPhone/i)) {
		/*pseudohover ie and iphone*/
		element.className = "over";
	}
	
}
function showactivesubnav(element) {
	clearInterval(showtimer);
	if (document.getElementById('active')) {
		showtimer = setInterval("doShow()",500);
	}
	if (document.all && document.getElementById || navigator.userAgent.match(/iPhone/i)) {
		/*pseudohover ie and iphone*/
		element.className = "";
	}
	
}

function doShow() {
	clearInterval(showtimer);
	var actulpointer = $E('ul', document.getElementById('active'));
	actulpointer.setStyle('opacity', '0');
	var fadein = new Fx.Style(actulpointer, 'opacity', {duration:500});
   	fadein.start(1);
	actulpointer.style.display = "block";
}