var locations_map = null;
var geocoder = null;

function addMarker(info, position, a_map){
    var z = new google.maps.Marker({'position': position, 'map': a_map});
    var y = new google.maps.InfoWindow({'content': info, 'map': a_map});
    google.maps.event.addListener(z, 'click', function(e){
        
        a_map.panTo(z.position);
        a_map.setZoom(11);
        y.open(a_map, z.position);
    });
}

function addClickHandler(el, pt){
    el.addEvent('click', function(e){
        window.scrollTo(0, 138);
        locations_map.panTo(pt); 
        locations_map.setZoom(11);
    })

}


function gmap1_dynmap(t){
    locations_map = t; 
    geocoder = new google.maps.Geocoder();
    
    $$('#locations .ce_accordion td').each(function(e){
      var v = e.innerHTML, gd = e.getElement('.geodata'),
          x = v.replace(/<strong>/g, '').replace(/<\/strong>/g, '').replace(/Phone:.+/i, '').replace(/\&nbsp/g, ' ').replace(/<br>/g, ' ').replace(/<br\/>/g, ' '),
          v = v.replace(/<br><br>/g, '<br>').replace(/<br\/><br\/>/g, '<br>'); 
      
      
      if(gd == null){geocoder.geocode({address: x}, function(r,s){
        if(s != 'OK') return;
        var marker = new google.maps.Marker({'position':r[0].geometry.location, 'map':t});
        var infoWindow = new google.maps.InfoWindow({content: v});
        google.maps.event.addListener(marker, 'click', function(e){t.panTo(marker.position); t.setZoom(11); infoWindow.open(t, marker);});

        
        //addMarker(v, r[0].geometry.location, t);
        addClickHandler(e, marker.position)});
      }else{
         var gda =  (gd.innerHTML != undefined) ? gd.innerHTML.replace(/\ /g,'').split(","): [];
         if(gda.length  == 2){
            var p = new google.maps.LatLng(gda[0], gda[1])
            var marker = new google.maps.Marker({'position':p, 'map':t});
            var infoWindow = new google.maps.InfoWindow({content: v});
            google.maps.event.addListener(marker, 'click', function(e){t.panTo(p ); t.setZoom(11); infoWindow.open(t, marker);});

         
            //var p = new google.maps.LatLng(gda[0], gda[1]);
            //addMarker(v, p, t);
            addClickHandler(e, p);
         }
      }
    });
    
    locations_map = t;
    
}

function geocode(location) {  
    geocoder.geocode({address: location}, geocodeComplete);
}
      
function geocodeComplete(result, status) {
    if (status != 'OK') {
        alert('Could not geocode "' + result.name + '"');
        return;
    }
    var x = result[0].geometry.location;
    if(window.scrollY > $('locations-map').getPosition().y){
            window.document.body.scrollTo(0, $('locations-map').getPosition().y - 10);
    }
    locations_map.panTo(x);
    locations_map.setZoom(11);
}

function doRefresh(){Cufon.refresh();}


