// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function post_img(img){
  
  new Ajax.Updater("img-container",'/admin/contents_edit/update_img/',
    {
    
    method:'post',
    parameters:"id="+img,
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
    },
    onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
  });
}

function add_img(img){
//alert(img);
  new Ajax.Updater("pic_container",'/admin/contents_edit/add_img/',
    {
    method:'post',
    parameters:"id="+img,
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
    },
    onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
  });
}

function delete_pic(pic){
  if (confirm('Supprimer cette image ?!')){
		new Ajax.Updater("pic_container",'/admin/contents_edit/delete_img/'+pic,
		  {
	    method:'get',
	    onSuccess: function(transport){
	      var response = transport.responseText || "no response text";
	    },
	    onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
	  });
  }
}

function checkImg(no_image_error_msg) {
  var img = document.getElementById('img-container');
  if(!img){
    alert(no_image_error_msg)
    return false;
  }
  else {
    return true;
  }
}

function editBlogCat(id) {
  theContents = document.getElementById('existing_cats_list')[document.getElementById('existing_cats_list').selectedIndex].innerHTML;
  document.getElementById('cat_name').value = theContents;
}

function confirmDestroyCat(id){
  if (confirm('Supprimer cette catégorie ainsi que TOUS les Posts associés ?!')){
    window.location.href="/admin/blog_configuration/"+id;
  }
  else {
    alert('non');
  }
}

function checkIsImg(id){
  //Check extension for images
  var valid_exts = ['jpg','png','gif','bmp','jpeg'];
  var is_image = false;
  var filename = document.getElementById(id).value.toLowerCase();
  
  for(var i=0; i < valid_exts.length ; i++) {  
    if(filename.lastIndexOf(valid_exts[i])!=-1) {  
      return true;
    }
  }

  alert("Votre fichier n'est pas une image !");
  return false;

}

function checkIsVid(id,msg){
  //Check extension for videos files
  if(
    (document.getElementById(id).value.lastIndexOf(".mpg")==-1) 
    && (document.getElementById(id).value.lastIndexOf(".mpeg")==-1)
    && (document.getElementById(id).value.lastIndexOf(".flv")==-1)
    ) {  
    alert(msg);
    
    return false;
  }
}

function revealMenu(element){
  $$('.admin_submenu').each(function(item){
    item.hide();
  });  
  $(element).toggle(); 
}

document.observe('dblclick', function(){
  $$('.admin_submenu').each(function(item){
    item.hide();
  });   
});

