/**
*   common.js
*   created by gabriele@evectors.com
*   includes in all pages
*/

//text size. Default is 0, min is 0, max is 2. On 1 load middle_zoom.css, on 2 load big_zoom.css
var size = 0;

$(document).ready(function() {
    
	//showPartner();
	
	if (window.location.href.indexOf('pages')!=7) {
		showCaption();
	}
	
	$('.eve_print_page').click(function() {  
		window.print();  
		return false;  
	}); 

	writeError(getMessageCookie());

	$("#eve_smaller").click(function() {   
	 	resizeText(size-1); 
	 	return false;
	});
	
	$("#eve_bigger").click(function() {   
	 	resizeText(size+1); 
	 	return false;
	});

	
	$('#searchButton').attr('disabled','disabled');
	$('#searchButton').attr('style','opacity: 0.5;');
	
	//resize content events
	resizeText();
	
	$('.eve_box_search form #q').click(function(){
		$(this).attr('value','');
	});
	
	$('.eve_box_search form #q').keyup(function(e) {
		if($(this).val().length>0){
			$('#searchButton').removeAttr('disabled');
			$('#searchButton').attr('style','opacity: 1;');
		}else{
			$('#searchButton').attr('disabled','disabled');
			$('#searchButton').attr('style','opacity: 0.5;');
		}
	});
	
	$('.article_rotation_single_le-tappe-della-salute').children('.eve_top_article').find('span').find('strong').html('le tappe della salute');
	
	$("#ticket").click(function() {
	  window.location.href="http://www.fondazioneveronesi.it/divulgazione/science-for-peace/la-conferenza/";
	});
	$("#ticket").live("mouseenter", function () {
          $(this).stop();
          $(this).animate({
              "left": "0"
          });
      });

      $("#ticket").live("mouseleave", function () {
          $(this).stop();
          $(this).animate({
              "left": "-302px"
              }, function () {
                animate_loop();
              });
      });

      function animate_loop () {
          $("#ticket").animate({
              "left": "-297"
          }, function () {
              $("#ticket").animate({
                  "left": "-302"
              }, function () {
                  animate_loop();
              });
          }); 
      }

      animate_loop();
});


function showCaption(){

	var images_container = 'div.eve_article_content img, div.eve_uv_post_content img'; //Where to look for images with captions
	var caption_image_wrapper = '<div class="eve_image_caption_container"></div>'; //The code will wrap the image and caption with this
	var caption_open = '<div class="eve_image_caption">'; //The opening tag for the caption, will be created by the script
	var caption_close = '</div>'; //The closing tag for the caption, will be created by the script

	$(images_container+" ").each(function() {
  		if ($(this).attr('alt') != ''){
  			$(this).wrap(function() {
    			return caption_image_wrapper;
  			});
    		$(this).parent().attr("style",$(this).attr("style"));
    		$(this).parent().css("width",$(this).css("width"));
    		$(this).parent().attr("class",$(this).attr("class"));
    		$(this).attr("style","");
    		$(this).attr("class","");
    		$(this).parent().append(caption_open+$(this).attr('alt')+caption_close);
    	}
  	});
  	$(images_container+" ").load(function() { //Fix for FF4
      		if ($(this).attr('alt') != ''){
      		  $(this).parent().css("width",$(this).css("width"));
      		}
    	});
}

//function for write the error on page
var errorContainer = '#bigSide';

function writeError(cookieVal){
	if(cookieVal.length==0){
		return false;
	}
	
	var cookieArr = cookieVal.split(';');
	var msg = cookieArr[0];
	msg = msg.replace('message=','');
	var type = cookieArr[1];
	type = type.replace('messageType=','');

	$('#pageError').remove();
	$('#pageError').removeClass('error');
	$('#pageError').removeClass('confirm');
	if(msg.length>0){	
		$(errorContainer).prepend('<div id="pageError" class="eve_message"><span>'+msg+'</span></div>');
		if(type=='confirm'){
			$('#pageError').addClass('eve_message_confirm');
		}else if(type=='error'){
			$('#pageError').addClass('eve_message_error');
		}
	}
	var poffset = document.documentElement.scrollTop;
	if(poffset == 0 || poffset == undefined || poffset == null){
		poffset = window.pageYOffset;
	}	
		
	if(poffset>190){//if user has scrolled the page
		window.scroll(0,-2000);
		window.scroll(0,190);
	}
	deleteMessageCookie();
	return false;
}



/**functions to set, delete and get the message cookie
* name: fuvmessage
* expiration: 1 hour
*/
var cookieName = 'fuvmessage';

