$(document).ready(function(){
var BASE = $('base').attr('href');
var LANG = $('html').attr("lang");
var PAGE = $('meta[name=page]').attr("content");
var TEMPLATE = $('meta[name=template]').attr("content");
var EXT_LINK_TTL = (LANG == 'el')? 'Εξωτερικός σύνδεσμος - Ανοίγει σε νέο παράθυρο':'External link - Opens in a new tab';
//var URL_START = LANG+'/'+PAGE+'/';

// ------------------------- INITIATE js-only elements for js-enabled clients

$('.send_to_friend').show();
$('#newsletterForm fieldset').show();

// ------------------------- SUBSCRIBE TO NEWSLETTER

$('#retry').live('click', function(e){
  e.preventDefault();
  $('#subscribe_msg_display').html('').hide();
  $('#newsletterForm fieldset').show();
});

//$("#newsletterForm").validate({
//  messages: {
//    newsletter_email: $('#newsletter_email').attr("data-error-msg")
//    },
//  submitHandler: function() {
//      submit_newsletterForm(); // form.submit();
//      return false;
//    }
//});

//function submit_newsletterForm(){
$("#newsletterForm").submit(function(){
  if ($('#newsletter_email').val() == '') {
    return false;
  }
  $('#subscribing').show();
  $('#newsletterForm fieldset').hide();
  var email = $('#newsletter_email').val();

  $.ajax({
    type: 'POST',
    url: 'subscribe.php',
    data: 'email='+email+'&lang='+LANG,
    success: function(result){
      $('#subscribe_msg_display').html(result).show();
      $('#subscribing').hide();
      //$('#send_more').fadeIn();
    },
    error:function(request,status,error){
      alert('Unfortunately there was an error in the communication with the server. Please try again shortly.');
    }
  });
  return false;
});

// ------------------------- SEND TO FRIEND FORM

$('.send_to_friend .link').click(function(){
  var target_url = $(this).attr('data-url');
  var subject = $(this).attr('data-title');
  $('#target_url').val(target_url);
  $('#subject').val(subject);
  $('#overlay').show();
  $('#send_to_friend').fadeIn(150);
});

$('.close_sendToFriend').live('click', function(){
  $('#overlay').hide();
  $('#send_to_friend').fadeOut('fast', function(){
    $('#send_to_friend #contact_form').show();
    $('#msg_display').hide().text('');
  });
});

$('#try_again').live('click', function(){
  $('#msg_display').hide().text('');
  $('#send_to_friend #contact_form').fadeIn();
});

// ------------------------- CONTACT FORM

if ($('#ajax').length) {
  $('#ajax').val('1');
}

$('#send_more').live('click', function(){
  window.location = "http://www.peebe.gr/"+LANG+"/contact";
});

function submit_contact_form(form){
  var handler_script = $(form).attr('action');
  var form_ID = $(form).attr('id');
  var dataString = '';

  $('#'+form_ID+' input').each(function() {
    dataString += this.name + '=' + encodeURIforAjax(this.value) + '&';
  });
  dataString += 'message='+$('#message').val();

  $(form).hide();
  $('#processing').fadeIn();

  $.ajax({
    type: 'POST',
    url: handler_script,
    data: dataString,
    success: function(result){
      //console.log('result is : '+result)
      $('#processing').hide();
      $('#msg_display').append('<div class="msg">'+result+'</div>').fadeIn();
      $('#send_more').fadeIn();
    },
    error:function(request,status,error){
      alert('Unfortunately there was an error in the communication with the server. Please try again shortly.');
    }
  });
  return false;
}

function encodeURIforAjax(str){
  return encodeURIComponent(str);
}

// ------------------------- SUBMENU

$('.submenu:eq(0)').addClass('mainSubmenu');

var submenuTimerId = 0;

$('#menu li').live('mouseenter', function(){
  $('.showOff').hide().removeClass('showOff');
  clearTimeout (submenuTimerId);
  var menuref = $(this).attr('data-menuref'); // Get submenu name to show
  $('.hovered').removeClass('hovered');
  $(this).addClass('hovered');
  $('.mainSubmenu').hide();
  $.each($('.submenus'), function() {
    if ($(this).attr('data-menuref') == menuref) {
      $(this).addClass('showOff').fadeIn();
    } else {
      $(this).stop(true, true).hide(); //.stop( [ clearQueue ], [ jumpToEnd ] )
    }
  });
}).live('mouseleave', function(){
  submenuTimerId = setTimeout(function(){restoreSubmenu()},800);
});

$('.showOff').live('mouseenter', function(){
  clearTimeout (submenuTimerId);
}).live('mouseleave', function(){
  submenuTimerId = setTimeout(function(){restoreSubmenu()},800);
});

function restoreSubmenu(){
  var menuref = $('.showOff').attr('data-menuref');
  $('.showOff').hide().removeClass('showOff');
  $('#menu li.hovered').removeClass('hovered');
  if (menuref == $('#menu li a.selected').parents('li').attr('data-menuref')) {
    $('.mainSubmenu').show(); // Avoid ugly fade-in effect to diplay the same info
  } else {
    $('.mainSubmenu').fadeIn();
  }
}

// ------------------------- RSS

var rssTimerId = 0;

$('#rss').click(function(e){
  e.preventDefault();
  $('#rss_options').slideToggle(200);
  clearTimeout (rssTimerId);
  rssTimerId = setTimeout(function(){$('#rss_options').slideUp(400)},8000);
  return false;
});

$('#rss_options').live('mouseenter', function(){
  clearTimeout (rssTimerId);
}).live('mouseleave', function(){
  rssTimerId = setTimeout(function(){$('#rss_options').slideUp(400)},2000);
});

// ------------------------- SEARCH

$("#searchForm").submit(function(){
  if ($('#term').val() == '') {
    return false;
  }
});

if ($('#searchterm_memory').length) {
  if ($('.search_results').length) {
    highlight_terms($('#searchterm_memory').text(), '.search_results li');
  } else {
    highlight_terms($('#searchterm_memory').text(), '#pages');
    $('#mini_pager .highlight').css('width','auto').css('background-color','#FFF').css('float','none');
  }
}

function highlight_terms(terms, target){
  console.log('Terms: '+terms);
  if (terms!=""){
    var term_array = terms.split(",");
    var term_array_length = term_array.length;
    for (var i=0; i<term_array_length; i++) {
      $(target).highlight(term_array[i]); //console.log(term_array[i]+':'+i)
    }
  }
}

function atoniko(str) {
  var replace = ["ά", "έ", "ί", "ό", "ύ", "ή", "ώ", "ϊ", "ϋ", "ΐ"];
  var by = ["α", "ε", "ι", "ο", "υ", "η", "ω", "ι", "υ", "ι"];
  var re = '';
  for (var i=0; i<replace.length; i++) {
     re = new RegExp(replace[i],"g");
     str = str.replace(re, by[i]);
  }
  return str;
}


// ------------------------- PUBLICATIONS

//if ($('#overview h3').length) {
//  var title = atoniko($('#overview h3').text());
//  $('#overview h3').text(title).css('text-transform', 'uppercase');
//}

if ($('#pager ul').length) { // Auto-size pager
  $('#pager ul').css('width','auto');
  var w = $('#pager ul').width()+20;
  var remainder = parseInt(($('#pager_content').width() - w) / 2);
  $('#pager_prev').css('width',remainder);
  $('#pager_next').css('width',remainder);
}


// ------------------------- HOME

if (TEMPLATE == 'home') {

  $(".scrollable").scrollable({circular:true}).navigator().autoscroll({interval:6000, autopause:true});

  if ($('.navi a').length < 2) {
    $('.navi').hide(); // Don't show a lonely bullet
    $(".scrollable").scrollable().stop();
  }

}

// ------------------------- GENERAL

//$('#projects img').lazyload({threshold:0, effect:"fadeIn", placeholder:"graphics/white.gif", failurelimit:10});

createCookie('userlang',LANG,7);

$("a[href$='.jpg']").addClass("preview");
$("a[href$='.png']").addClass("preview");

if ($('.contactMail').length > 0){
  var name;
  var domain;
  var displayed;
  $('.contactMail').each(function(){
    name = $('span:last', this).text();
    domain = $('span:first', this).text();
    displayed = name+"@"+domain;
    $(this).append('<a href=mailto:' + name + '@' + domain + '>' + displayed + '</a>');
  });
}

if ($('#contact_form').length) {
  $("#contact_form").validate({
    messages: {
      name: $('#name').attr("data-error-msg"),
      subject: $('#subject').attr("data-error-msg"),
      message: $('#message').attr("data-error-msg"),
      email: $('#email').attr("data-error-msg"),
      from_email: $('#email').attr("data-error-msg")
      },
    submitHandler: function(form) {
        submit_contact_form(form); // form.submit();
        return false;
      }
//    errorPlacement: function(error, element) {
//       error.appendTo(element.parent("p").next("br"));
//     }
  });
}


$('#lang_menu a').click(function(e){
  var userlang = $(this).attr('hreflang');
  createCookie('userlang',userlang,180);
});

$("a[href^='http']").not("[href^='"+BASE+"']").addClass('external').attr('title',EXT_LINK_TTL).click(function() {
  window.open($(this).attr('href'));
  return false;
});
$('a[href$=".pdf"]').addClass('external').attr('title',EXT_LINK_TTL).click(function() {
  window.open($(this).attr('href'));
  return false;
});

function createCookie(name,value,days) {
	var expires = "";
  if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	} else {
    expires = ""; // cookie will be deleted immediatly
  }
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function deleteCookie(name) {
	createCookie(name,"",-1);
}

// ------------------------- OLD IE

if ($('#browserChoice p').text() != '') {
  createCookie('test','1',1);
  if(readCookie('test')){
    deleteCookie('test');
    $('#hide_ie_msg').show();
  } else {
    $('#browserChoice').fadeIn();
  }

  $('#hide_ie_msg').click(function(){
    createCookie('ie_msg','off',1); //hide it for a week
    $('#browserChoice').fadeOut();
  });

  var ie_msg = readCookie('ie_msg');
  if (ie_msg == 'off'){
    $('#browserChoice').hide();
  } else {
    $('#browserChoice').fadeIn();
  }
}

// ------------------------- GRID

//if ($('#vertical-grid').length > 0) {
//  var vgrid = readCookie('vgrid');
//  if (vgrid == 'on') { $('#vertical-grid').show() }
//  var window_height = $(window).height();
//  var footer_end = parseInt($('#footer').position().top) + parseInt($('#footer').css('height'));
//  if (footer_end > window_height) { window_height = footer_end }
//  var line_height = $('p').css('line-height');
//  var lines = parseInt(window_height) / parseInt(line_height);
//  var i=0;
//  for (i=0;i<=lines;i++) {
//    //$('#vertical-grid').append('<hr />');
//    $('#vertical-grid').append('<p>&nbsp;</p>');
//  }
//  line_height = parseInt(line_height)-1;
//  //$('#vertical-grid hr').css('line_height', line_height);
//  //$('#vertical-grid p').css('height', line_height);
//
//  function handleArrowKeys(e) {
//    var keynum = 0;
//    if(e.which) {keynum = e.which;}    // Firefox/Opera/Webkit
//    if(keynum == 27) { // esc
//      $('#vertical-grid').toggle(function(){
//        if ($('#vertical-grid').is(':visible')){
//          createCookie('vgrid','on',30);
//        } else {
//          createCookie('vgrid','off',30);
//        }
//      });
//    }
//  }
//
//  document.onkeyup = handleArrowKeys;
//}

});
