/*!
 * Author: Jan Bastian - {.- keimzelle - http://www.keimzelle.eu
 * Copyright: 2011 - Jan Bastian
 * Date: 2011-09-21
 */
jQuery.log=function($msg){if(window.console){console.debug($msg);}else{$('body').append('<div class="log" style="display: none;">'+$msg+'</div>');}};jQuery.fn.extend({url:function($str){$str=escape(unescape($str));var returnVal=[];var urlParts={};var $d=null;if($(this).attr("nodeName")=="#document"){$d=window.location;}
else{$d=$(this).attr('href');}
if('undefined'===$str){hash=$d.hash;host=$d.host;hostname=$d.hostname;href=$d.href;pathname=$d.pathname;port=$d.port;protocol=$d.protocol;search=$d.search;http=false;get=false;url=false;path=false;file=false;$p=$d.href.toString().split('?');$p2=$p[0].split('#');url=$p2[0];if(url.indexOf("http://")>-1){http=true;}
if($p2[1]){hash=$p2[1];}
$p3=$p2[0].replace($d.protocol+'//','').split('/');host=$p3[0];$fp=$p2[0].replace($d.protocol+'//','').replace(host,'');$pp=$fp.split('/');$pplen=$pp.length;if(file===$pp[($pplen-1)]!=''){file=$pp[($pplen-1)];}
path=$fp.replace('/'+file,'');if($d.search){search=$d.search.split('?')[1];}
if(search!=''){getArray=search.replace('&amp;','&').split('&');get={};for(var i=0;i<getArray.length;i++){var $p=getArray[i].split("=");if(($p[1]!='true')&&($p[1]!='false')){$p[1]='"'+$p[1]+'"';}
eval('get.'+$p[0]+' = '+$p[1]);}}
$uP={};$uP.url=url;$uP.protocol=protocol;$uP.http=http;$uP.hash=hash;$uP.host=host;$uP.hostname=hostname;$uP.path=path;$uP.file=file;$uP.get=get;$uP.search=search;$uP.port=port;return $uP;}
else
{var returnVal="Hallo Wach!";return returnVal;}}});(function($){$.fn.checkloadrun=function(options){var $o=$.extend({},$.fn.format.defaults,options);_init(this,$o);};$.runsafe=function($runfunc){try{eval($runfunc);}catch(e){$.log('call of "$.runsafe('+$runfunc+')" failed');}};$.preloadjs=function(){var isjs=false;$('script').each(function(){if($(this).attr('src').indexOf('?load')!=-1){var js=$(this).attr('src');var url=js.replace(js.split('/')[(js.split('/').length)-1],'');var jsarr=js.split('=')[1].split(',');_loop(jsarr,url);isjs=true;}});return isjs;};$.setinc=function($jsfilename){$('script').each(function(){if($(this).attr('src').indexOf($jsfilename)!=-1){var js=$(this).attr('src');$inc=js.split($jsfilename)[0];}});return $inc;};$.loadjs=function(js,options){var url='';var jsarr=js.split(',');_loop(jsarr,url);};$.addCSS=function(css){var media='all';if(css.split('@')[1]){media=css.split('@')[1];}
var url=css.split('@')[0];var cssarr=url.split(',');for(var _i=0;_i<cssarr.length;_i++){$('head').children(':last').after('<link rel="stylesheet" type="text/css" href="'+url+'" media="'+media+'" />');}};$.checkloadrun=function($jsfiles,$runfunc,$opt){var $o=$.extend({},$.fn.checkloadrun.defaults,$opt);_init(this,$o);var $arrjs=$jsfiles.split(',');var $arrload=[];if($o.source===null){$o.source='';}
var j=0;for(j=0;j<$arrjs.length;++j){valid=true;for(k=0;k<$('script[src]').length;++k){$arrjs[j]=$arrjs[j].replace(' ','');if($($('script[src]')[k]).attr('src').indexOf($arrjs[j])!=-1){valid=false;}}
if(valid===true){$arrload.push($o.source+$arrjs[j]);}}
var checkload=0;var loadlen=$arrload.length;for(j=0;j<$arrload.length;++j){$.getScript($arrload[j],function(){checkload=checkload+1;if(checkload==loadlen){$.runsafe($runfunc);}});}};function _require(src){document.write('<script type="text/javascript" src="'+src+'"></script>');}
function _getScript(src){$.getScript(src);}
function _loop(jsarr,url){for(var _i=0;_i<jsarr.length;_i++){_require(url+(jsarr[_i]).replace(' ','').replace('.js','')+'.js');}}
function _init($obj,$o){}
$.fn.checkloadrun.defaults={source:null};})(jQuery);function isEmpty(object){for(var i in object){return true;}
return false;}
(function($){$.fn.controller=function(options){$o=$.extend({},$.fn.controller.defaults,options);_init(this,'',$o);};function _init($obj,value,$o){$(document).ready(init);}
var PageModel=(function(){this.setpaths=(function(){url=$(document).url();var expr="'link[href*="+$o.cssfind+"]'";if($o.cssfind!==false&&$(expr).length>0){$o.cssinc=$($(expr)[0]).attr('href').split($o.cssfind)[0];}else{$pp=$($('link[rel*=stylesheet]')[0]).attr('href').split('/');$pplen=$pp.length;if(file===$pp[($pplen-1)]!==''){file=$pp[($pplen-1)];}
$o.cssinc=$($('link[rel*=stylesheet]')[0]).attr('href').replace(file,'');}
if($o.cssurl===false){if(window.location.protocol=='file:'){$o.cssurl=$o.cssbackup;}else{$o.cssurl=$o.cssinc;}}
expr='script[src*="'+$o.jsfind+'"]';if($o.jsfind!==false&&$(expr).length>0){$o.jsinc=$($(expr)[0]).attr('src').split($o.jsfind)[0];}else{$pp=$($('script[type*=javascript]')[0]).attr('src').split('/');$pplen=$pp.length;if(file===$pp[($pplen-1)]!==''){file=$pp[($pplen-1)];}
$o.jsinc=$($('script[type*=javascript]')[0]).attr('src').replace(file,'').split('?')[0];}
if($o.jsinc.indexOf("http://")==-1){$o.jsinc=this.makepath($o.jsinc,'js');}
if($o.jsurl===false){if(window.location.protocol=='file:'){$o.jsurl=$o.jsbackup;}else{$o.jsurl=$o.jsinc;}}});this.makepath=(function($str,$type){var dirdepth=$str.split('../').length-1;var deplen=url.path.split('/').length-1;$str=this.cutslashes($str.split('../')[dirdepth]);var relpath=this.cutslashes(url.path.split(url.path.split('/')[deplen-dirdepth])[0]);if(relpath!==''){relpath+='/'};$str=url.protocol+'//'+url.host+'/'+relpath+$str+'/';$str=this.nodouble($str);return $str;});this.cutslashes=(function($str){if($str.charAt(0)=='/'){$str=$str.substr(1,$str.length-1);}
if($str.charAt($str.length-1)=='/'){$str=$str.substr(0,$str.length-1);}
return $str;});this.nodouble=(function($str){if($str.charAt($str.length-2)=='/'){$str=$str.substr(0,$str.length-1);}
return $str;});this.checktoload=(function($arr){for(var i=0;i<$arr.length;++i){var $isvalid=false;try{if($arr[i].dom){if($($arr[i].dom).length>0){$isvalid=true;}}}catch(e){}
try{if($arr[i].hash){if($arr[i].hash===url.hash){$isvalid=true;}}}catch(e){}
try{if($arr[i].get){if(eval('url.get.'+$arr[i].get)!==undefined){$isvalid=true;}}}catch(e){}
try{if($arr[i].anchor){var $str="*[href=#"+$arr[i].anchor+"]";$("body").delegate($str,"click",$arr[i],function(evt){Page.load(evt.data);return false;});}}catch(e){}
if($isvalid===true){this.load($arr[i]);$o.domlookup[i].jsfiles='undefined';}
try{if($arr[i].live){var $e=$arr[i];$.getScript($o.jsurl+'jquery.livequery.js',function(){$($e.live).livequery(function(){Page.load($e);});});}}catch(e){}}});this.load=(function($obj){if($obj.jsfiles){if($obj.jsfiles!=='undefined'){$.checkloadrun($obj.jsfiles,$obj.run,{source:$o.jsurl});}}
if($obj.css){try{$o.cssurl=this.cutslashes($o.cssurl);if($o.cssurl.indexOf("http://")==-1){$o.cssurl=this.makepath($o.cssurl,'css');}
$.addCSS($o.cssurl+'/'+$obj.css);}catch(e){$o.cssbackup=this.cutslashes($o.cssbackup);$.addCSS($o.cssbackup+'/'+$obj.css);}}});});var PageController=(function(){var privateVar=false;return{init:(function(){Page=new PageModel();$('body').addClass('js '+$o.pluginclass).removeClass('nojs');Page.setpaths();Page.checktoload($o.domlookup);path=$o;}),load:(function($params){this.load($params);})};})(),init=(function(){PageController.init();});$.fn.controller.defaults={defjs:'config.js',ctrl:'ctrl_',jsurl:false,jsinc:false,jsbackup:"http://js.keimzelle.eu",jsfind:"controller.js",cssurl:false,cssinc:false,cssbackup:"http://css.keimzelle.eu",cssfind:false,domlookup:[{get:'debug',jsfiles:'debug.js'}],pluginclass:"controllerplugin"};})(jQuery);var $config={};if($.preloadjs()===false){var $cd=$().controller.defaults;var $j='script[src*="'+$cd.jsfind+'"]';$($j).attr('src',$($j).attr('src')+'?load='+$cd.defjs);$.preloadjs();$(document).ready(function(){if(isEmpty($config)===true){$().controller($config);}else{if($('body[class*="'+$cd.ctrl+'"]').length!==0){var $k=$('body[class*="'+$cd.ctrl+'"]').attr('class').split($cd.ctrl)[1]+'.js';$.getScript($($j).attr('src').split($cd.jsfind)[0]+$k);}else{};}});};
