// ------------------------------------  Confirm delete ------------------------------

var deleteButton = 
{

 init:function()
 {
  var links = Core.getElementsByClass("delete");
  
  for (var i = 0; i < links.length; i++ )
  {
   Core.addEventListener(links[i], "click", deleteButton.clickListener); 
  }

 },
 
 
 clickListener: function(event)
 {

  var agree=confirm("Vous êtes sûr ce que vous voulez supprimer?");

   if (agree)
   {
    return true ;
   }
   else
   {
    Core.preventDefault(event);
   }
 }

};

Core.start(deleteButton);



// --------------------------------- Check all delete checkboxes ------------------------------

var deleteAll = 
{

 init:function()
 {
  
  var delAll  = document.getElementById("deleteAll");
    
  Core.addEventListener(delAll, "click", deleteAll.clickListener); 
    
 },
 
 clickListener: function(event)
 {
 
   
   if (this.checked == true)
   {
    deleteAll.checkAll();
   }
   else
   {
    deleteAll.uncheckAll();
   }

 },

 
 checkAll: function()
 {
  
  checkbox = Core.getElementsByClass("deleteCheck");
  
  for (i = 0; i < checkbox.length; i++)
  {
   checkbox[i].checked = true;
  }
  
 },
 
 uncheckAll: function()
 {
  
  checkbox1 = Core.getElementsByClass("deleteCheck");
  
  for (i = 0; i < checkbox1.length; i++)
  {
   checkbox1[i].checked = false;
  }
  
 }
 

};

Core.start(deleteAll);



// ------------------------------------  Confirm update photos ------------------------------

function confirmUpdatePhotos() {

var cboxes = document.getElementsByName('imageid[]');
var oneChecked = false;
var rc = true

for (var i=0; i < cboxes.length; i++) {
			if (cboxes[i].checked) {
				oneChecked = true;
				break;
			}
		}
		if (oneChecked) {
			
                  var agree=confirm("Vous êtes sûr ce que vous voulez supprimer?");
                    if (agree) {
                     rc = true
                    } else {
                     rc =false
                    }
                    
                    
                    
		} return rc;
	
}



// ---------------------- Validate newsletter form english ----------------------------

function validateNewsletterEnglish() {

// Validate email address

var field = document.form.email; // email field
  var str = field.value; // email string
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  var reg3 = /yourname@example.com/;

  if (!reg1.test(str) && !reg2.test(str)) { // if syntax is invalid
   alert("\"" + str + "\" is an invalid e-mail. Please try again"); // this is also optional
   field.focus();
   field.select();
   return false;
  }

  if (reg3.test(str)) {
   alert("\"" + str + "\" is an invalid e-mail. Please try again"); // this is also optional
   field.focus();
   field.select();
   return false;
  }
}



// ---------------------- Validate newsletter form french -----------------------------

function validateNewsletterFrench() {

// Validate email address

var field = document.form.email; // email field
  var str = field.value; // email string
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  var reg3 = /votrenom@example.com/;

  if (!reg1.test(str) && !reg2.test(str)) { // if syntax is invalid
   alert("\"" + str + "\" n\'est pas valide. Essayer encore s\'il vous plait"); // this is also optional
   field.focus();
   field.select();
   return false;
  }

  if (reg3.test(str)) {
   alert("\"" + str + "\" n\'est pas valide. Essayer encore s\'il vous plait"); // this is also optional
   field.focus();
   field.select();
   return false;
  }
}



// --------------------------- Validate form english ----------------------------------

