/**
 * Script for Global Elements
 * 
 * 
 * @project   Mister Spex
 * @version   20100402
 * @author    Bjoern Kropp, Peter Klein
 * @requires  jQuery 1.4.2
 * @requires  inputLabel-Plugin v0.2
 */
var VideoStatus = false;  // Hilfevideos
var bMiniBasketLoaded = false; // Minisbasket
$('HTML').addClass('JS'); // Gibts die Klasse, wird das NoScript Ding ausgeblendet

/**
 * Document Ready Section
 * Please use this
 */
$(document).ready(function() 
{
  /**
   * Not HTML5
   * Funktion setzt für alle FormFields den PlaceHolder
   * wenn dieser definiert ist
   * @author Maik H.
   */
  if( !$.browser.webkit )
  {
    var target = $('input[type="text"], input[type="email"], input[type="search"]');
    if( target.length > 0 )
    {
      target.each(function(i, el)
      {
        el = $(el);
        if( el.attr('placeholder') )
        {
          // Placeholder setzen
          el.addClass('placeholder').attr('value', el.attr('placeholder'));
          
          // Delete on focus
          el.focus( function(e)
          {
            if( el.val() == el.attr('placeholder') )
            {
              el.removeClass('placeholder').attr('value', '');
            }
          });
          
          // Add onBlur
          el.blur(function(e)
          {
            if( $.trim(el.val()) == '' )
            {
              el.addClass('placeholder').attr('value', el.attr('placeholder'));
            }
          });
        }
      });
    }
    
    //switch languages in ie
    $('#NavCart div').mouseover(function()
    {
      $(this).children('ul').addClass('opened');
    }).mouseout(function()
    {
      $(this).children('ul').removeClass('opened');
    });
  }
  // End PlaceHolder
  
  
  /**
  * NavUtilleties
  * author: Maik H.
  *
  * Search
  */
  $('#Search input[type="submit"]').attr('disabled','disabled');
  $('#SearchEngineInputField').attr('autocomplete', 'off').keypress(function()
  {
    if($(this).val() != '')
    {
      $('#Search input[type="submit"]').removeAttr('disabled');
    }
  });

  /**
  * Hotline
  */
  $('#Hotline h3').click(function()
  {
    $('#CartSummary').removeClass('active');
    var hotline = $('#Hotline');
    hotline.toggleClass('active');

    if( hotline.hasClass('active') && typeof(wt) != "undefined" )
    {
      wt.sendinfo({linkId:'flyout.rueckruf',customClickParameter:{5:'Ansicht'}}); //Webtrekk
      setEventTracking("Callback","Ansicht");
    }
  });

  // Tracking for email-Link in Callback
  $('#Hotline p#eMail a').click(function()
  {
    if(typeof(wt) != "undefined")
    {
      wt.sendinfo({linkId:'flyout.rueckruf',customClickParameter:{5:'Mailto'}}); //Webtrekk
      setEventTracking("Callback","Mailto");
    }
  });
  
  $('#CallbackClose').click(function()
  {
    $('#Hotline').removeClass('active');
  });
  
  /** 
  * #CallbackForm
  */
  $("#CallbackSubmit").bind(
  {
    click: function()
    {  
      var phone = $("input#CallbackPhone").val();  
      var name = $("input#CallbackName").val();
      var email = $("input#CallbackEmail").val();

      if (phone == "")
      { 
        $("input#CallbackPhone").focus();  
        return false;                 
      }

      if (name == "" || name == "Ihr Name*" || name == "Name")
      {
        $("input#CallbackName").focus();  
        return false;                 
      }

      if (phone != "")
      {
        var countEmptySpaces = 0;

        for (var i = 0; i < phone.length; ++i)
        {
          if(phone.charAt(i) == " " || phone.charAt(i) == "-" || phone.charAt(i) == "+" || phone.charAt(i) == "/" || phone.charAt(i) == "(" || phone.charAt(i) == ")")
          { 
            countEmptySpaces++;

            if(countEmptySpaces == phone.length) 
            {
              $("input#CallbackPhone").focus();
              return false;
            }
            else
            {
              continue;
            }
          }

          if(phone.charAt(i) <"0" || phone.charAt(i) > "9")
          {
            //$("label#phone_error").show();  
            $("input#CallbackPhone").focus(); 
            $("#phoneError").remove();
            $("input#CallbackEmail").after('<span id="phoneError">Ihre Rufnummer ist fehlerhaft</span>');
            return false;
          }
        }
      }

      if (email != "" && email != "Ihre E-Mail-Adresse")
      {
        if (!email.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i))
        {
          $("input#CallbackEmail").focus();
          $("#eMailError").remove();
          $("input#CallbackEmail").after('<span id="eMailError">Ihre E-Mail-Adresse ist fehlerhaft</span>');
          return false;
        }
        else
        {
          var mailString = '&email='+email;
        }
      }

      if( email == '' || email == 'Ihre E-Mail-Adresse')
      {
        var mailString = '';
      }

      $.ajax({
        type: "POST",
        url: "/formmailer.y",
        data: 'phone=' + phone + '&' + 'name=' + name + mailString +'&Subject=Callback&To=service@misterspex.de',

        success: function()
        {
          $('#Hotline #Advice').remove();
          $('#CallbackService h5:first').html('Ihre Telefonnummer wurde übermittelt!');
          $('#CallbackService form').html('<p>Wir rufen so schnell wie möglich zurück.</p>');

          // Google Analytics fake pageview
          var pageTracker = _gat._getTracker("<tmpl_var Storefront.GoogleAnalyticsID>");
          pageTracker._trackEvent("Callback","Gesendet");

          // Webtrekk
          if( typeof(wt) !="undefined" )
          {
            wt.sendinfo({linkId:'flyout.rueckruf',customClickParameter:{5:'Gesendet'}}); //Webtrekk
          }
        }
      });
      return false;
    }
  });
  // end Hotline
  
  /**
   * CartSummary
   */
  if( $('#CartSummary').size() )
  {
    LoadMiniBasket() // Start Minibasket
    $('#CartSummary h3 a').click(function()
    {
      $('#Hotline').removeClass('active');
      var cart = $('#CartSummary');
      cart.toggleClass("active");
  
      if(cart.hasClass('active') && typeof(wt) != "undefined")
      {
         wt.sendinfo({linkId:'flyout.minibasket',customClickParameter:{6:'Ansicht'}}); //Webtrekk
      }
      return false;
    });
  }
  // end CartSummary
  
  /**
   * Lädt das facebox.js nach
   * wenn es einen Link für die Facebox gibt
   */
  if ( $("a[rel^='facebox']").length > 0 && $.facebox == undefined)
  {
    // reload facebox js since it has not beed loaded in the markup
    $.getScript('/js/jquery-plugins/facebox.js', function()
    {
      $('head').prepend('<link rel="stylesheet" href="/css/section/facebox.css">');
      initFacebox();
    });
  }
  else if ( $("a[rel^='facebox']").length > 0 )
  {
    $('head').prepend('<link rel="stylesheet" href="/css/section/facebox.css">');
    initFacebox();
  }
  // end facebox
  
  /*
   * jQuery replaceText - v1.1 - 11/21/2009
   * http://benalman.com/projects/jquery-replacetext-plugin/
   * 
   * Copyright (c) 2009 "Cowboy" Ben Alman
   * Dual licensed under the MIT and GPL licenses.
   * http://benalman.com/about/license/
   */
  (function($)
  {
    $.fn.replaceText=function(b,a,c)
    {
      return this.each(function()
      {
        var f=this.firstChild,g,e,d=[];if(f)
        {
          do
          {
            if(f.nodeType===3)
            {
              g=f.nodeValue;e=g.replace(b,a);if(e!==g)
              {
                if(!c&&/</.test(e))
                {
                  $(f).before(e);d.push(f)
                }
                else
                {
                  f.nodeValue=e
                }
              }
            }
          }
          while(f=f.nextSibling)
        }
        d.length&&$(d).remove()
      })
    }
  })(jQuery);
  
  //Replace Levis Branding Text
  $('#Content').each(function()
  {
    $(this).replaceText(/Levis/, 'Levi\'s®');
    $(this).replaceText(/Faconnable/, 'Façonnable');
  });

});
// end $(document).ready()


