// Onload des fonctions
function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if(oldonload) oldonload();
			func();
		}
	}
}

//// Récupération d'éléments par type et nom de classe
//document.getElementsByClassName = function(elmtName, className) {
  //var children = document.getElementsByTagName(elmtName);
  //var elements = new Array();
  //var counter = 0;
  //
  //for (var i = 0; i < children.length; i++) {
    //var child = children[i];
    //var classNames = child.className.split(' ');
    //for (var j = 0; j < classNames.length; j++) {
      //if (classNames[j] == className) {
        //elements[counter] = child;
        //counter++;
        //break;
      //}
    //}
  //}
//
  //return elements;
//}

// Changer le filtre de recherche (sur liste frame enligne)
// La valeur doit être la même que l'id du fieldset
function changeSearchFilter() {
  var filter = document.getElementById('search');
	if(!filter) return false;
  var parent = filter.parentNode.parentNode;
  var fields = parent.getElementsByTagName('fieldset');
  if(!parent || !fields) return false;

  for(var i = 1; i < fields.length; i++) {
    filter.onchange = function() {
      for(var j = 1; j < fields.length; j++) {
        fields[j].className = '';
      }
  
      var target = document.getElementById(this.value);
      if(!target) return false;
  
      if(target.className == 'actif' || target.className == '' || !target.className) {
        target.className = 'actif';
      } else {
        target.className = '';
      }
    }
  }
}

// Préparation du Plier/Déplier
function prepareShowHide(id, elmtName) {
	if(!document.getElementById(id)) return false;

	if(!elmtName) {
		var trigger = document.getElementById(id);
		trigger.onclick = showHide;
	} else {
		var triggers = document.getElementById(id).getElementsByTagName(elmtName);
		if(!triggers) return false;

  	for(var i =0 ; i < triggers.length; i++) {
			triggers[i].onclick = showHide;
  	}
	}
}

// Plier/Déplier sur abonnements
function prepareShowHidePrelevements() {
	var lk = document.getElementById('lk-prelevements');
	var div = document.getElementById('prelevements');
	if(!lk || !div) return false;

	lk.onclick = function() {
		div.style.display = div.style.display == 'none' ? 'block' : 'none';
		this.className = this.className == 'show' ? 'hide' : 'show';
		window.location.hash = 'lk-prelevements';
		return false; 
	};
}

// Plier/Déplier sur services
function prepareShowHideServices() {
	var lk = document.getElementById('lk-services');
	var div = document.getElementById('servicesInfos');
	if(!lk || !div) return false;

	lk.onclick = function() {
		div.style.display = div.style.display == 'none' ? 'block' : 'none';
		window.location.hash = 'lk-services';
		this.className = this.className == 'show' ? 'hide' : 'show';
		return false; 
	};
}

// Plier/Déplier sur fakeSelect
function prepareShowHideFakeSelect() {
	$('.fakeSelect').unbind('click');
	$('.fakeSelect').click(function(){
		if (this.className == 'fakeSelect show') {
			this.className = 'fakeSelect hide';
		} else {
			this.className = 'fakeSelect show';
		}
	});
	//var fake = document.getElementsByClassName('div', 'fakeSelect');
	//if(!fake.length) {return;}
	//for(var i = 0, cur; cur = fake[i]; i++) {
		//cur.onclick = function() {
			//this.className = this.className == 'fakeSelect show' ? 'fakeSelect hide' : 'fakeSelect show';
		//};
	//}
}

// Plier/Déplier
function showHide() {
	if(this.nodeName.toLowerCase() == 'a' && this.href.indexOf('lk-reply') != -1) {var tg = 'form';}
	if(this.nextSibling) {
		var target = this.nextSibling;
		if(tg) {
			while(target && target.nodeName.toLowerCase() != tg) {target = target.nextSibling;}
		} else {
			while(target && target.nodeType != 1) {target = target.nextSibling;}
		}
		if(!target) return false;
		if(target.style.display == 'block' || target.style.display == '') {
			target.style.display = 'none';
			this.className = 'show';
			this.setAttribute('title', 'Afficher');
		} else {
			target.style.display = 'block';
			this.className = '';
			this.setAttribute('title', 'Masquer');
		}
	}
	showHideState(); // écrire un cookie
	return false;
}

