/************************************************************************************************************
Ajax dynamic content
Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland
************************************************************************************************************/	

var enableCache=true;
var jsCache=new Array();
var dynamicContent_ajaxObjects=new Array();
function stripTags(strMod){
	if(arguments.length<3){strMod=strMod.replace(/<\/?(?!\!)[^>]*>/gi,'');}
	else{
		var IsAllowed=arguments[1];var Specified=eval("["+arguments[2]+"]");
		if(IsAllowed){
			var strRegExp='</?(?!('+Specified.join('|')+'))\b[^>]*>';
			strMod=strMod.replace(new RegExp(strRegExp,'gi'),'');
		} else {
			var strRegExp='</?('+Specified.join('|')+')\b[^>]*>';
			strMod=strMod.replace(new RegExp(strRegExp,'gi'),'');
		}
	}
	return strMod;
}
function strpos(haystack,needle,offset){
	var i=(haystack+'').indexOf(needle,(offset?offset:0));
	return (i===-1)?false:i;
}

function ajax_showContent(divId,ajaxIndex,url){
	var targetObj=document.getElementById(divId);
	if(!targetObj){return false;}
	var content=dynamicContent_ajaxObjects[ajaxIndex].response;
	if(!content){return false;}
	content=content.split('<!-- CMSCONTENTSTART -->')[1];
	if(!content){return false;}
	content=content.split('<!-- CMSCONTENTEND -->')[0];
	content=content.replace(/(\<h3\>)(.*)(\<\/h3\>)/i,'$2');
	content=stripTags(content);
	content=content.substr(0,120+1).split(' ');
	content[content.length-1]='';
	content='<p>'+content.join(' ').replace(/\s$/,'')+'...<br /><a href="'+url+'" class="specialLink">» weiterlesen</a></p>';
	targetObj.innerHTML=content;
	if(enableCache){
		jsCache[url]=content;
	}
	dynamicContent_ajaxObjects[ajaxIndex]=false;
	ajax_parseJs(targetObj);
}

function ajax_loadContent(divId,url){
	obj=document.getElementById(divId);
	if(!obj){return false;}
	if(enableCache&&jsCache[url]){
		var content=jsCache[url];
		if(!content){return false;}
		content=content.split('<!-- CMSCONTENTSTART -->')[1];
		if(!content){return false;}
		content=content.split('<!-- CMSCONTENTEND -->')[0];
		content=content.replace(/(\<h3\>)(.*)(\<\/h3\>)/i,'$2');
		content=stripTags(content);
		content=content.substr(0,120+1).split(' ');
		content[content.length-1]='';
		content='<p>'+content.join(' ').replace(/\s$/,'')+'...<br /><a href="'+url+'" class="specialLink">» weiterlesen</a></p>';
		obj.innerHTML=content;
		ajax_parseJs(obj);
		evaluateCss(obj);
		return;
	}
	var ajaxIndex=dynamicContent_ajaxObjects.length;
	obj.innerHTML='<p>Lade Daten - bitte warten Sie einen Moment.</p>';
	dynamicContent_ajaxObjects[ajaxIndex]=new sack();
	if(url.indexOf('?')>=0){
		dynamicContent_ajaxObjects[ajaxIndex].method='GET';
		var string=url.substring(url.indexOf('?'));
		url=url.replace(string,'');
		string=string.replace('?','');
		var items=string.split(/&/g);
		for(var no=0;no<items.length;no++){
			var tokens=items[no].split('=');
			if(tokens.length==2){
				dynamicContent_ajaxObjects[ajaxIndex].setVar(tokens[0],tokens[1]);
			}
		}
		url=url.replace(string,'');
	}
	dynamicContent_ajaxObjects[ajaxIndex].requestFile=url;
	dynamicContent_ajaxObjects[ajaxIndex].onCompletion=function(){
		ajax_showContent(divId,ajaxIndex,url)
	};
	dynamicContent_ajaxObjects[ajaxIndex].runAJAX();
}
function ajax_parseJs(obj){
	var scriptTags=obj.getElementsByTagName('SCRIPT');
	var string='';
	var jsCode='';
	for(var no=0;no<scriptTags.length;no++){
		if(scriptTags[no].src){
			var head=document.getElementsByTagName("head")[0];
			var scriptObj=document.createElement("script");
			scriptObj.setAttribute("type","text/javascript");
			scriptObj.setAttribute("src",scriptTags[no].src);
		} else {
			if(navigator.userAgent.toLowerCase().indexOf('opera')>=0){
				jsCode=jsCode+scriptTags[no].text+'\n';
			} else {jsCode=jsCode+scriptTags[no].innerHTML;}
		}
	}
	if(jsCode){ajax_installScript(jsCode);}
}
function ajax_installScript(script){
	if(!script){return;}
	if(window.execScript){
		window.execScript(script);
	} else if(window.jQuery&&jQuery.browser.safari){
		window.setTimeout(script,0);
	} else {
		window.setTimeout(script,0);
	}
}
function evaluateCss(obj){
	var cssTags=obj.getElementsByTagName('STYLE');
	var head=document.getElementsByTagName('HEAD')[0];
	for(var no=0;no<cssTags.length;no++){
		head.appendChild(cssTags[no]);
	}
}