function setMessageCookie(msg,type){
  	var expire = new Date();
  	var now = new Date();
  	expire.setTime(now.getTime() + (10 * 60000));//an hour
  	var cookieVal = escape('message='+msg+';messageType='+type);
  	document.cookie = cookieName + '=' + cookieVal + '; expires=' + expire.toGMTString() + '; path=/';
}

function deleteMessageCookie(){
  	var expire = new Date();
  	var now = new Date();
  	expire.setTime(now.getTime() - (10 * 60000));
  	var cookieVal = escape(getMessageCookie());
  	document.cookie = cookieName + '=' + cookieVal + '; expires=' + expire.toGMTString() + '; path=/';
}

function getMessageCookie(){
  if (document.cookie.length > 0)
  {
    var inizio = document.cookie.indexOf(cookieName + "=");
    if (inizio != -1)
    {
      inizio = inizio + cookieName.length + 1;
      var fine = document.cookie.indexOf(";",inizio);
      if (fine == -1) fine = document.cookie.length;
      return unescape(document.cookie.substring(inizio,fine));
    }else{
       return "";
    }
  }
  return "";

}


/**
* Resize function. It resizes the text of an article
* author: gabriele@evectors.com
*/
function resizeText(dim) {
	if(dim!=0 && dim!=1 && dim!=2){
		return false;
	}
	
	if(dim == 1){
		$('#bigZoom').remove();
		$(".eve_wrapper").append('<link rel="stylesheet" type="text/css" href="/static/css/middle_zoom.css" id="middleZoom"/>');
		size = 1;
	}else if(dim == 2){
		$('#middleZoom').remove();
		$(".eve_wrapper").append('<link rel="stylesheet" type="text/css" href="/static/css/big_zoom.css" id="bigZoom"/>');
		size = 2;
	}else{
		$('#middleZoom').remove();
		$('#bigZoom').remove();
		size = 0;
	}
}

function showPartner(){
	
	/** showPartner */
	/* @author Paolo Barbana <paolo.barbana@evectors.com>
	/* This function assumes the page is including Jquery & Jquery.cookie plugin */

	var cookieName = 'fuvpartners';
	var containerClass = 'eve_partners_box';
	var partners_seen = [];
	var partners_seen_tmp = [];
	var thecookie;
	
	//find this page key
	var indexname = window.location.pathname.replace(/[\/\-\_]/g,'');
	if(indexname === ''){ indexname = 'home'; }

	//read the cookie and selects this page specific partners_seen array

	eval('thecookie = '+ $.cookie(cookieName));
	if(thecookie === null){ thecookie = new Object(); }
	if(typeof thecookie[indexname] === 'undefined'){ thecookie[indexname] = new Object(); }

	//Get actual list of pageIncludes from the page

	$('.' + containerClass).each(function(index) {
   		
   		myPageInclude = $(this).attr('id');
		
		partners_seen_tmp = thecookie[indexname][myPageInclude];
	
		if(typeof partners_seen_tmp === 'undefined'){ partners_seen_tmp = []; }
		if(partners_seen_tmp === ''){ partners_seen = []; }
		else{ partners_seen = partners_seen_tmp; }
		
		var partners = $('#' + myPageInclude).find('figure');	

		if(partners_seen.length != 0 && partners_seen.length<partners.length){
			//select a partner that isn't already seen
			var partners_notseen = [];
			
			partners.each(function(index) {
				if($.inArray($(this).attr('id'),partners_seen) == -1){
					partners_notseen[partners_notseen.length] = $(this).attr('id');
				}
			});
	
			var partners_num = partners_notseen.length;
			var randpartner = Math.floor(Math.random()*partners_num);
			var partnerId = partners_notseen[randpartner];
			$('#' + partnerId).show();
			
			//update cookie
			partners_seen[partners_seen.length] = partnerId;
	
		}
		else {
			//user has either seen all partners or none, randomly select a partner to show
			var partners_num = partners.size();
			var randpartner = Math.floor(Math.random()*partners_num);
			var partnerId = $('#' + myPageInclude).find('figure').eq(randpartner).attr('id');
			$('#' + partnerId).show();
	
			//rewrite cookie key from scratch
			partners_seen = [partnerId];
	
		}

		thecookie[indexname][myPageInclude] = partners_seen;
		writeCookie(cookieName,JSON.stringify(thecookie));

  	});

}

function writeCookie(cname, cvalue) {
	$.cookie(cname, cvalue, { expires: 1, path: '/', domain: document.domain });
}
