/*

  ****************************************
    living-e AG
    Strategic business unit "webEdition"
    Author: Dirk Einecke
  ****************************************

*/

/* PRESITE */

function write_presite_link(language) {
  //document.write('<div class="presite_link"><a style="color: black;" href="javascript:open_ad(\''+language+'\')"><img src="/'+language+'/images/Presite-Screen.jpg"/><br/><small>Open Presite »»</small></a></div>');
}

function open_ad(language) {
  $('content').setStyle({
    display: 'none'
  });
  $('footer').setStyle({
    display: 'none'
  });
  var arrayPageSize = getPageSize();
  var doc_width = arrayPageSize[0];
  var doc_height = arrayPageSize[1];
  var iframe_margin_lr = (doc_width - 925) / 2;
  //var iframe_margin_top = ((doc_height - 640) / 2) - 10;
  var iframe_margin_top = 0;
  switch(language) {
    case 'de':
      node_overlay = Builder.node('div', {id: 'presiteoverlay', style: 'position:absolute;top:0;left:0;z-index:90;width:100%;height:500px;background-color:#000;display:none;width:'+doc_width+'px;height:'+doc_height+'px'});
      obj_iframe = Builder.node('iframe', {src: '/de/presite/index.php', style: 'margin: '+iframe_margin_top+'px '+iframe_margin_lr+'px 0 '+iframe_margin_lr+'px', width: '925', height: '610', scrolling: 'no', frameborder: '0', marginheight: '0', marginwidth: '0'});
      obj_close = Builder.build('<div style="text-align:right;width:925px;margin: '+iframe_margin_top+'px '+iframe_margin_lr+'px 0 '+iframe_margin_lr+'px"><a href="javascript:;" onclick="close_ad()" style="margin-right: 110px;color:#FFFFFF;font: 12px \'Lucida Grande\',Verdana,Arial,Sans-Serif;">weiter zur webEdition-Site »»</a></div>');
      break;
    case 'en':
      node_overlay = Builder.node('div', {id: 'presiteoverlay', style: 'position:absolute;top:0;left:0;z-index:90;width:100%;height:500px;background-color:#000;display:none;width:'+doc_width+'px;height:'+doc_height+'px'});
      obj_iframe = Builder.node('iframe', {src: '/en/presite/index.php', style: 'margin: '+iframe_margin_top+'px '+iframe_margin_lr+'px 0 '+iframe_margin_lr+'px', width: '925', height: '610', scrolling: 'no', frameborder: '0', marginheight: '0', marginwidth: '0'});
      obj_close = Builder.build('<div style="text-align:right;width:925px;margin: '+iframe_margin_top+'px '+iframe_margin_lr+'px 0 '+iframe_margin_lr+'px"><a href="javascript:;" onclick="close_ad()" style="margin-right: 110px;color:#FFFFFF;font: 12px \'Lucida Grande\',Verdana,Arial,Sans-Serif;">proceed to webEdition-site »»</a></div>');
      break;
  }
  node_overlay.appendChild(obj_iframe);
  node_overlay.appendChild(obj_close);
  $$('body')[0].appendChild(node_overlay);
  $('presiteoverlay').setStyle({
    display: 'block'
  });
}

function close_ad() {
  $('content').setStyle({
    display: 'block'
  });
  $('footer').setStyle({
    display: 'block'
  });
  $('presiteoverlay').remove();
  return false;
}
/*
Event.observe(window, 'load', function() {
  var show_presite = 0;
  if (document.cookie && document.cookie.indexOf('presite_displayed_preview=1') != -1) {
    show_presite = 0;
  } else {
    var expires_date = new Date();
    expires_date.setTime(expires_date.getTime() + (1 * 24 * 60 * 60 * 1000));
    document.cookie = 'presite_displayed_preview=1; expires=' + expires_date.toGMTString();
    if (document.cookie.indexOf('presite_displayed_preview=1') != -1) {
      show_presite = 1;
    }
  }
  if (show_presite == 1) {
    open_ad(language);
  }
});
*/

