/*
 * ***** BEGIN LICENSE BLOCK *****
 *
 * This file is part of MediaIdea Project.
 * Copyright (c) 2007 MediaIdea Technologies. All rights
 * reserved.
 *
 * ***** END LICENSE BLOCK *****
 */

var path = "http://www.videoclubbing.com/";
var commonPath = path + "includes/public/common/";
var ajaxPathFile = path + "includes/public/ajaxCtrl/_ajax_ctrl.php";
var isMozilla = (document.getElementById && !document.all) ? 1 : 0;

var checkIconUri = commonPath+"validation/checkbullet.gif";
var spinnerIconUri = commonPath+"validation/spinner_grey.gif";



/**
 * 	Affichage de la fenetre flottante pour le message d'attente.
 */
function show_loader(){
	
	//moveFloatingDiv('loader');
	
	pageDimension = Element.getDimensions("body");
		
	var width	=	pageDimension.width;
	var height  = 	pageDimension.height;
	
    document.getElementById('fullScreenDiv').style.width = width + 'px';
    document.getElementById('fullScreenDiv').style.height = height + 'px';
	
    document.getElementById('loader').style.left = (screen.width/3) + 'px';
    document.getElementById('loader').style.top = (screen.height/3) + 'px';
        
	Element.show('fullScreenDiv');
	Element.show('div_desktop');
	Element.show('loader');
}

/**
 * 	Masque le message d'attente.
 */
function hide_loader(){
	
	Element.hide('fullScreenDiv');
	Element.hide('div_desktop');
	Element.hide('loader');
}


/**
 * 	Affichage le symbole WAIT.
 */
function show_wait(elemId){
	
	var elemParent = elemId+'field';
	var elemValid = elemId+'valid';

	hide_err(elemId);
	Element.removeClassName(elemParent, 'fielderr');
	Element.update(elemValid, '<img src="'+spinnerIconUri+'" alt="spinner" />');
	Element.show(elemValid);
}

/**
 * 	Masquer le symbole WAIT.
 */
function hide_wait(elemId){
	
	var elemValid = elemId+'valid';
	
	Element.hide(elemValid);
}


/**
 *	Affiche le symbole OK.
 */
function show_ok(elemId){
	
	var elemParent = elemId+'field';
	var elemValid = elemId+'valid';
	
	hide_err(elemId);
	Element.removeClassName(elemParent, 'fielderr');
	Element.update(elemValid, '<img src="'+checkIconUri+'" alt="ok" />');
	Element.show(elemValid);
}

/**
 * 	Masque le symbole OK.
 */
function hide_ok(elemId){
	
	var elemValid = elemId+'valid';
	
	Element.hide(elemValid);
}


/**
 * 	Affiche le message d'erreur.
 */
function show_err(elemId, errorMsg){
	
	var elemParent = elemId+'field';
	var elemMessage = elemId+'msg';

	hide_ok(elemId);
	Element.addClassName(elemParent, 'fielderr');
	Element.update(elemMessage, errorMsg);
}

/**
 * 	Masque le message d'erreur.
 */
function hide_err(elemId){
	
	var elemParent = elemId+'field';
	var elemMessage = elemId+'msg';
	
	Element.removeClassName(elemParent, 'fielderr');
	Element.update(elemMessage, '');
}





/**
 * 	Remetre a Zero un formulaire.
 */
function do_clearForm(formName) {
	
	Form.reset(formName);
	
	var erreurs = document.getElementsByClassName("erreur");
	
	if(erreurs.length > 0) {
		for(i = 0; i < erreurs.length; i++) {
			Element.hide(erreurs[i]);
		}
	}
}


/**
 * 	Système de récupération du mot de passe.
 */
function do_reqPassword(form){
	
	var opt = {
		evalScripts: true,
		parameters: Form.serialize(form)+'&task=reqPassword',
		onUpdate: show_req_msg(form),
		onComplete: function(requete){
			hide_req_msg();
			Form.enable(form);
			Element.show('lostMsg');
			Element.update("lostMsg", requete.responseText);
			
		}
	}
	
	new Ajax.Request(ajaxPathFile, opt);
		
	function show_req_msg(form){
		Element.hide('lostMsg');
		Form.disable(form);
		Element.show('waitingMsgLost');
	}
	
	function hide_req_msg(){
		Element.hide('waitingMsgLost');
	}	
}

/**
 * 	Système d'authentification.
 */
function do_auth(form){
	if ($('__auth_error_msg')){
		Element.remove("__auth_error_msg");
	}
	$('__auth_submit').disabled = true;
}


/**
 * 	Vérification sur la valeur d'un champ.
 *	- false au cas ou le champ est vide.
 *	- true dans le cas contraire.
 */
