/*cookies scripts
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 eraseCookie(name) {
	createCookie(name,"",-1);
}

function yetInCookie(name,value) {
  if(readCookie(name)) {
	  var cook = readCookie(name).split(",");
	  var yetincook = false;
	  for(var i = 0; i < cook.length; i++) {
      if(cook[i] == value) {
        return true;
      }
    }
	} //il cookie contiene già questo valore
	return false;
}


function enqueueCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	
  if(readCookie(name)) {
	  if(yetInCookie(name, value)) {
	    return;
	  } else {
      document.cookie = name+"="+readCookie(name)+","+value+expires+"; path=/";
    }
  } else {
    document.cookie = name+"="+value+expires+"; path=/";
  }
}
end of cookies scripts*/

var message = function(msg, time) {
  var msgbox = $(".message");
  msgbox.html(msg);
  var posx = ($('body').width()*0.5)-180;
  var posy = 300;
  msgbox.css("left",posx+"px");
  msgbox.css("top",posy+"px");
  msgbox.css("display","block");
  if(!time) {
    time = 4000;
  }
  msgbox.fadeOut(time);  
}

var createCarousel = function(filter) {
  $('.jcarousel-skin').html("");
  $('.jcarousel-skin').remove();
  $('.carousel-box').addClass("loading").append("<ul id=\"mycarousel\" class=\"jcarousel-skin\"></ul>")
  $("#mycarousel").load("/carousel", { serie: filter }, function() {
      $("#mycarousel").jcarousel({scroll:4});
      $('.carousel-box').removeClass("loading");
      tooltipCarousel();
  });
}

var tooltipCarousel = function() {
  $("#mycarousel").find("li").hover(
    function () {
      $(this).find("div.pop-up").css("display","block");    
      
    }, 
    function () {
      $(this).find("div.pop-up").fadeOut("fast");
    }
  )
}

var manageMenu = function() {
  var menu = $('ul.menu');
  if (!menu || menu.length == 0) return;
  var lis = menu.find(">li");
  lis.not(".opened").find("ul.under-menu").css("display", "none");
  lis.find("h2 a").click(function() {
    var current_li = $(this).parent("h2").parent("li");
    lis.find("ul.under-menu").slideUp("normal", function() {
      lis.removeClass("opened");
    });
    current_li.find("ul.under-menu").slideDown("normal", function() {
      current_li.addClass("opened");
    }); 
    return false;
  });
}


var voteThis = function(e) {
      var vote = $(this);
      var voter = vote.parent();
      if(voter.busy == true) return false;
      if(voter.hasClass("voted")) {
        return false;
      }
      voter.addClass("voted");
      var idx = voter.children().index(this);
      var voto_scala = voter.attr("bs:scala");
      var obj_class = voter.attr("bs:class");
      var obj_id = voter.attr("bs:id");
      $("#votethis").html("stiamo aggiungendo il tuo voto...")
      // -----------
      //NOTA: la chiamata ajax di test era:  
      $.post("/social/voti/save",{
      	"to[class]"					: obj_class,
      	"to[id]"					: obj_id,
      	"action[data][scala]" 		: voto_scala,
      	"action[data][voto]" 		: (idx+1)
      }, function(data) {
      //----------- 
        voter.css("backgroundPosition", (-125+((idx+1)*25))+"px");
        voter.children().bind("click",voteThis);
        message("Il tuo voto è stato registrato.<br />Grazie per aver votato.")
        voter.fadeOut();
        $("#votethis").fadeOut();
      }); //end of $post statement
}
var initVoters = function() {
  var allvoters = $(".voter");
  var voters = allvoters.not(".disabled");
  var voteds = $(".voted");
  if(allvoters.length == 0) return false;
  
  for(var i = 0; i < voters.length; i++) {
    //if (!yetInCookie("freewayvotes",voters.eq(i).attr("id"))) {
    if(!voters.eq(i).hasClass("disabled") && !voters.eq(i).hasClass("voted")) {
      voters.eq(i).prev("p").fadeIn();
    }

  }
  
  voters.children().hover(
    function(){
        var vote = $(this);
        var voter = vote.parent();
        
        if(voter.hasClass("voted")) return false;
        
        for(var i = 0; i < 5; i++) {
          if(voter.children().eq(i).get(0) == this) {
             voter.css("backgroundPosition", (-125+((i+1)*25))+"px");
          }
        }
    },
    function() {
        var voter = $(this).parent();
        if(voter.hasClass("voted")) return false;
        $(this).parent().css("backgroundPosition", "-125px");
    }
  );
  voters.children().bind("click",voteThis);
}

var alternateCommentsBalloons = function() {
  var cballoons = $(".box-comment-utenti b.balloon");
  var classtoadd = ["red","green","blue"]
  var count = 0;
  for(var i = 0; i < cballoons.length; i++) {
    cballoons.eq(i).addClass(classtoadd[count]);
    count++;
    if(count == 3) {
      count = 0;
    }
  }
}