// Chargement des fonctions Plier/Déplier
function startShowHide() {
	prepareShowHide('profil', 'h4');
	prepareShowHide('messager', 'h3');
	prepareShowHide('recherche', 'h3');
	prepareShowHide('outils', 'h3');
	prepareShowHide('lk-reply');
	prepareShowHide('conversations', 'h3');
	prepareShowHide('lk-points');
	prepareShowHide('faq', 'h4');
	prepareShowHidePrelevements();
	prepareShowHideServices();
	prepareShowHideFakeSelect();
}

/***********************************************/
/* Cookie pour Messager ************************/
function showHideState() {
	if(!document.getElementById('messager')) return false; // le cookie n'est écrit que pour le messager
  var elmts = document.getElementById('messager').getElementsByTagName('h3');
	var target;
	var all_elmts = '';
	for(var i = 0; i < elmts.length; i++) {
		if(elmts[i].parentNode.getElementsByTagName('ul')[0] || elmts[i].parentNode.getElementsByTagName('div')[0]) {
			target = (elmts[i].nextSibling.nodeType == 1) ? elmts[i].nextSibling : elmts[i].nextSibling.nextSibling;
			all_elmts = all_elmts+target.style.display+':';
		} else {
			all_elmts = all_elmts+'block'+':';
		}
	}
	createCookie('messager', all_elmts, 365);
}

function createCookie(name, value, days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  } else  {
		expires = "";
	}
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var cookie = document.cookie.split(';');
	for(var i = 0; i < cookie.length; i++) {
		if(cookie[i].indexOf(name) != -1) var str = cookie[i];
	}
	if(!str) {str = ''; return str;}
	var cut = str.indexOf('=') + 1;
	str = str.substring(cut);
	var values = str.split(':');
  return values;
}

function setShowHideMessager() {
  var states = readCookie('messager');
	if(!document.getElementById('messager')) return false;
	var elmts = document.getElementById('messager').getElementsByTagName('h3');
	var target, elmt, state;

	for(var i = 0; i < elmts.length; i++) {
		if(elmts[i].parentNode.getElementsByTagName('ul')[0] || elmts[i].parentNode.getElementsByTagName('div')[0]) {
			target = (elmts[i].nextSibling.nodeType == 1) ? elmts[i].nextSibling : elmts[i].nextSibling.nextSibling;
			elmt = elmts[i];
			state = states[i]
			if(state == 'block' || state == null) {
				elmt.className = '';
				elmt.setAttribute('title', 'Masquer');
				target.style.display = 'block';
			} else {
				elmt.className = 'show';
				elmt.setAttribute('title', 'Afficher');
				target.style.display = 'none';
			}
		}
	}
}
/***********************************************/
/* Fin Cookie **********************************/

// Menu déroulant
var menuSelect = '';
var lkSelect = '';

function dropDownMenu() {
	var menu = document.getElementById('main-menu');
	if(!menu) return false;
	var items = menu.getElementsByTagName('li');
	for (var i = 0; i < items.length; i++) {
		items[i].onmouseover = function() {
			if(!this.getElementsByTagName('ul')[0]) {return false;} else {var submenu = this.getElementsByTagName('ul')[0];}
			if(this.firstChild.nodeName.toLowerCase() == 'a') this.firstChild.className = 'actif';
			submenu.style.display = 'block';
		}

		items[i].onmouseout = function() {
			if(!this.getElementsByTagName('ul')[0]) {return false;} else {var submenu = this.getElementsByTagName('ul')[0];}
			this.firstChild.className = '';
			submenu.style.display = 'none';
		}
	}
}