function validateFormEnglish() {


// Check name value is input

var name = document.form.name.value
var namePattern = /^[a-z0-9A-Z-\\.\\?\\' \\']+$/
var fieldname = document.form.name

if (!namePattern.test(name)) {
 alert ("Please enter your name using only letters and numbers")
 fieldname.focus();
 fieldname.select();
 return false
}


// Validate email address

var field = document.form.email; // email field
  var str = field.value; // email string
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid

  if (!reg1.test(str) && !reg2.test(str)) { // if syntax is invalid
   alert("\"" + str + "\" is not a valid email address. Please try again"); // this is also optional
   field.focus();
   field.select();
   return false;
  }
  



// Check tel no is only numbers
var telno = document.form.tel.value
var fieldtel = document.form.tel
var telPattern = /^[0-9\\' \\'\\+]+$/

if (telno && !telPattern.test(telno)) {
 alert ("Please enter your telephone number using only numbers and spaces")
 fieldtel.focus();
 fieldtel.select();
 return false
 }


// Check message value is valid

if (document.form.message.value) {
var message = document.form.message.value
var messagePattern = /^[a-z0-9A-Z\?!$£&\,\.\\' \\']+$/

if (!messagePattern.test(message)) {
 alert ("Sorry, your comment includes invalid characters. Please use only letters and / or numbers.")
 return false
 }
}


}



// --------------------------- Validate form french -----------------------------------

function validateFormFrench() {


// Check name value is input

var name = document.form.name.value
var namePattern = /^[a-z0-9A-Z-àâäçéèêëîïôöùûüÀÂÄÇÉÈÊËÎÏÔÙÛÜ\\.\\?\\' \\']+$/
var fieldname = document.form.name

if (!namePattern.test(name)) {
 alert ("Tapez votre nom utilisant lettres et numéros s\'il vous plait")
 fieldname.focus();
 fieldname.select();
 return false
}


// Validate email address

var field = document.form.email; // email field
  var str = field.value; // email string
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid

  if (!reg1.test(str) && !reg2.test(str)) { // if syntax is invalid
   alert("\"" + str + "\" n\'est pas valide. Essayer encore s\'il vous plait"); // this is also optional
   field.focus();
   field.select();
   return false;
  }



// Check tel no is only numbers
var telno = document.form.tel.value
var fieldtel = document.form.tel
var telPattern = /^[0-9\\' \\'\\+]+$/

if (telno && !telPattern.test(telno)) {
 alert ("Tapez votre no de téléphone utilisant que de chiffres.")
 fieldtel.focus();
 fieldtel.select();
 return false
 }


/* Check message value is valid

if (document.form.message.value) {
var message = document.form.message.value
var messagePattern = /^[a-z0-9A-Z-àâäçéèêëîïôöùûüÀÂÄÇÉÈÊËÎÏÔÙÛÜ\?&\'\\r\\n\\t-]+$/

if (!messagePattern.test(message)) {
 alert ("Vous avez des charactères dans votre message qui ne sont pas valide. Utilisez seulement lettres et chiffres s\'il vous plait.")
 return false
 }
}
*/

}



// ------------------ Validation for the registration form english ---------------------------

function validateRegForm() {

// Check name value is input

var name = document.regform.name.value
var namePattern = /^[a-z0-9A-Z-\\.\\?\\' \\']+$/
var fieldname = document.regform.name

if (!namePattern.test(name)) {
 alert ("Please enter your name using only letters and / or numbers")
 fieldname.focus();
 fieldname.select();
 return false
}


// Check tel no is only numbers
var telno = document.regform.tel.value
var fieldtel = document.regform.tel
var telPattern = /^[0-9\\' \\'\\+]+$/

if ((telno.length != 0) && !telPattern.test(telno)) {
 alert ("Please enter your telephone number using only numbers and spaces")
 fieldtel.focus();
 fieldtel.select();
 return false
 }



// Check a username is entered

if (!document.regform.user.value) {
var fielduser = document.regform.user
  alert ("Please enter a username")
  fielduser.focus();
  fielduser.select();
  return false
 } 


// Check a password is entered

if (!document.regform.pass.value) {
var fieldpass = document.regform.pass
  alert ("Please enter a password")
  fieldpass.focus();
  fieldpass.select();
  return false
 } 



// Validate email address

var field = document.regform.email
  var str = field.value
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/
  if (!reg1.test(str) && reg2.test(str)) { // if syntax is valid
    return true;
  }
  alert("\"" + str + "\" is an invalid e-mail. Please try again")
  field.focus();
  field.select();
  return false;




} // Close form validation for registration





