/**
 * As long as the cms is not loaded
 */
app_base_url='http://www.wg-ing.eu/'; 
/**
 * Global
 */
current_page='';
/**
* Ajax request header
*/
$.ajaxSetup({
//    headers:{'HTTP_X_REQUESTED_WITH':'xmlhttprequest'}
 });
/**
 * Initialize the page
 */
$(function(){
    set_current_page();
    init_navi();
    init_search();
    init_switch_language();
    init_link_override();
});
/**
 * Switch external Links to target blank
 */
function init_link_override(){
    $('a').live('click',function(){
        if ($(this).attr('href')) {
          if($(this).attr('href').match(/:/)) $(this).attr('target','_blank');
        }
    });
}
/**
 * parses the url and sets the current page
 */
function set_current_page(){
    current_page=document.location.href.split('?')[0].substr(app_base_url.length);
}
/**
 * Asynchroneous loading of page content
 */
function init_navi(){
    var loadPage=function(e){
       e.preventDefault();
       if(!$('body').hasClass('browse')) return;
       current_page=$(this).attr('href');
       $('#navigation a.active').removeClass('active');
       $('#navigation a[href="'+current_page+'"]').addClass('active');
     
     var url=app_base_url+$(this).attr('href')+"?ajax=1";
	$.get(url,{},function(ret){
        	   var node=$(ret);
         	 $('#col_left').html(node);
         	 node.find('a:not(.noLoad)').click(loadPage);
         	 init_left();
       });
	};   
    $('#col_right a,#col_left a:not(.noLoad)').click(loadPage);
    init_left();
}
/**
* Left colums scripts
*/
function init_left(){
   $('.teaser_img').hover(function(){
       $(this).find('.hover_info').fadeIn(400);
       $(this).find('img').animate({
             width:($(this).width()*1.04)+'px',
            'margin-left':'-2%',
             height:($(this).height()*1.04)+'px',
            'margin-top':'-2%'
       });
   },function(){
      $(this).find('.hover_info').fadeOut(400);
      $(this).find('img').animate({
            width:450,
            'margin-left':'0%',
             height:278,
            'margin-top':'0%'
       });
   });
   init_maps();
}
/**
* Googleish instant search
*/
function init_search(){
   $('#search_term').keyup(function(){
       if($(this).val().length){
           $.get(app_base_url+'search?search_term='+$(this).val(),{},function(ret){
              $('#col_left').html(ret);
           });
       }else{
            $.get(app_base_url+current_page,{},function(ret){
              $('#col_left').html(ret);
           });
       }
   }).focus(function(){
       if($(this).val()==$(this).attr('empty_val')) $(this).val('');
   }).blur(function(){
       if($(this).val()=='') $(this).val($(this).attr('empty_val'));
   });
   $('#search_form').submit(function(e){
      e.preventDefault();
   });
}
/**
* Language Selection
*/
function init_switch_language(){
   $('#choose_lang li a').click(function(e){
        e.preventDefault();
        document.location.href=app_base_url+current_page+'?lang='+$(this).parent().attr('lang');
   });
}
/**
 * Maps
 */
function init_maps(){
    $('.map_mod table').each(function(){
        init_map($(this));
    });
};
function init_map(table){
 var mapTdGroups={};
    table.find('td[type!=a][type!=b]').each(function(){
        var type=$(this).attr('type');
        if(!mapTdGroups[type])  mapTdGroups[type]=[];
        mapTdGroups[type].push($(this));
    }).hover(function(){
        var g=mapTdGroups[$(this).attr('type')];
        for(var i in g) g[i].addClass('hover');
    },function(){
        var g=mapTdGroups[$(this).attr('type')];
        for(var i in g) g[i].removeClass('hover');
    });
    table.find('td.clickable').click(function(){
        if(isNaN($(this).attr('type'))){
            //Sub Map
            var get_url=app_base_url+'maps/get_markup_by_id/'+$(this).attr('sub_map_id');
            table.parent().fadeTo(500,0.2);
            $.get(get_url,{},function(ret){
               var newTable=$(ret);
               table.parent().replaceWith(newTable).hide().fadeIn(500);
               init_map(newTable.find('table'));
            });
        }else{
            //Project
            $.get(app_base_url+'projects/get_name_by_id/'+$(this).attr('type'),{},function(name){
                document.location.href=app_base_url+$.trim(name);
            });
        }
    });
}