/* /PRESITE */



      //
      // getPageSize()
      // Returns array with page width, height and window width, height
      // Core code from - quirksmode.com
      // Edit for Firefox by pHaez
      //
      function getPageSize(){
        var xScroll, yScroll;

        if (window.innerHeight && window.scrollMaxY) {	
          xScroll = window.innerWidth + window.scrollMaxX;
          yScroll = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
          xScroll = document.body.scrollWidth;
          yScroll = document.body.scrollHeight;
        } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
          xScroll = document.body.offsetWidth;
          yScroll = document.body.offsetHeight;
        }
	
        var windowWidth, windowHeight;

        if (self.innerHeight) {	// all except Explorer
          if(document.documentElement.clientWidth){
            windowWidth = document.documentElement.clientWidth; 
          } else {
            windowWidth = self.innerWidth;
          }
          windowHeight = self.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
          windowWidth = document.documentElement.clientWidth;
          windowHeight = document.documentElement.clientHeight;
        } else if (document.body) { // other Explorers
          windowWidth = document.body.clientWidth;
          windowHeight = document.body.clientHeight;
        }	
	
        // for small pages with total height less then height of the viewport
        if(yScroll < windowHeight){
          pageHeight = windowHeight;
        } else { 
          pageHeight = yScroll;
        }

        // for small pages with total width less then width of the viewport
        if(xScroll < windowWidth){	
          pageWidth = xScroll;		
        } else {
          pageWidth = windowWidth;
        }

        arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
        return arrayPageSize;
      }


function numsort (a, b)
{
  return a - b;
}

function validate_email (email)
{
  return /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(email)
}

function remove_all_child_nodes(id)
{
  if ($(id).hasChildNodes())
  {
    while ($(id).hasChildNodes())
    {
      $(id).removeChild($(id).firstChild);
    }
  }
}

function dl(id, url)
{
  arr_dl_ids.each(function(item)
  {
    remove_all_child_nodes(item)
    $(item).setStyle({display: 'none'});
  });

  form = Builder.node('form', {id: 'dl_form', method:'post', action:'', onsubmit:'return false'});

  p = Builder.node('p', [l_strings['NewsletterText_Part1'], ' ', Builder.node('a',{href:l_strings['NewsletterText_Part2'],target:'_blank'},l_strings['NewsletterText_Part3']) , l_strings['NewsletterText_Part4'], '.', Builder.node('br'), Builder.node('br'), l_strings['NewsletterText_Part5']]);
  form.appendChild(p);

  p = Builder.node('p', {id:'dl_form_hint'}, Builder.node('span', l_strings['AllFieldsHasToBeFilled']));
  form.appendChild(p);

  p = Builder.node('p');
  input = Builder.node('input', {id:'newsletterSubscribe', className:'checkbox', value:'1', name:'we_subscribe_html__', type:'checkbox', checked:'checked', onclick:'dl_cb_ns(this)'});
  label = Builder.node('label', {htmlFor:'newsletterSubscribe', className:'label_for_checkbox'}, ['Newsletter abonnieren']);
  br = Builder.node('br', {className:'cb'});
  p.appendChild(input);
  p.appendChild(label);
  p.appendChild(br);
  form.appendChild(p);

  p = Builder.node('p');
  label = Builder.node('label', {htmlFor:'salutation'}, [l_strings['Salutation'], ':']);
  select = Builder.node('select', {id:'salutation', name:'we_subscribe_salutation__'}, [Builder.node('option'), Builder.node('option', {value:'Herr'}, l_strings['Mr']), Builder.node('option', {value:'Frau'}, l_strings['Mrs'])]);
  p.appendChild(label);
  p.appendChild(select);
  form.appendChild(p);

  p = Builder.node('p');
  label = Builder.node('label', {htmlFor:'firstname'}, [l_strings['Firstname'], ':']);
  input = Builder.node('input', {id:'firstname', type:'text', name:'we_subscribe_firstname__'});
  p.appendChild(label);
  p.appendChild(input);
  form.appendChild(p);

  p = Builder.node('p');
  label = Builder.node('label', {htmlFor:'lastname'}, [l_strings['Lastname'], ':']);
  input = Builder.node('input', {id:'lastname', type:'text', name:'we_subscribe_lastname__'});
  p.appendChild(label);
  p.appendChild(input);
  form.appendChild(p);

  p = Builder.node('p');
  label = Builder.node('label', {htmlFor:'email'}, [l_strings['EMailAddress'], ':']);
  input = Builder.node('input', {id:'email', type:'text', name:'we_subscribe_email__'});
  p.appendChild(label);
  p.appendChild(input);
  form.appendChild(p);

  form.appendChild(Builder.node('input', {type:'hidden', name:'we_use_lists__', value:'1'}));
  form.appendChild(Builder.node('input', {type:'hidden', name:'we_subscribe_list__[0]', value:'0'}));
  form.appendChild(Builder.node('input', {type:'hidden', id:'dl_url', value: url}));

  p = Builder.node('p', {className: 'last'});
  button = Builder.node('input', {id:'form_newsletter_subscribe', type:'submit', onclick:'dl_start(\''+id+'\')'});
  loader = Builder.node('img', {src: '/images/layout/ajax-loader/1.gif', id: 'form_loader', alt: 'loading', width: '16', height: '16', align: 'absmiddle', style: 'display: none;margin-left: 10px'});
  p.appendChild(button);
  p.appendChild(loader);
  form.appendChild(p);

  $(id).appendChild(form);
  $('salutation').selectedIndex = 0;
  $('form_newsletter_subscribe').value = l_strings['SubscribeNewsletter'] + ' & ' + l_strings['StartDownload'];

  new Effect.Appear(id);
}