var injectComments = function() {
  var commentswrapper = $("#commentswrapper");
  if(commentswrapper.length == 0) return;
  var classe = commentswrapper.attr("bs:class");
  var id = commentswrapper.attr("bs:id");
  commentswrapper.load("/social/commenti", { "id" : id, "class" : classe }, function(data) {
    if(data.replace(/\s+/g,"") != "") {
      $(".commenti-title").css("display","block");
      $(".commenti-btn").css("display","block");
      commentswrapper.css("background","none");
      alternateCommentsBalloons();
    } else {
      commentswrapper.css("display","none");
    }
  });
}

function trackDownload(url) {
	if(typeof(Tracker) == "object" ) {
		Tracker._trackPageview("/downloads/"+url);
	}
}

function initLoginForm() {
	if($('#login_card_form').get(0)) {
	
		// Inizializzazione.
	    $('#login_password').hide();
		$('#incorrect_fields').hide();
		$('#user_not_exists').hide();
		$('#after_login').hide();    
	    $('#login_username').val($('#login_username').attr('bs:value'));
	    $('#login_clear_password').val($('#login_clear_password').attr('bs:value'));
	    
	    // Gestione focus e blur del campo username.
		$('#login_username').focus(function() {
			    if($('#login_username').val() == $('#login_username').attr('bs:value')) {
					$('#login_username').val('');	
				}				
			}
		);
		
		$('#login_username').blur(function() {
				if($('#login_username').val() == '') {
					$('#login_username').val($('#login_username').attr('bs:value'));	
				}
			}		
	 	);
		
		// Gestione focus e blur del campo password. 
		$('#login_clear_password').focus(function() {
			    if($('#login_clear_password').val() == $('#login_clear_password').attr('bs:value')) {
					$('#login_clear_password').hide();
					$('#login_password').show();
					$('#login_password').focus();	
				}				
			}
		);
		
		$('#login_clear_password').blur(function(){
		        if($('#login_clear_password').val() == '') {
					$('#login_clear_password').val($('#login_clear_password').attr('bs:value'));	
				}
			}		
		);
		
		$('#login_password').blur(function() {
		      	if($('#login_password').val() == '' || $('#login_password').val() == null) {
					$('#login_password').hide();
					$('#login_clear_password').show();
					$('#login_clear_password').val($('#login_clear_password').attr('bs:value'));
				}
			}
		);	
	}
}

function resetLogin() {
	$('#incorrect_fields').hide();
	$('#before_login').show();
}

function validateLoginForm() {
				    	
		$('#login_card_form').validate({
			rules: {
			
				username: {
					email: true,
					required : true					
				}, 
				
			    password: {
					required: true
				},
			    
			    clear_password: {
					required: true
				}	
			},
			
			onfocusout: false,
			
			onkeyup: false,
	
			invalidHandler: function(form, validator) {
			
				var errors = validator.numberOfInvalids();
				
				if(errors) {
					$('#before_login').hide();
					$('#incorrect_fields').show();
				}
				
				/*$('#reset').click( function() {
					alert("ping");
					$('#incorrect_fields').hide();
					$('#before_login').show();
					$('label.error').hide();
					location.reload();					
				});*/	
			},
			
			submitHandler: function() {
				
				var login = $('#login_card_form');
				var data = $('#login_card_form').serialize();
				
				$.ajax({
					type: 'POST',
				    url: login.attr("action"),
					data: login.serialize(),
					success: function(response) {
						var response_washed = jQuery.trim(response);
						if(response_washed == "login") {
							window.location.reload();
						} else if(response_washed == "password_ko") {
							$('#before_login').hide();
							$('#incorrect_fields').show();
						} else {
							var paragrafo = $(response).children();
							$('#before_login').html(paragrafo);
							Cufon.refresh();
						}
					},
					error: function(response) {
					    alert("Spiacenti: si è verificato un errore durante il login.\nProvare a ricaricare la pagina o riprovare più tardi.");
					} 
				});
				
				
				return false;
			}
	});
}

$(document).ready(function () {
    //$(document).pngFix();
    //$('body').supersleight();
    
    $("#incorrect_fields").hide();
	
	// Validation
	initLoginForm();
	validateLoginForm();
    
    if($('#mycarousel').length > 0) {
      var crsl = $('#mycarousel');
      crsl.css("display","block"); 
      crsl.jcarousel({
        scroll:4
      });
      tooltipCarousel();
    }
    manageMenu();
    initVoters();
    injectComments();
    
    if($("#privacy-condizioni"))
    	$("#privacy-condizioni").find("input:checkbox:checked").attr("checked", false);
    
    if($("#privacy-offerte") || $("#privacy-terzi")) {
    	$("#privacy-offerte").hide();
   	 	$("#privacy-terzi").hide();
    }
    
    $("#privacy-condizioni").click(function(){
		
		$("#privacy-offerte").slideDown("slow");
		$("#privacy-terzi").slideDown("slow")	
	});
});

 
