// $.page_data
$.page_data = {
  params : {
    Dom_Images : (document.images),
    host       : '',
    root       : '',
    lang       : '',
    page       : '',
    Ws_access  : { ip:'', brName:'', osName:'', crawler:'', cookies:'', jscript:'', isAol:'' },    
    isInit     : false
  },
  
  reg_reduce   : '((page)|(langue))',
  
  // check
  check: function(o){
    $.extend(this.params, o);
    
    $.navigation.access_data = {
      ip      : this.params.Ws_access.ip, 
      brName  : this.params.Ws_access.brName, 
      osName  : this.params.Ws_access.osName, 
      crawler : this.params.Ws_access.crawler 
    };
    
    var r = this.reduce_url();
    if ( !r ) return false;
    
	var p = this.get_params();
    $.extend(this.params, p);
    
    return true;
  },
  
  // reduce_url
  reduce_url: function(){
    if ( this.params.page!='' || this.params.lang!='' ) {
      $.navigation.update_cookie(this.params);
      var exc = new RegExp(this.reg_reduce, "g");
      var curr_url = this.current_url(exc);
      window.location.href = this.params.root+curr_url;
      return false;
    }
    
	return true;
  },
  
  // current_url
  current_url: function(exclude){
    var curr_url = window.location.href;
    if ( curr_url ) curr_url = curr_url.replace(this.params.root, '');
    if ( curr_url ) {
      var els = curr_url.split(/[\?&]/g);
      if ( els.length > 0 ) {
        curr_url = '';
        for (var i=0; i<els.length; i++) {
          if ( els[i] && els[i].indexOf('.php')==-1 ) {
            var keyval = els[i].split('=');
            if ( keyval.length==2 && keyval[0].search(exclude)==-1 ) curr_url += ((curr_url.indexOf('?')!=-1)?'&':'?')+els[i];
          }
        }
      }
    }
    return curr_url; 
  },
  
  // get_params
  get_params: function(){
    var p = { 
      page : 'home', 
      lang :'fr' 
    };
    
    var cooki = cookie_value($.navigation.cook_access);
    if ( cooki ) {
      var page_infs = cooki.split(',');
      if ( typeof page_infs[0] != 'undefined' && page_infs[0] && $.navigation.main_menu.indexOf(page_infs[0])!=-1 )  p.page = page_infs[0];
      if ( typeof page_infs[1] != 'undefined' && page_infs[1] && $.navigation.main_flags.indexOf(page_infs[1])!=-1 ) p.lang = page_infs[1];
    }
    return p;
  }
};