// Checkbox 'Newsletter subscribe'
function dl_cb_ns(id)
{
  if ($(id).checked == true)
  {
    $('form_newsletter_subscribe').value = l_strings['SubscribeNewsletter'] + ' & ' + l_strings['StartDownload'];
    $('salutation').enable();
    $('firstname').enable();
    $('lastname').enable();
    $('email').enable();
  }
  else
  {
    $('form_newsletter_subscribe').value = l_strings['StartDownload'];
    $('salutation').disable();
    $('firstname').disable();
    $('lastname').disable();
    $('email').disable();
  }
}

function dl_start(id)
{
  if ($('newsletterSubscribe').checked == true)
  {

    /* ---------- validate form fields ---------- */
      var valid = true;
      var valid_email = true;
      if ($F('salutation').empty())
      {
        valid = false;
      }
      if ($F('firstname').empty())
      {
        valid = false;
      }
      if ($F('lastname').empty())
      {
        valid = false;
      }
      if ($F('email').empty())
      {
        valid = false;
      }
      if (!$F('email').empty() && validate_email($F('email')) != true)
      {
        valid_email = false;
      }

    if (valid == true && valid_email == true)
    {
      $('form_loader').setStyle({display: 'inline'});
      var parameters = $H({ we_subscribe_html__: $F('newsletterSubscribe'), we_subscribe_salutation__: $F('salutation'), we_subscribe_firstname__: $F('firstname'), we_subscribe_lastname__: $F('lastname'), we_subscribe_email__: $F('email'), we_use_lists__: '1', 'we_subscribe_list__[0]': 0 });
      dl_ajax_newsletter_subscription(parameters, id);
    }
    else
    {
      remove_all_child_nodes('dl_form_hint');
      if (valid == false)
      {
        $('dl_form_hint').appendChild(Builder.node('strong', l_strings['AllFieldsHasToBeFilled']));
      }
      if (valid_email == false)
      {
        if($('dl_form_hint').hasChildNodes())
        {
          $('dl_form_hint').appendChild(Builder.node('br'));
        }
        $('dl_form_hint').appendChild(Builder.node('strong', l_strings['WrongEMailAddressFormat']));
      }
    }
  }
  else
  {
    url = $F('dl_url');
    remove_all_child_nodes('dl_form');
    p = Builder.node('p', {className: 'last'}, l_strings['TheDownloadStartsNow']);
    $('dl_form').appendChild(p);
    document.location.href = url;
  }
}

function dl_ajax_newsletter_subscription(parameters, id)
{
  switch (language)
  {
    case 'de':
      var url = '/de/Newsletter/ajax-newsletter-subscription.php?'+parameters.toQueryString();
      break;
    case 'en':
      var url = '/en/Newsletter/ajax-newsletter-subscription.php?'+parameters.toQueryString();
      break;
  }
  //alert(url); // DEBUG
  new Ajax.Request(url, {
    onComplete: function (response) {
      var result = response.responseText.strip();
      //alert(result.inspect()); // DEBUG
      eval(result);

      if (result['subscribe'] == 1)
      {
        url = $F('dl_url');
        remove_all_child_nodes('dl_form');
        p = Builder.node('p', {className: 'last'}, [Builder.node('strong', l_strings['ThankYouForTheNewsletterSubscription']), Builder.node('br'), l_strings['NewsleterDoubleoptinHint'], Builder.node('br'), Builder.node('br'), Builder.node('strong', l_strings['TheDownloadStartsNow'])]);
        $('dl_form').appendChild(p);
        document.location.href = url;
      }
      else if (result['emailexists'] == 1)
      {
        remove_all_child_nodes('dl_form_hint');
        $('dl_form_hint').appendChild(Builder.node('strong', l_strings['NewsletterEMailAddressExists']));
        $('form_loader').setStyle({display: 'none'});
      }
    }
  });
}