/**
 * Funktion fügt ein Hintergrundbild hinzu
 * @author Maik H
 * @input image-url, color (#000000)
 * @2011/12/21
 */
$.fn.smartBackgroundImage = function(url, color)
{
  var t = this;
  $('body').prepend('<div class="smartbackground"></div>');
  $('<img />').attr('src', url).load(function()
  {
    t.each(function()
    {  
      $('body .smartbackground').css('background', (color != false ? color : '')+' url('+url+') no-repeat top center').fadeIn('fast');
      $('html, body').css('backgroundColor', color);
    });
  });
}

/**
 * Funktionen für Newsletteranmeldung
 * @author M.Helsing
 * @2011/10/26
 */
function NewsletterControl(action)
{
  // Close NewsletterLayer
  if( action == 'close' )
  {
    $('#NewsletterEntry, #facebox_overlay').fadeOut('slow', function()
    {
      $(this).remove();
      checkVideoActions('close');
    });
    
    return false;
  }
  
  // Check NewsletterLayer exists
  // if dont exists: generate & open
  if( !$('#NewsletterEntry').size() )
  {
    var Newsletter = '';
    Newsletter += '<div id="NewsletterEntry">';
    Newsletter += '<a href="#" id="NewsletterClose" title="Schließen"><span>Fenster schliessen</span></a>';
    Newsletter += '<iframe frameborder="0" scrolling="no" width="840" height="510" src="/newsletter.html"></iframe>';
    Newsletter += '</div>';
    
    // check exists overlay
    (!$('#facebox_overlay').size() ? Newsletter += '<div id="facebox_overlay" class="facebox_overlayBG"></div>' : $('#facebox_overlay').fadeIn() );
    
    $('#MisterSpex').prepend(Newsletter);
    
    $('#NewsletterClose, #facebox_overlay').click(function(el)
    {
      el.preventDefault();
      NewsletterControl('close');
    });
    
    $('html,body').animate({scrollTop: 'MisterSpex'}, 1000);
  }
  // if exits open
  else
  {
    $('#NewsletterEntry, #facebox_overlay').fadeIn();
  }
  
  // Videostatus checken
  checkVideoActions('open');
}