// ------------------ Validation for the registration form french ---------------------------

function validateRegFormFrench() {

// Check name value is input

var name = document.regform.name.value
var namePattern = /^[a-z0-9A-Z-\\.\\?\\' \\']+$/
var fieldname = document.regform.name

if (!namePattern.test(name)) {
 alert ("Tapez votre nom utilisant que de lettres et chiffres s'il vous plait.");
 fieldname.focus();
 fieldname.select();
 return false
}


// Check tel no is only numbers
var telno = document.regform.tel.value
var fieldtel = document.regform.tel
var telPattern = /^[0-9\\' \\'\\+]+$/

if ((telno.length != 0) && !telPattern.test(telno)) {
 alert ("Tapez votre numéro de téléphoe utlisant que de chiffres s'il vous plait.");
 fieldtel.focus();
 fieldtel.select();
 return false
 }



// Check a username is entered

if (!document.regform.user.value) {
var fielduser = document.regform.user
  alert ("Il faut choisir un pseudo");
  fielduser.focus();
  fielduser.select();
  return false
 } 


// Check a password is entered

if (!document.regform.pass.value) {
var fieldpass = document.regform.pass
  alert ("Choissisez un mot de pass s'il vous plait.");
  fieldpass.focus();
  fieldpass.select();
  return false
 } 



// Validate email address

var field = document.regform.email
  var str = field.value
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/
  if (!reg1.test(str) && reg2.test(str)) { // if syntax is valid
    return true;
  }
  alert("L'address email \"" + str + "\" n'est pas valide. Essayez encore s'il vous plait.")
  field.focus();
  field.select();
  return false;




} // Close form validation for registration french





// ************************************ Select all text in input when clicked ************************************

function selectall(id) {

document.getElementById(id).focus();
document.getElementById(id).select();

 function init(){
        select_field('text1');
    }

}



// ****************************************** admin functions *****************************************************

// Video category check
function chooseCat() {

var cat = document.addvideo.category.value
var category = document.addvideo.category

 if (cat < 1) {
 alert ("Il faut choisir un catégorie")
 return false
  }

}


// Musician check on add music
function chooseMusician() {

var mus = document.addmusic.musician.value
var musician = document.addmusic.musician

 if (mus < 1) {
 alert ("Il faut choisir un musician")
 return false
  }

}


// Gallery category check
function chooseGalleryCat() {

var cat = document.upload_form.category.value
var category = document.upload_form.category

 if (cat < 1) {
 alert ("Il faut choisir un catégorie")
 return false
  }

}

// Video form validation
function validateVideo() {

 if (!document.addvideo.name.value) {
 field = document.addvideo.name
 alert("Il faut taper un nom pour la video");
 field.focus();
 return false;
 }


 if (!document.addvideo.url.value) {
 field = document.addvideo.url
 alert("Il faut taper un nom de fichier");
 field.focus();
 return false;
 }

var cat = document.addvideo.category.value
var category = document.addvideo.category

 if (cat < 1) {
 alert ("Il faut choisir un catégorie")
 return false
  }

}


// Select all items in the newsletter list 

function checkAllNewsletter(field) {

var button = document.newsletter.button

 if (button.checked) {
  for (i = 0; i < field.length; i++)
	field[i].checked = true ;
  }

 if (!button.checked) {

for (i = 0; i < field.length; i++)
	field[i].checked = false ;
 }
}



// ------------------------------------ Open links in new window -------------------------------

var externalLinks = 
{
  init:function()
 {
  
  var extLinks = Core.getElementsByClass("external");
  
  for (var i = 0; i < extLinks.length; i++)
  {
   Core.addEventListener(extLinks[i], "click", externalLinks.clickListener);
  }
  
 },
 
 
 clickListener: function(event)
 {
 
  open(this.href);
  Core.preventDefault(event);
 
 }

};

Core.start(externalLinks);