function check_empty_elem(elemId){
	
	if ($('sumbitStatus').value == '1') {
		
		var elemValue = $(elemId).value;
		
		var opt = {
			evalScripts: true,
			parameters: 'task=sleep',
			onUpdate: show_wait(elemId),
			onComplete: function(requete){
				show_ok(elemId);
			}
		}
		
		if(elemValue == ''){
			show_err(elemId, '');
		}
		else {
			new Ajax.Request(ajaxPathFile, opt);
		}
	}
	
	return false;
}


/**
 *	Vérification de la date de naissance, trois elements jour, mois, annee.
 *	- false en cas ou un des trois champs est vide.
 *	- true dans le cas contraire.
 */
function check_birthday(elemId){
	
	if ($('sumbitStatus').value == '1') {
		
		var dobValue = $('dob').value;
		var mobValue = $('mob').value;
		var yobValue = $('yob').value;
			
		var opt = {
			evalScripts: true,
			parameters: 'task=sleep',
			onUpdate: show_wait(elemId),
			onComplete: function(requete){
				show_ok(elemId);
			}
		}
		
		if (isNaN(dobValue) || isNaN(mobValue) || isNaN(yobValue)){
			show_err(elemId, '');
		}
		else {
			new Ajax.Request(ajaxPathFile, opt);
		}		
	}
	
	return false;
}


/**
 *	Vérification de l'email.
 *	- false au cas ou le mail n'est pas correct.
 *	- true dans le cas contraire.
 */
function check_email(elemId){
		
	if ($('sumbitStatus').value == '1') {

		var elemValue = $(elemId).value;
		
		var opt = {
			evalScripts: true,
			parameters: 'task=checkEmail&email='+elemValue,
			onUpdate: show_wait(elemId),
			onComplete: function(requete){
				var reponse = requete.responseText;
				
				if(reponse != 0){
					show_err(elemId, '');
				}
				else {
					show_ok(elemId);
				}
			}
		}
			
		if(elemValue == ''){
	 		show_err(elemId, ''); 
		}
		else {
			new Ajax.Request(ajaxPathFile, opt);
		}	
	}
	
	return false;
}


/**
 *	Vérification sur le systeme de Captcha.
 *	- false au cas ou il n'y a pas de correspondance ou le si le champ est vide.
 *	- true dans le cas contraire.
 */
function check_captcha(elemId){
	
	if ($('sumbitStatus').value == '1') {
		
		var elemValue = $(elemId).value;
		
		var opt = {
			evalScripts: true,
			parameters: 'task=checkCaptcha&captcha='+elemValue,
			onUpdate: show_wait(elemId),
			onComplete: function(requete){
				var reponse = requete.responseText;
				
				if(reponse == 1){
					show_ok(elemId);
				}
				else {
 					show_err(elemId, '');
				}
			}
		}	
		
		if(elemValue == ''){
	 		show_err(elemId, '');
		}
		else {
			new Ajax.Request(ajaxPathFile, opt);
		}
	}	

	return false;
}


/**
 *	Vérification du nickname.
 *	- false au cas ou le nickname existe dans la BDD ou si le champ est vide.
 *	- true dans le cas contraire.
 */
function check_nickname(elemId){
	
	if ($('sumbitStatus').value == '1') {
		
		var elemValue = $(elemId).value;
	
		var opt = {
			evalScripts: true,
			parameters: 'task=checkNickname&nickname='+elemValue,
			onUpdate: show_wait(elemId),
			onComplete: function(requete){
				var reponse = requete.responseText;

				if(reponse == 0){
					show_ok(elemId);
				}
				else {
 					show_err(elemId, '');
				}
			}
		}
		
		if(elemValue == ''){
	 		show_err(elemId, '');
		}
		else {	
			new Ajax.Request(ajaxPathFile, opt);
		}
	}
	
	return false;	
}


/**
 * 	Vérification de l'inscription avec validation des champs.
 */
function do_signup(form){
	
	$('sumbitStatus').value = '1';
	
	check_email('email');
	check_captcha('captcha');
	check_empty_elem('lastname');
	check_empty_elem('firstname'); 
	check_birthday('dob');
	
	alert(document.getElementsByClassName('fielderr').length);
		
	if (document.getElementsByClassName('fielderr').length == 0){

		/*var opt = {
			evalScripts: true,
			parameters: Form.serialize(form)+'&task=subscription',
			onUpdate: Form.disable(form),
			onComplete: function(requete){

				//Element.update("signupMsg", requete.responseText);
				//Element.hide('signup');
				//Element.show('signupConfirm');
				
				Form.enable(form);
				
			}
		}		
		new Ajax.Request(ajaxPathFile, opt);*/
	}
	
	return false;
}

/**
 * 	Validation du formulaire.
 */