/**
 * Videothema beachten
 */
function checkVideoActions(status)
{
  if( VideoStatus != false && VideoStatus == 'OnUserPlay' && status == 'open' )
  {
    document.getElementById("VideoLayer").execute("pause");
  }
  
  if( VideoStatus != false && VideoStatus == 'OnUserPlay' && status == 'close' )
  {
    document.getElementById("VideoLayer").execute("resume");
  }
}

/**
 * NL-Trackingabschluss
 */
function sendNlTracking(referer)
{
  if( referer != 'false' )
  {
    wt.sendinfo(
    {
      linkId:'newsletter',
      customClickParameter:{3:referer}
    });
  
    // Parameter löschen
    $.ajax({
      type: "GET",
      url: "/sessionkeyvalue.y?Key=NewsletterTracking&Value=false"
    });
  }
}

// Layer für NL-Popup erzeugen
function createLayer()
{
  var cookie_wert = getCookie('Newsletter');  
  var cookie_wert_langzeit = getCookie('NewsletterConfirm');
  
  // Wenn kein Cookie
  if(cookie_wert == undefined && cookie_wert_langzeit == undefined)
  {
    NewsletterControl('open');
    document.cookie = 'Newsletter=open; path=/'; // Cookie setzen
  }
}
// END NEWSLETTER //

/**
 * Steuerung MiniBasket
 */
function GetMiniBasket(){$.getJSON("/minibasket.y", PrintMiniBasket);}
function PrintMiniBasket(data)
{
  var d = document.getElementById("Minibasket");
  if (d){d.innerHTML = data.sHtmlText;}

  var s = document.getElementById("NoBasketArticles");
  if (s){s.innerHTML = data.nNoArticles;}

  $('#CartClose').click(function(){
    $('#CartSummary').removeClass('active');
    return false;
  });
  $('#CartSubmit').click(function(){
    window.location.href = '/basket.y';
  });
  
  if(typeof(wt)!="undefined")
  {
    $('#basket-products .product a').click(function(){wt.sendinfo({linkId:'flyout.minibasket',sendOnUnload:1,customClickParameter:{6:'Produktlink'}});});
    $('#CartSubmit a').click(function(){wt.sendinfo({linkId:'flyout.minibasket',sendOnUnload:1,customClickParameter:{6:'Basketlink'}});});
  }
}

function LoadMiniBasket()
{
  if (bMiniBasketLoaded) return;
  bMiniBasketLoaded = true;
  GetMiniBasket();
}

/**
* cleanString
* Umlaute in einfache Vokale umwandeln, andere Sonderzeichen in Unterstriche umwandeln
* @author S. Wittmütz
*/
function cleanString(str)
{
  var str = str
    .replace(/[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6]/g, 'a') // Alle Versionen von "a" in "a" umwandeln, folgend für die anderen Vokale
    .replace(/[\u00e8\u00e9\u00ea\u00eb]/g, 'e')
    .replace(/[\u00ec\u00ed\u00ef]/g, 'i')
    .replace(/[\u00f2\u00f3\u00f4\u00f5\u00f6]/g, 'o')
    .replace(/[\u00fc\u00fb\u00f9\u00fa]/g, 'u')
    .replace(/[^A-Za-z0-9\-_]/g, '_') // Alle Sonderzeichen durch Unterstrich ersetzen
    .replace(/[_]$/,''); // Unterstrich am Ende entfernen
  return str;
}