function logMe(token,locale){
  
  //Pops up a modal login box 
  if(!$('log_div')){
    log_div = Builder.node("div",{id:'log_div'});
    document.body.appendChild(log_div);
  }
  if(!$('log_mask')){
    log_mask = Builder.node("div",{id:'log_mask'});
    document.body.appendChild(log_mask);
  }
  
  $('log_div').show();
  $('log_mask').appear();
  
  //check if browser > IE6  
  if(parseFloat(navigator.appVersion.split('MSIE')[1]) < 7){
    login_target = '/admin/login/'+locale+'/noie6'
  }
  else {
    //Ok, go for login ad
    login_target = '/admin/login/'+locale
  }    

  new Ajax.Updater("log_div",login_target,
    {
      method:'post',
      parameters:{token: token},
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}  

function addMyEvent(){
  $('log_mask').appear();
  $('add_my_event').show();
  new Ajax.Updater("add_my_event",'/admin/events',
    {
      method:'get',
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}

function editMyEvent(id){
  $('log_mask').appear();
  $('edit_my_event').show();
  new Ajax.Updater("edit_my_event",'/admin/events/'+id,
    {
      method:'get',
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}

function checkIsValidDate(date_id) {
  //Date validator !!!FIXME!!! It's not REAL dates verification
  var this_date = $(date_id).value.split('/');

  if(this_date[0] && this_date[1] && this_date[2]){
    if(
      parseInt(this_date[0]) < 32 && parseInt(this_date[0]) > 0
      && parseInt(this_date[1]) < 13 && parseInt(this_date[1]) > 0 
      && parseInt(this_date[2]) < 2020 && parseInt(this_date[2]) > 2009){
    }
    else {
      highlight(date_id);
      alert('Date incorrecte !');
      return false;
    }
  }
  else {
    highlight(date_id);
    alert('Date incorrecte !');
    return false;
  }
  return true;
}

function checkEvents(){
  //Check if date inputs are valid
  if($('from').value != '' || $('from').value != 'jj/mm/aaaa' && $('to').value != '' || $('to').value != 'jj/mm/aaaa'){
    if(checkIsValidDate('from')){
      if(checkIsValidDate('to')){
        return true;
      }
    }
    return false;
  }
  return false;
}

function closeLogin(){
  $('log_mask').fade();
  $('log_div').hide();
}

function closeModal(modal_id){
  $('log_mask').fade();
  $(modal_id).hide();
}

function chgLocal(locale){
  new Ajax.Updater("log_div",'/admin/login/'+locale,
    {
      method:'get',
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}  

function chgPass(){
  new Ajax.Updater("log_div",'/admin/login/forgot_passwd',
    {
      method:'put',
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
} 

function modalContact(locale,token){
  if(!$('contact_div')){
    contact_div = Builder.node("div",{id:'contact_div'});
    document.body.appendChild(contact_div);
  }
  if(!$('log_mask')){
    log_mask = Builder.node("div",{id:'log_mask'});
    document.body.appendChild(log_mask);
  }  
  $('log_mask').appear();
  $('contact_div').show();
  new Ajax.Updater("contact_div",'/contact/show_modal_contact',
    {
      method:'post',
      parameters:{id:locale, token:token},
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}  

function openCSS(){
  window.open('/admin/csseditor','CSS_Editor',config='height=600,width=500,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,directories=no,status=no');
}

function editGadgetPos(gadget,theme){
//alert(img);
  $("editor_"+gadget).toggle();
  new Ajax.Updater("editor_"+gadget,'/manage/theme/pic_gadget/'+gadget+'/'+theme,
    {
    method:'get',
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
    },
    onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
  });
}

function showPoll(locale,answer){
  //Pops up a modal login box 
  if(!$('log_div')){
    log_div = Builder.node("div",{id:'log_div'});
    document.body.appendChild(log_div);

  }
  if(!$('log_mask')){
    log_mask = Builder.node("div",{id:'log_mask'});
    document.body.appendChild(log_mask);
  }

  $('log_div').show();
  $('log_mask').appear();
    
  new Ajax.Updater("log_div",'/polling/'+locale+'/'+answer,
    {
      method:'get',
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
} 

function checkModalMail(email_id){
  if($('name').value == ''){
    alert('Merci de renseigner votre nom');
    return false;
  }
  if(!checkEmail(email_id)){
    return false;
  }
  if($('subject').value == ''){
    alert('Merci de renseigner le sujet');
    return false;
  }
  if($('message').value == ''){
    alert('Votre E-Mail ne comporte pas de message !');
    return false;
  }
}


  
function checkNewPass(){

  if(!checkPass('pass1','pass2')){
    return false;     
  }
  if(!checkEmail('email')){
    return false;
  }
  return true;
}

function checkPass(pass1,pass2){
  var password = $(pass1).value;
  var passed = validatePassword(password, {
	  length:   [8, Infinity],
	  lower:    1,
	  upper:    0,
	  numeric:  1,
	  special:  0,
	  badWords: [],
	  badSequenceLength: 4
  });
  if(!passed) {
    alert("Votre mot de passe doit contenir au moins 8 caractères, mélangeant des chiffres et des lettres")
    return false;
  }
  if($('pass1').value != $('pass2').value) {
    alert("les mots de passe ne correspondent pas !")
    return false;
  }
  return true;
}
 
function checkNewAccount(all_logins){
  //check prefs_account form

  //check if login is not already in use
  var logins = all_logins.split('|');
  for(var i=0; i<logins.length-1; i++){
    if(logins[i] == $('prefs_login').value) {
      alert("Login déja utilisé !");
      return false;
    }
  }
     
  if($('prefs_first_name').value == ''){
    alert('Merci de saisir un prénom !');
    return false;
  }
 
  if($('prefs_last_name').value == ''){
    alert('Merci de saisir un nom !');
    return false;
  }

  if($('prefs_login').value == '') {
    alert("Merci de saisir un Login !");
    return false;
  }

  if($('prefs_password').value == ''){
    alert('Merci de saisir un mot de passe !');
    return false;
  }

  var password = $('prefs_password').value;
  var passed = validatePassword(password, {
	  length:   [8, Infinity],
	  lower:    1,
	  upper:    0,
	  numeric:  1,
	  special:  0,
	  badWords: [],
	  badSequenceLength: 4
  });
  if(!passed) {
    alert("Votre mot de passe doit contenir au moins 8 caractères, mélangeant des chiffres et des lettres")
    return false;
  }
  
  if($('prefs_user_name').value == ''){
    alert('Merci de saisir un pseudonyme !');
    return false;
  }
      
  if(!checkEmail('prefs_mail_addr')){
    return false;
  }  
}

function checkExistingAccount(all_logins){
  //check prefs_account form

  //check if login is not already in use
  var logins = all_logins.split('|');
  for(var i=0; i<logins.length-1; i++){
    if(logins[i] == $('prefs_login').value) {
      alert("Login déja utilisé !");
      return false;
    }
  }
     
  if($('prefs_first_name').value == ''){
    alert('Merci de saisir un prénom !');
    return false;
  }

  if($('prefs_last_name').value == ''){
    alert('Merci de saisir un nom !');
    return false;
  }

  if($('prefs_login').value == '') {
    alert("Merci de saisir un Login !");
    return false;
  }
  
  if($('prefs_user_name').value == ''){
    alert('Merci de saisir un pseudonyme !');
    return false;
  }
      
  if(!checkEmail('prefs_mail_addr')){
    return false;
  }  
}

function checkSiteParams(){
  //check prefs_site form
  if($('prefs_shop_name').value == ''){
    alert('Merci de saisir un prénom !');
    return false;
  }
   
  if(!checkEmail('prefs_mail_addr')){
    return false;
  }   
}

function sendPos(gadget,theme){
  var pos = $('positions_'+gadget).value;
  new Ajax.Request('/manage/theme/positions',
    {
      method:'post',
      parameters:{gadget:gadget, theme:theme, pos:pos},
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
      },
      onFailure: function(){ alert("Erreur dans l'échange avec le serveur...") }
    });
}
