var currentVersion;
var destVersion;

$(document).ready(function () {
   var address = document.location.host.split('.');
   var url = document.location.toString().split('/');
   
   if (document.cookie) {
      tmp = document.cookie.split(';');
      for (var Key in tmp) {
         tmp2 = tmp[Key].split('=');
         if (tmp2[0] == 'fontSize') TextSize(tmp2[1]);
      }
   }

   destVersion = 'www';
   if (checkBrowser({ 'msie' : '7', 'firefox' : '2', 'opera' : 9, 'safari' : 2 })) destVersion = 'w2';

   if (address.length == 2) {
      currentVersion = 'www';
   } else {
      currentVersion = address[0];
      address.shift();
   }

   /*if ((currentVersion != destVersion) && (!document.referrer)) {
      url[2] = destVersion + '.' + address.join('.');
      switch (destVersion) {
      case 'w2':
         page = url.pop();
         if (page) page = '#' + page;
         location.href = url.join('/') + '/' + page;
      break;
      case 'www':
         if (currentVersion == 'w2') {
            page = window.location.hash.slice(1);
            if (page) url.pop();
         }
         location.href = url.join('/') + '/' + page;
      break;
      case 'a':
      break;
      }
   } else {*/
      $("#q").val('Cerca');

      $("#q").focus(function() {
         if ($("#q").val() == 'Cerca') $("#q").val('');
      });

      $("#q").bind("keypress", function(e) {
         if (e.which == 13) {
            Search();
         }
      });
      
      $("#search_button").bind('click', function() {
         Search();
      });
      
      $(".link").live("mouseover", function() {
         $(this).addClass("link_hover");
      });

      $(".link").live("mouseout", function() {
         $(this).removeClass("link_hover");
      });

      if (currentVersion == 'w2') {
         $(".menu_level1").hide();
         $(".menu_level2").hide();

         $("#submit_button").live("click", function() {

            var f = $("#" + $(this)[0].form.id);
            PostData = f.formToArray();
            openLocation(f[0].action, '');

            return false;

         });

         hashPolling();
      }
   //}
});

function TextSize(size) {
   $("body").css('font-size', size);
   document.cookie = 'fontSize=' + size;
   return false;
}

function Search() {
   if (!$("#q").val()) {
      alert ('Inserire almeno un termine di ricerca.');
   } else {
      if (currentVersion == 'w2') openLocation('Ricerca.html?q=' + $('#q').val(), '');
      else location.href = 'Ricerca.html?q=' + $('#q').val();
   }
}

function Form2Array(formid) {
   var raw = $("#" + formid + " input");
   for (var k in raw) {
      var out = out + k + " > " + raw[k] + "\n";
   }
   alert (out);
}

function checkBrowser(list) {
   for ( var browser in list )
   {
      if (jQuery.browser[browser] && jQuery.browser.versionX >= list[browser]) return true;
   }

   return false;
}

var Content;

var Flag = 0;
var Ani = 50;
var oldpath;
var Path;
var Hash;
var oldHash;
var Opening;
var Flag2 = false;
var PostData;

$.history.callback = function ( reinstate, cursor ) {

   if (jQuery.browser.msie) {
      Flag2 = true;
      openLocation(reinstate.url, reinstate.path);
   }

}

function hashPolling() {

   Hash = window.location.hash.slice(1);

   if (Hash != oldHash) {
      if (Opening != Hash) {
         openLocation(Hash, '');
      }
   }
   oldHash = Hash;
   setTimeout('hashPolling();', 100);

}

function setPath(path) {
   Path = path;
}

function setContentNoPath(responseText, textStatus, XMLHttpRequest) {

   Flag = 0;
   $("#progress").stop();
   $("#progress").css('visibility', 'hidden');
   $("#progress").css('left', '-50px');
   Ani = 50;

   $("#content").html(responseText);

   path = $("#path").val();

   var expath = path.split('/');
   var level = expath.length;
   var id = expath[level - 1];

   $(".menu_level1").hide();
   $(".menu_level2").hide();

   for (n = 0; n < level; n++) {
      $("#child_" + expath[n]).show();
   }

   oldpath = expath;

   for (n = 1; n <= 3; n++) {
      $(".menu_i" + n).attr('src', '/images/menu/b' + n + 'u-mask.png');
   }

   $("#" + id + "_mask").attr('src', '/images/menu/b' + level + 'c-mask.png');

}

function setContent(responseText, textStatus, XMLHttpRequest) {

   Flag = 0;
   $("#progress").stop();
   $("#progress").css('visibility', 'hidden');
   $("#progress").css('left', '-50px');
   Ani = 50;

   $("#content").html(responseText);

}

function openLocation(url, path) {

   Opening = url;
   
   if (jQuery.browser.msie) {
      if (!Flag2) $.history( { 'url' : url, 'oldpath' : path } );
      else window.location.hash = url;
   }

   Flag2 = false;

   window.scrollTo(0,0);

   if (!path) {
      if (Path) path = Path;
      Path = '';
   }

   if (url.search('\\\?') != -1) url = url + "&w2";
   else url = url + "?w2";

   if (!path) {

      if (PostData) {
         jQuery.post(url, PostData, function (responseText, textStatus, XMLHttpRequest) { setContentNoPath(responseText, textStatus, XMLHttpRequest); }, 'html');
         PostData = null;
      } else {
         jQuery.get(url, '', function (responseText, textStatus, XMLHttpRequest) { setContentNoPath(responseText, textStatus, XMLHttpRequest); }, 'html');
      }
   } else {

      var expath = path.split('/');
      var level = expath.length;
      var id = expath[level - 1];

      if (!in_array(id, oldpath)) {
         if (!oldpath) {
            $(".menu_level1").hide();
            $(".menu_level2").hide();
            for (n = 0; n < level; n++) {
               $("#child_" + expath[n]).show();
            }
         } else {
            $(".menu_level" + level).slideUp(500);
            if (level == 1) $(".menu_level2").slideUp(500);
            $("#child_" + id).slideDown(500);
         }
      } else {
         if (level == 1) $(".menu_level2").slideUp(500);
      }

      oldpath = expath;

      for (n = 1; n <= 3; n++) {
         $(".menu_i" + n).attr('src', '/images/menu/b' + n + 'u-mask.png');
      }

      $("#" + id + "_mask").attr('src', '/images/menu/b' + level + 'c-mask.png');

      if (PostData) {
         jQuery.post(url, PostData, function (responseText, textStatus, XMLHttpRequest) { setContent(responseText, textStatus, XMLHttpRequest); }, 'html');
         PostData = null;
      } else {
         jQuery.get(url, '', function (responseText, textStatus, XMLHttpRequest) { setContent(responseText, textStatus, XMLHttpRequest); }, 'html');
      }
   }

   Flag = 1;

   loadingBar();

}

function loadingBar() {

   $("#progress").css('visibility', 'visible');
   if (Flag == 1) {
      $("#progress").animate( { left : Ani + 'px' }, 1000, '', function() { loadingBar() } );
      Ani = (Ani == 50 ? -50 : 50);
   }

}