function initFacebox()
{
  $("a[rel^='facebox']").each(function(index){
    if ( $(this).attr('rel').search("faceboxIframe") == 0 )
    {
      $(this).click(function (e)
      {
        // Einbindung des Videos
        if( $('#VideoLayer').size() && $('#VideoLayer').is(':visible') )
        {
          document.getElementById("VideoLayer").execute("pause");
        }
        e.preventDefault(); 
        $.facebox({ 'iframe' : $(this).attr('href'), 'rel' : $(this).attr('rel') });
      });
    }
    else
    {
      $(this).click(function(e){
        e.preventDefault();
        cssclass = '';
        var o = this.rel.match(/facebox\[?\.(\w+)\]?/);
        if (o){ cssclass = o[1] }
        $.facebox({ 'ajax' : $(this).attr('href') } , cssclass );
      });
    }
  });
  
  $('.close.facebox, .lightbox.colors').hide();
  
  getCloseButton();

  if($('#AddThis'))
  {
    //Show AddThis Buttons
    $('#AddThis').show();
    $('#AddThis a img').css("display", "inline-block");
  }
}

// show close button for facebox
function getCloseButton(){
  window.setTimeout(function(){
    $('.close.facebox').fadeIn(1000);
  }, 2000)
}

/**
 * CookieHandler
 * Newslettertracking
 * @author M.Helsing / P.Klein
 */
function CookieHandler()
{
  this.setCookie = function (name, value, seconds)
  {
    if (typeof(seconds) != 'undefined')
    {
      var date = new Date();
      date.setTime(date.getTime() + (seconds*1000));
      var expires = "; expires=" + date.toGMTString();
    }
    else
    {
      var expires = "";
    }

    document.cookie = name+"="+value+expires+"; path=/";
  }

  this.getCookie = function (name)
  {
    name = name + "=";
    var carray = document.cookie.split(';');

    for(var i=0;i < carray.length;i++)
    {
      var c = carray[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }

    return null; //carray; // null;
  }

  this.deleteCookie = function (name)
  {
    this.setCookie(name, "", -1);
  }
}

function getCookie(c_name)
{
  var i,x,y,ARRcookies=document.cookie.split(";");
  for (i=0;i<ARRcookies.length;i++)
  {
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name)
    {
      return unescape(y);
    }
  }
}

/**
 * Cookie auslesen für Webtrekk 
 * @author St. Wittmuetz
 */
function wt_getCookie(cookiename)
{
  var cookiestring = "" + document.cookie;
  var index1 = cookiestring.indexOf(cookiename);
  if (index1==-1 || cookiename=="") {
    return false; 
  }
  var index2=cookiestring.indexOf(';',index1);
  if (index2==-1) {
    index2=cookiestring.length; 
  }
  return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

// get URL Parameters & Values
function getUrlVars()
{
 var vars = [], hash;
 var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 for(var i = 0; i < hashes.length; i++)
 {
   hash = hashes[i].split('=');
   vars.push(hash[0]);
   vars[hash[0]] = hash[1];
 }
 return vars;
 
 // So gehts ;)
 // var first = getUrlVars()["me"];
 // var second = getUrlVars()["city"];
 // console.log(first + '; ' + second); // for debugging in console
}

/**
 * Function initFacebook
 * set the page-parameters
 */
function initFacebook(ProductNo)
{
  if( $('#fb-root').size() && !$('meta[property=og:image]').attr('content') )
  {
    if(ProductNo)
    {
      var header = "";
      header += '<meta property="og:image" content="http://d26hhearhq0yio.cloudfront.net/content/misterspex/produkte/grafiken/'+ProductNo+'_a5.jpg">\n';
      header += '<meta property="og:type" content="product">\n';
      header += '<meta property="og:title" content="'+document.title+'">\n';
      header += '<meta property="fb:admins" content="1515484293">\n';
      header += '<meta property="fb:app_id" content="112648098776817">';
      $('head').prepend(header);
    }
    
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/de_DE/all.js#appId=112648098776817&xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
  }
}

/**
 * Tracking für interaktive Videos
 * @action: OnUserPlay, OnUserPause, OnUserCancel
 */
function VideoTracking(action)
{
  wt.sendinfo(
  {
    linkId:'videoaktionen',
    customClickParameter:{2:action}
  });
}

// Google Event Tracking ( Beschreibung im Wiki unter https://msxbo1.misterspex.de/trac/wiki/IT/informationen )
function setEventTracking(eventCategory, eventAction)
{
  var pageTracker = _gat._getTracker("UA-4082386-1");
  pageTracker._trackEvent(eventCategory, eventAction);
}