function init_sections(arr_sections)
{
  if (arr_sections.length > 0)
  {
    $('sections').setStyle({
      display: 'block'
    });

    $('tabs').setStyle({
      display: 'block'
    });

    /* ---------- PREPARE FIRST SECTION / TAB ---------- */
    $('section_1').setStyle({
      display: 'block'
    });
    str_src = $('tab_1').firstChild.getAttribute('src');
    str_src = str_src.replace(/.jpg/, '_over.jpg');
    $('tab_1').firstChild.setAttribute('src', str_src);
  }
}

function show_section(arr_sections,i_section)
{
  /* ---------- REST ALL SECTIONS / TABS ---------- */
  arr_sections.each(function(item) {
    $('section_'+item).setStyle({
      display: 'none'
    });
    str_src = $('tab_'+item).firstChild.getAttribute('src');
    str_src = str_src.replace(/_over.jpg/, '.jpg');
    $('tab_'+item).firstChild.setAttribute('src', str_src);
  });

  /* ---------- SET CURRENT SECTION / TAB ---------- */
  $('section_'+i_section).setStyle({
    display: 'block'
  });
  str_src = $('tab_'+i_section).firstChild.getAttribute('src');
  str_src = str_src.replace(/.jpg/, '_over.jpg');
  $('tab_'+i_section).firstChild.setAttribute('src', str_src);
}

/* ---------- MAP UTILITY ---------- */

  function remove_target_from_maplinks()
  {
    var map_anchors = document.getElementsByTagName('a');
    for (var i=0; i<map_anchors.length; i++)
    {
      var map_anchor = map_anchors[i];
      var map_relAttribute = String(map_anchor.getAttribute('rel'));
      if ((map_relAttribute.toLowerCase().match('maplink')))
      {
        map_anchor.target = '_self';
      }
    }
  }
  
/* ---------- /MAP UTILITY ---------- */

/* ---------- PARTNER OVERVIEW MAP ---------- */

  var partner_overview_map;
  var partner_overview_map_geoXML;
  var partner_overview_map_zoom_level = 5;
 try { var partner_overview_map_center = new GLatLng(49.010027,8.388517);}
 catch(e) {}

  function partner_overview_map_initialize(data_type)
  {
    partner_overview_map_load('http://www.webedition.de/de/Partner/summary-by-'+data_type+'.kml.xml');

    $('partner_overview_map_by_partner_link').setStyle({color: '#E7E7E7'});
    $('partner_overview_map_by_city_link').setStyle({color: '#E7E7E7'});
    $('partner_overview_map_by_'+data_type+'_link').setStyle({color: '#4483B6'});
  }

  function partner_overview_map_load(file)
  {
    if (GBrowserIsCompatible())
    {
      partner_overview_map_geoXML = new GGeoXml(file, function() {
        if (partner_overview_map_geoXML.loadedCorrectly())
        {
          //partner_overview_map_geoXML.gotoDefaultViewport(map);
          partner_overview_map_add_custom_marker(false);
        }
      });
      partner_overview_map = new GMap2(document.getElementById('map_canvas')); 
      partner_overview_map.addControl(new GLargeMapControl());
      partner_overview_map.addControl(new GMapTypeControl());
      partner_overview_map.addControl(new GOverviewMapControl(new GSize(150,100)));
      partner_overview_map.setCenter(partner_overview_map_center, partner_overview_map_zoom_level);
      partner_overview_map.addOverlay(partner_overview_map_geoXML);

      GEvent.addListener(partner_overview_map, 'zoomend', function(oldzoom,zoom) {
        partner_overview_map_zoom_level = zoom;
        if (oldzoom != zoom && zoom > 7)
        {
          partner_overview_map_initialize('partner');
        }
        if (oldzoom != zoom && zoom <= 7)
        {
          partner_overview_map_initialize('city');
        }
      });

      GEvent.addListener(partner_overview_map, 'moveend', function() {
        partner_overview_map_center = partner_overview_map.getCenter();
      });

      GEvent.addListener(partner_overview_map, 'click', function() {
        remove_target_from_maplinks();
      });
    }
  }

  function partner_overview_map_add_custom_marker(centering)
  {
    if ($F('city') != '')
    {
      if (GBrowserIsCompatible())
      {
        geocoder = new GClientGeocoder();
      }

      address = $F('street')+', '+$F('postal_code')+', '+$F('city');
      if (geocoder)
      {
        geocoder.getLatLng(
          address,
          function(point)
          {
            if (!point)
            {
              $('geocoding_hint').innerHTML = '<small>'+l_strings['UnableToGeocodeAddress']+'</small>';
              new Effect.Appear('geocoding_hint');
            }
            else
            {
              Effect.Fade('geocoding_hint');
              $('geocoding_hint').innerHTML = '';
              new Effect.Appear('remove_custom_marker_link');

              try {partner_overview_map.removeOverlay(marker);}
              catch(e) {}

              redIcon = new GIcon(G_DEFAULT_ICON);
              redIcon.image = "http://maps.google.com/mapfiles/ms/icons/red.png";
              redIcon.iconSize = new GSize(32,32);
              redIcon.shadow = "http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png";
              redIcon.shadowSize = new GSize(59,32);
              redIcon.iconAnchor = new GPoint(16,32);

              markerIcon = redIcon;

              markerOptions = { icon:markerIcon };

              marker = new GMarker(point, markerOptions);
              //partner_overview_map.addOverlay(marker);
              if (centering == true)
              {
                //partner_overview_map.setCenter(point, partner_overview_map_zoom_level);
                partner_overview_map.setZoom(10);
                partner_overview_map.setCenter(point);
              }
            }
          }
        );
      }
    }
  }

  function partner_overview_map_remove_custom_marker()
  {
    try {partner_overview_map.removeOverlay(marker);}
    catch(e) {}
    Effect.Fade('geocoding_hint');
    $('geocoding_hint').innerHTML = '';
    Effect.Fade('remove_custom_marker_link');

    // RESET FORM
    $('street').value = '';
    $('postal_code').value = '';
    $('city').value = '';
  }