window.addEvent('domready', function(e){
    
    //replaceWithCufon();
    
    //Resize Body
    /*
    var tSz = $(this).getSize();
    var bSz = $('wrapper').getSize();
    var nH = bSz.y + (tSz.y - bSz.y)   - ($('sitemap_wrapper').getSize().y | 0);
    if(tSz.y > bSz.y) $('wrapper').setStyle('height', nH +'px');
    */
    
    //Sitemap
    var visibleSiteMap = true;
    function siteMapDisplayed(){
        //console.log(parseInt($('sitemap').getStyle('top').substring(0, $('sitemap').getStyle('top').length-2)));
        return (parseInt($('sitemap').getStyle('top').substring(0, $('sitemap').getStyle('top').length-2)) < 0) ;
    }
    
    var cfooter = $('sitemap_wrapper').getSize().y
    var fx1 = new Fx.Tween($('sitemap'),{duration: 200}), h2 =  $('sitemap').getSize().y;
    fx1.addEvent('complete', function(e){
        $('wrapper').setStyle('padding-bottom', visibleSiteMap ? 0: h2);
        if(!siteMapDisplayed()) $('sitemap').setStyle('display', 'none');
    });
    
    var sm_trigger = 'sitemap_wrapper';

    function toggleSitemap(e){
        //console.log(e.target);
        if(e.target.get('tag') == 'a') return;
        if(!siteMapDisplayed()) $('sitemap').setStyle('display', 'block');

        var h = $('sitemap').getSize().y;
        fx1.start("top", (visibleSiteMap ? -h : '31px'));
        visibleSiteMap = !visibleSiteMap;
        
        
        e.preventDefault();
    }
    $(sm_trigger).addEvent('click', toggleSitemap);
   
   
   //productpage_image resize
   $$('#media_data .image_conatainer').each(function(y){
        var md_w = $('media_data').clientWidth;
        var x = x.getElement('img');
        var f = x.getAttribute('width') / md_w;
      
        if(f < 1) return;
        var n_s = {w: x.getAttribute('width') / f, h :x.getAttribute('height') / f};
        y.setStyles({width: n_s.w, height: n_s.h});
      
        x.setAttribute('width', n_s.w);
        x.setAttribute('height', n_s.h);
    });
   
   
   //Modify Product Tables
   $$('tr').each(function(e, i){
      var l = null;
      var pp = ($$('.productpage').length == 1);
      
      //console.log(pp);
      
      $(e).getChildren().each(function(f,i2, ac){

        //Special Layout for Productpages
        if(pp && (i2<2)) return;
        if(pp && (i==0)){f.setStyle('width', 70/(ac.length-2)+'%');}
        
        //Repace 10Exxx With 10E<super>xxx</super>
        /*
        var r = String.from(f);
        if(r.search(/10E.+/g) != -1){
            f.innerHTML = r.replace(/10E/g, '10<super>')+'</super>';
        }
        */
        
        if(l == null) {l = f; return;}
        
        //Get Strings remove all kind of Spaces
        /*
        var t1 = String.from(l.innerHTML).replace(/(\s|\&nbsp;)/g, "");
        var t2 = String.from(f.innerHTML).replace(/(\s|\&nbsp;)/g, "");
        */
        
        //Get Strings
        var t1 = String.from(l.innerHTML);
        var t2 = String.from(f.innerHTML);
        

        
        
        if(t2 === '' || t1 === t2) {
          var c = parseInt(l.getAttribute('colspan')) || 1;
          l.setAttribute('colspan', ++c);
          l.setStyle('text-align', 'center');
          $(l).addClass('spand');
          
          $(f).destroy();
        }
        else l = f;
      });
   });
   
   $$('.ce_accordion').each(function(x){
      var cs = $(x).get('class').split(" ");
      var ws = Array.from(cs).filter(function(f){return (f.substring(0,1) == 'w');});
      
      ws.each(function(y){
         var so = {fc: y.substring(0,1), nc: y.substring(1), cols: y.substring(1).split('_')};
         if(so.cols.length > 1){
           x.getElements('td').each(function(z, i){
              var lc = so.cols[i].substring(so.cols[i].length - 1);
              var al = ( lc == 'l') ? 'left' : ((lc == 'r') ? 'right' : ((lc == 'c') ? 'center' : false));
              z.setStyle('width',  so.cols[i].substring(0, so.cols[i].length - (al ? 1 : 0))+'%');
              if(al !== false) z.setStyle('text-align', al);
            });
         }
      });
   });

  
  $$(".ce_accordion .toggler").addEvent('click', function(e){
      setTimeout("doRefresh()", 400);
  });

/*
  $$('#locations .ce_accordion .accordion td').addEvent('click', function(e){
      var x = e.target.innerHTML.replace(/<strong>.+<\/strong>/i, '').replace(/Phone:.+/i, '').replace(/\&nbsp/g, ' ').replace(/<br>/g, ' ').replace(/<br\/>/g, ' '), gd = e.target.getElement('.geodata');
      console.log(gd);
      
      if(gd == null) geocode(x);
      else {
        var gda =  gd.innerText.replace(/\ /g,'').split(","), p = new google.maps.LatLng(gda[0], gda[1]);
        locations_map.panTo(position); locations_map.setZoom(11);
      }
       
  });
*/    
  $$('#locations .toggler').each(function(el, ix, ar){
    var d = {l: new google.maps.LatLng(46.79968, 13.4928), z: 3};
    if(ix == 1) d = {l: new google.maps.LatLng(46.79968, 13.4928), z: 1};
    
    el.addEvent('click', function(el2){
        locations_map.panTo(d.l);
        locations_map.setZoom(d.z);
    });
  });
    
  //Setze Platzhalter   
    
  $$('input.text, textarea, .piccap input[type=text], #mc_embed_signup input').each(function(e){
    new Form.Placeholder(e.get('id'));
  });
  
  
  
  //ios orientation change
  //console.log(window.getDocument().body.get('class'));
  if(Browser.Platform.ios && Browser.version < 5.1){
    //alert(Browser.version);
    /*
    function newPos(){$('sitemap_wrapper').setStyle('top', window.innerHeight-31+window.scrollY+'px');}
    */
    /*
    $(window).addEvent('orientationchange', newPos);
    $(window).addEvent('scroll', newPos);
    */
    
    
   // $('sitemap_wrapper').setStyle('position', 'absolute');
    //$('sitemap_wrapper').setStyle('bottom', '-51px');
    
  }
  
  
});


//Cufon

Cufon.replace('#header strong', {fontWeight: 'bold'});
Cufon.replace('h1', {fontStretch: 'condensed'});
Cufon.replace('#left a, #left span', {fontStretch: 'condensed', hover: true});
Cufon.replace('.mod_newslist a', {hover: true});
Cufon.replace('#mc_embed_signup label', {fontWeight:'bold'});