function do_submitForm(form){
	
	var inputObligatoire = document.getElementsByClassName("formOblg");
	var nbErreur = 0;
	
	
	if(inputObligatoire.length > 0) {
		for(i = 0; i < inputObligatoire.length; i++) {
			if (inputObligatoire[i].value == "" || inputObligatoire[i].value == 0){
				Element.show(inputObligatoire[i].id+"Err");
				nbErreur++;
			}
			else {
				Element.hide(inputObligatoire[i].id+"Err");
			}
		}

		if(nbErreur > 0) {
			return false;
		}		
	}
	
	document.submit();
}

/**
 *	Vérification d'un formulaire.
 */
function do_check_form(form, action){
	
	$('sumbitStatus').value = '1';
	
	tabRequired	= document.getElementsByClassName('required');
	
	if(tabRequired.length > 0) {
		for(i = 0; i < tabRequired.length; i++) {
			var element = tabRequired[i].childNodes[0];
			var elemId = element.id;
			
			if(elemId == 'nickname'){
				check_nickname(elemId);
			}
			else {
				check_empty_elem(elemId);
			}
		}
	}
	
	if(document.getElementsByClassName('fielderr').length == 0){
		show_loader();
		form.submit();
	}
	return false;
}





/**
 * 	Systeme d'affichage des diapo.
 */
function showImg(index){
	
	tabContent	=	document.getElementsByClassName("diapolist");
	
	if(tabContent.length > 0) {
		for(i = 0; i < tabContent.length; i++) {
			Element.hide(tabContent[i].id);
		}					
		Element.show(index);
	}
}


/**
 * 	Systeme de recharchement du captcha.
 */
function reload_captcha(){
	
	Element.remove('cryptImg');
	Element.update('cryptogram', '<img id="cryptImg" src="'+commonPath+'captcha.php" />');
	
	//$('cryptImg').src = commonPath+'captcha.php';
	//Element.update('cryptogram', '<img id="cryptImg" src="'+commonPath+'captcha.php" />');
}



/**
 *	Gestion de la boite flottante pour la faire bouger avec la fenetre.
 */
function moveFloatingDiv(divId) {
	
	DivID = divId;
	
	var form = document.getElementById(DivID);
	var browserWidth = getBrowserWidth();
		
	if(browserWidth <= 925) {
		form.style.top = "auto";
		form.style.left = "auto";
		return;
	}
	if(browserWidth > 925) {
		var curPos = findPosY(form);
		if (window.innerHeight) {pos = window.pageYOffset;}
		else if (document.documentElement && document.documentElement.scrollTop) {pos = document.documentElement.scrollTop;}
		else if (document.body) {pos = document.body.scrollTop;}
		
		if(pos > curPos) {
			curPos = pos;
			form.style.top = ++curPos + 'px';
		}
		if(pos < curPos) {
			if(pos > 250) {
				curPos = parseInt(pos+250);
		
				form.style.top = ++curPos + 'px';
			}
			else if(pos <= 250) {
				curPos = pos;
				form.style.top = 250 + 'px';
			}
		}
		var temp = setTimeout('moveFloatingDiv()', 50);
	}
}


/**
 *	Fonction pour récupérer la largeur de la fenetre.
 */
function getBrowserWidth() {
	
	if (pageDimension = Element.getDimensions("body")){
		return pageDimension.width;
	}
	else {
		if (window.innerWidth) {return window.innerWidth;}	
		else if (document.documentElement && document.documentElement.clientWidth != 0) {return document.documentElement.clientWidth;}
		else if (document.body) {return document.body.clientWidth;}		
		return 0;
	}
}


/**
 *	Fonction pour récupérer la postition d'un objet obj.
 */
function findPosY(obj) {
	
	var curtop = 0;
	
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y) {curtop += obj.y;}
	
	return curtop;
}



/**
 *	Ajout d'un element ScreenName au formulaire.
 */
function add_screen_name(){
	
	var sn_count = parseInt($('sn_count').value);
	var sn_max = parseInt($('sn_max').value);
	
	if (sn_count <= 5) {
		
		$('sn_count').value = sn_count+1;
		var new_count = $('sn_count').value;
		
		var block = 	'<div id="sn_'+new_count+'">'+
							$('sn_blank').innerHTML+
							'&nbsp;<a id="sn_delLink" onclick="javascript:del_screen_name(\'sn_'+new_count+'\'); return false;" style="cursor:pointer">supprimer</a>'+
						'</div>';
		
				
		new Insertion.Bottom('sn_list', block);
		
		if (new_count == sn_max){
			Element.hide('sn_addLink');
		}
	}
}

/**
 *	Suppression d'un element ScreenName du formulaire.
 */
function del_screen_name(elem){
	var sn_count = parseInt($('sn_count').value);
	var sn_max = parseInt($('sn_max').value);
	
	Element.remove(elem);
	$('sn_count').value = sn_count-1;
	
	if ($('sn_count').value < sn_max){
		Element.show('sn_addLink');
	}
}


function do_verif_adr_livr(){
	
	if ($('same_fact_livr').checked == true){
		Element.hide('livr_info');
	}
	else {
		Element.show('livr_info');
	}
}