// Couleurs alternatives en hover pour les tableaux
function tableHover() {
  var tables = document.getElementsByTagName('tr');
	if(!tables) return false;

	for(var i = 0; i < tables.length; i++) {
  	tables[i].onmouseover = function() {
  		if(!this.className) this.className = 'alt';
		}

  	tables[i].onmouseout = function() {
  		if(this.className == 'alt') this.className = '';
		}
	}
}

// Messager clignotant ou non
function messager() {
	var user = document.getElementById('messager');
	if(!user) return false;
	var userHead = document.getElementById('m-header');
	if(!userHead) return false;
	var userLists = user.getElementsByTagName('ul');
	if(!userLists) return false;
	var userChats = user.getElementsByTagName('img');
	if(!userChats) return false;

	//userHead.style.backgroundPosition = '0 0';
	for(var i = 0; i < userLists.length; i++) {
		if(userLists[i].parentNode.getAttribute('id') == 'm-dial' || userLists[i].parentNode.getAttribute('id') == 'm-bal') {
			if(userLists[i].parentNode.getAttribute('id') == 'm-bal') {
				userHead.style.backgroundPosition = '-167px 0';
			} else {
				for(var j = 0; j < userChats.length; j++) {
					if(userChats[j].getAttribute('src').indexOf('bl2') > 0) {
						userLists[i].style.display = 'block';
						userHead.style.backgroundPosition = '-167px 0';
					}
				}
			}
		}
	}
}

// IE : hover sur les input des albums photos
function adminPhotos() {
	if(document.all) {
		var ref = document.getElementById('mes-photos-admin');
		if(!ref || ref.className != 'main') return false;
		var actPhoto = ref.getElementsByTagName('input');
		if(!actPhoto) return false;
  
		for(var i = 0; i < actPhoto.length; i++) {
			actPhoto[i].onmouseover = function() {
				this.style.textDecoration = 'underline';
				this.parentNode.style.backgroundPosition = '-500px 30%';
			}
			actPhoto[i].onmouseout = function() {
				this.style.textDecoration = 'none';
				this.parentNode.style.backgroundPosition = '0 30%';
			}
		}
	}
}

// Limiter le nombre de caractères sur le pseudo de certaines pages
function limitNbChar() {
	var elmts = document.getElementsByTagName('strong');

	for(var i = 0; i < elmts.length; i++) {
		var testParent = elmts[i].parentNode.parentNode.parentNode;
		if(testParent.className) var testParentClass = testParent.className;
		if(testParent.getAttribute('id')) var testParentId = testParent.getAttribute('id');
		if(testParentClass == 'personne' || testParentClass == 'personne alt') {
			if(document.getElementById('liste')) {
				if (elmts[i].firstChild) {
					elmts[i].firstChild.nodeValue = elmts[i].firstChild.nodeValue.substring(0,8);
				}
			} else if(document.getElementById('evenements')) {
				if (elmts[i].firstChild && elmts[i].className != 'no-char-lim') {
					elmts[i].firstChild.nodeValue = elmts[i].firstChild.nodeValue.substring(0,6);
				}
			}
		} else if(testParentId == 'avuprofil' || testParentId == 'ajoutfavoris' || testParentId == 'avisrecus' || testParentId == 'dernierbal') {
			if (elmts[i].firstChild) {
				elmts[i].firstChild.nodeValue = elmts[i].firstChild.nodeValue.substring(0,9);
			}
		}
	}
}

//// Chargement des fonctions
//addLoadEvent(setShowHideMessager);
addLoadEvent(startShowHide);
//addLoadEvent(dropDownMenu);
//addLoadEvent(changeSearchFilter);
//addLoadEvent(messager);
//addLoadEvent(tableHover);
//addLoadEvent(adminPhotos);
//addLoadEvent(limitNbChar);