/* ---------- /PARTNER OVERVIEW MAP ---------- */

function initialize_partner_detail_map()
{
  if (GBrowserIsCompatible())
  {
    map = new GMap2(document.getElementById('partner_detail_map'));
    map.setCenter(new GLatLng(49.010027,8.388517), 9);
    map.addControl(new GSmallMapControl());
    var mapTypeControl = new GMapTypeControl();
    var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,5));
    map.addControl(mapTypeControl, bottomRight);
    geocoder = new GClientGeocoder();
  }
}

function show_partner_detail_map(address1,address2,icon)
{
  if (geocoder)
  {
    geocoder.getLatLng(
      address1,
      function(point)
      {
        if (!point)
        {
          document.getElementById('partner_detail_map').style.visibility = 'hidden';
        }
        else
        {
          document.getElementById('partner_detail_map').style.visibility = 'visible';
          document.getElementById('partner_detail_map_legend').style.display = 'block';

          blueIcon = new GIcon(G_DEFAULT_ICON);
          blueIcon.image = "http://maps.google.com/mapfiles/ms/icons/blue.png";
          blueIcon.iconSize = new GSize(32,32);
          blueIcon.shadow = "http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png";
          blueIcon.shadowSize = new GSize(59,32);
          blueIcon.iconAnchor = new GPoint(16,32);
          blueIcon.infoWindowAnchor = new GPoint(5, 1);

          orangeIcon = new GIcon(G_DEFAULT_ICON);
          orangeIcon.image = "http://maps.google.com/mapfiles/ms/icons/orange.png";
          orangeIcon.iconSize = new GSize(32,32);
          orangeIcon.shadow = "http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png";
          orangeIcon.shadowSize = new GSize(59,32);
          orangeIcon.iconAnchor = new GPoint(16,32);
          orangeIcon.infoWindowAnchor = new GPoint(16, 1);

          switch(icon)
          {
            case 'blue':
              markerIcon = blueIcon;
              break;
            case 'orange':
              markerIcon = orangeIcon;
              break;
            default:
              markerIcon = blueIcon;
          }

          markerOptions = { icon:markerIcon };

          var marker = new GMarker(point, markerOptions);
          map.addOverlay(marker);
          marker.openInfoWindowHtml(address2, {noCloseOnClick:true, buttons:{close:{show:4}}});
          map.setCenter(point, 9);
        }
      }
    );
  }
}