(function ($) {

// $.navigation
$.navigation = {
  access_data  : '',
  saved_access : true,
  
  cook_access  : 'irecords_access',
  main_flags   : 'fr,en,it',
  main_menu    : 'home,online,springboards,production,contact',
  resized      : false,
  page_sizes   : { div_w: 758 },
  
  temp         : {},
  sitepdir     : 'img/preload/', // images to preload for rollover flags
  trans_col    : ($.browser.msie)?"#FFFFFF":"transparent",
  
  // load_ws
  load_ws: function(){
    $.translated_msg.preload_trads();
      
    // css stylesheets
    if      ( $.browser.safari )  stylesheet_add('inc/css/main_safari.css');
    else if ( $.browser.opera )   stylesheet_add('inc/css/main_opera.css');
//  else if ( $.browser.firefox ) stylesheet_add('inc/css/main_firefox.css');
    
    this.page_sizes.win_w = parseInt($(window).width());
    this.page_sizes.win_h = parseInt($(window).height());
    this.page_sizes.fix_L = parseInt(this.page_sizes.win_w/2 - this.page_sizes.div_w/2);
    $("#main_div").css({ left: this.page_sizes.fix_L+'px' });
    
    this.translate_pages();
    
    var html;
    
    // top_frame
    html  = '<table cellpadding="0" cellspacing="0" border="0" width="100%" summary="Top frame">' + "\n";
    html += ' <tr>' + "\n";
    html += '  <td height="34" valign="bottom" align="left">' + "\n";
    html += '<div class="main_menus" id="top_menu">' + "\n";
    html += '<table cellpadding="0" cellspacing="0" border="0" summary="Menu">' + "\n";
    html += ' <tr>' + "\n";
    var menus = this.main_menu.split(',');
    for (var i=0; i<menus.length; i++) {
      html += '  <td height="36" valign="middle"><div class="top_buttons" id="menu_'+menus[i]+'"><span class="translate" name="menu_'+menus[i]+'"></span></div></td>' + "\n";
      if ( i<menus.length-1 ) html += '  <td> <b>|</b> </td>' + "\n";
    }
    html += ' </tr>' + "\n";
    html += '</table>' + "\n";
    html += '</div>' + "\n";
    html += '  </td>' + "\n";
    html += '  <td width="7">&nbsp;</td>' + "\n";
    html += '  <td width="105" valign="bottom" align="right">' + "\n";
    html += '<div class="main_flags" id="top_flags">' + "\n";
    html += '<table cellspacing="0" cellpadding="0" border="0" summary="Flags">' + "\n";
    html += '  <tr>' + "\n";
    var flags = this.main_flags.split(',');
    for (var i in flags) {
      html += '  <td style="padding-right:2px;"><div class="flag_buttons" id="FlagsImg_'+flags[i]+'">';
      html += '<img src="'+$.navigation.sitepdir+'flag_'+flags[i]+'.jpg" alt="'+$.translated_msg.get('flag_'+flags[i])+'" />';
      html += '</div>';
      html += '</td>' + "\n";
    }
    html += ' </tr>' + "\n";
    html += '</table>' + "\n";
    html += '</div>' + "\n";
    html += '  </td>' + "\n";
    html += ' </tr>' + "\n";
    html += '</table>' + "\n";
	
    $("#top_frame").html(html);
    $("#top_menu").css({"border-color":$.navigation.trans_col});
    
    // bottom_menu
    html  = '<table cellspacing="0" cellpadding="0" border="0" summary="Bottom Frame">' + "\n";
    html += ' <tr>' + "\n";
    html += '  <td>2007-2009 &copy; <a href="http://www.imotep-project.com" target="_blank">iMotep Project</a></td><td width="10" align="center"> - </td>' + "\n";
    html += '  <td><a href="http://www.mozilla-europe.org/'+iz_data.lang+'/products/firefox" target="_blank">Firefox</a></td><td width="10" align="center"> - </td>' + "\n";
    html += '  <td> Con&ccedil;u par <a href="http://www.izisawebsite.com" target="_blank">iZiS a WebSite</a></td>' + "\n";
    html += ' </tr>' + "\n";
    html += '</table>' + "\n";
    $("#bottom_menu").html(html);
  
    this.page_html(iz_data.page);
    $.translated_msg.translation();
    
    this.resize();
    this.update_menu();
    this.load_page_jquery();
    this.update_cookie();
    
    $("#main_div").animate({opacity:1.0}, 300).fadeIn(400, function(){
      $("#main_display").animate({opacity:1.0}, 10).slideDown("slow");
    });
    
    iz_data.isInit = true;
    $.debug_all();
   
    // resize window
    $(window).bind("resize", function resize(e){$.navigation.resize();});
  },
  
  // translate_pages
  translate_pages: function(){
    var data = $.jsHttpQuery.launch_query({ file:'pages', data:'&langue='+iz_data.lang });// alert(data);
    data = eval(data);
    for (var i in data) $("#main_"+data[i].id).html(data[i].text);
  },
  
  // page_html
  page_html: function(p){
    var isPage = $("#main_"+p+"_html").html();
    if ( !isPage || isPage=='null' ) {
      $("#main_display").html('Page not found..');
      return;
    }
    
    var html = '';
    
    var h = $("#main_"+iz_data.page).html();
    if ( h && h!='null' ) html += '<p class="main_text">'+h+'</p>' + "\n";

    $("#main_display").html(html);
  },
 
  
  // change_page
  change_page: function(p){
    if ( this.main_menu.indexOf(p)==-1 ) p = 'home';
    iz_data.page = p;
    
    $.scrollTo(0, 400);
    $("#main_display").animate({opacity:1.0}, 10).slideUp("slow", function(){
      $.navigation.temp.preview = '';
      $.navigation.page_html(p);
      $.navigation.update_menu();
      $.translated_msg.translation();
    
      $.navigation.load_page_jquery();
      $.navigation.update_cookie();
      
      $("#main_display").animate({opacity:1.0}, 200).slideDown("slow");
    });
    
    this.saved_access = false;
    this.save_access();
    $.debug_all();
  },
  
  // change_language
  change_language: function(lang) {
    if ( this.main_flags.indexOf(lang)!=-1 ) {
      iz_data.lang = lang;
      $.navigation.update_cookie();
      window.location.href = iz_data.root; 
	}
    return;
  },
  
  
  // load_page_jquery
  load_page_jquery: function(){
    // top_buttons
    $(".top_buttons").each(function(i){
      var id = this.getAttribute('id').replace('menu_','');
      $(this).unbind("click").unbind("hover");
      $(this).hover( function(){ if(id!=iz_data.page)$(this).css({"border-color":"#99141B"}); }, function(){ if(id!=iz_data.page)$(this).css({"border-color":$.navigation.trans_col}); });
      $(this).click(function(){ if(id!=iz_data.page)$.navigation.change_page(id); }); 
      $(this).corners("7px");
    });
    
    // flag_buttons
    $(".flag_buttons").each(function(i){
      var id = this.getAttribute('id').replace('FlagsImg_',''); 
      $(this).unbind("click").unbind("hover");
      $(this).hover(function(){ if(id!=iz_data.lang)$(this).css({"border-color":"#CC2B2B"}); }, function(){ if(id!=iz_data.lang)$(this).css({"border-color":"#FFFFFF"}); });
      $(this).click(function(){ if(id!=iz_data.lang)$.navigation.change_language(id); }); 
      $(this).corners();
    });
    
    // round_submit_buttons
    $(".round_submit_buttons").each(function(i){
      $(this).unbind("click").unbind("hover");
      $(this).hover( 
       function(){ $(this).css({"background-color":"#CDCDCD", "color":"#99141B" }); }, 
       function(){ $(this).css({"background-color":"#DCDCDC", "color":"#363636" }); }
      );
      $(this).click(function(){ $.navigation.sendMessage_check(); }); 
      $(this).corners();
    });
    
    // c_sujet > option
    $("#c_sujet > option").each(function(i,n){
      var value = $(this).attr("value");
      var texte = ( value ) ? $.translated_msg.get('contact_sujets_'+value) : '';
      if ( texte ) $(this).text(texte);
    });
  },
  
  
  // sendMessage_check
  sendMessage_check: function(){
    this.remove_mainError();
    
    var o = { 
      robot   : ( $("#c_last").attr("value")!='' )?true:false,
      sujet   : $("#c_sujet").attr("value"),
      name    : $("#c_name").attr("value"),
      email   : $("#c_email").attr("value"),
      message : $("#c_message").attr("value")
    };
    
    var error   = '';
    if      ( !o.sujet ) error = 'c_sujet';
    else if ( !o.name ) error = 'c_name';
    else if ( !o.email || !check_email(o.email) ) error = 'c_email';
    else if ( !o.message ) error = 'c_message';
    else {
      var data = 'name='+o.name+'[|]email='+o.email+'[|]sujet='+$.translated_msg.get(o.sujet)+'[|]message='+o.message;
      if ( o.robot ) data += '[|]robot=yes';
      
      var req = $.jsHttpQuery.launch_query({ file:'pages/sendmail', data:'&data='+escape(data) });
      if ( !req ) return;
      if ( req && req!='VALID' ) error = req;
    }
    
    if ( error ) { 
      var errorKey = ( error=='contact_messBAD' ) ? error : 'contact_checkfield';
      this.mainError(true, $.translated_msg.get(errorKey), error);
      return;
    }
    
    this.mainError(false, $.translated_msg.get('contact_messOK'), '');
  },
  
   // mainError
  mainError: function(err, message, err_field){
    if ( err ) {
      if ( err_field ) {
        $("#"+err_field).css({"border-color":"#CC2B2B","color":"#CC2B2B"});
        $("#"+err_field).click(function(){ $(".box").css({"border-color":"#DCDCDC","color":"#363636"}); $.navigation.remove_mainError(); });
      }
      
      $("#mainErrorDiv").html('<span class="mainMessage_err">'+message+'</span>');
      $("#mainErrorDiv").show("slow");
      $("#mainErrorDiv").unbind("click");
      $("#mainErrorDiv").css({"cursor":"pointer"});
      $("#mainErrorDiv").click(function(){$.navigation.remove_mainError();});
    }
    else { 
      $(":input").val("");
      $("#mainErrorDiv").html('<span class="mainMessage_mess">'+message+'</span>');
      $("#mainErrorDiv").show("slow");
      $("#mainErrorDiv").css({"cursor":"pointer"});
      $("#mainErrorDiv").animate({opacity:1.0}, 10000).hide("slow", function(){ $.navigation.remove_mainError(); });
      $("#mainErrorDiv").click(function(){$.navigation.remove_mainError();});
    }
  },
  
  // remove_mainError
  remove_mainError: function(){
    $(".box").css({"border-color":"#DCDCDC","color":"#363636"});
    $("#mainErrorDiv").unbind("click");
    $("#mainErrorDiv").css({"border-color":"#FFFFFF"});
    $("#mainErrorDiv").hide("slow");
    $("#mainErrorDiv").html('');
  },
  
 
  // update_menu
  update_menu: function(){
    $("div[id^='menu']").css({ "border-color":$.navigation.trans_col, "background-color":$.navigation.trans_col });
    $("div[id^='FlagsImg']").css({ "border-color":"#FFFFFF" });
    $(".top_buttons").css({ "color":"#99141B" });
    $(".flag_buttons").css({ "color":"#99141B" });
    $("#menu_"+iz_data.page).css({ "border-color":"#99141B", "color":"#363636" });
    $("#FlagsImg_"+iz_data.lang).css({ "border-color":"#CC2B2B", "color":"#363636" });
  },
  
  
  // save_access
  save_access: function(){
    if ( !this.access_data || this.saved_access ) return;
	$.get('access.php', this.access_data, function(data){ if (data.success) $.navigation.saved_access = true; $.debug_all(); }, 'json');
  },
  
  // update_cookie
  update_cookie: function(o) {
    if ( typeof o == 'object' ) iz_data = o;
    cookie_update(this.cook_access, iz_data.page+','+iz_data.lang, 365, iz_data.host);
  },
  
  // resize
  resize: function(){
    $.navigation.page_sizes.win_w = parseInt($(window).width());
    $.navigation.page_sizes.win_h = parseInt($(window).height());
    $.navigation.page_sizes.fix_L = parseInt($.navigation.page_sizes.win_w/2 - $.navigation.page_sizes.div_w/2);
    
    if ( !$.navigation.resized ) {
      $("#main_div").css({ left: $.navigation.page_sizes.fix_L+'px' });
      $.navigation.resized = true;
      $.navigation.resize();
      return;
    }
    
    $.navigation.resized = false;
    if ( $.navigation.page_sizes.fix_L < 20 ) $.navigation.page_sizes.fix_L = 20;
    $("#main_div").css({ left: $.navigation.page_sizes.fix_L+'px' });
  }
};

})(jQuery);
