//////////////////////////////////////////////////////////////////
// Projet    : Agence Fertoise Immobiliere                      //
// Page      : annonce.js                                       //
// Role      : Fonctions de l'application                       //
// Language  : JavaScript                                       //
// Auteur(s) : HOTTIN Eric - QUAERIS                            //
// Creation  : 03/12/2001                                       //
// Modif le  : 12/12/2001                                       //
//////////////////////////////////////////////////////////////////

// Nom de la fenetre actuelle
window.name = "win_edit";

//--------------------------------------------
// Nom : popup
// Role : Affichage d'une page dans un PopUp
// Parametre : page Url de la page a afficher
//             Nom de la fenetre
//             Largeur de la fenetre
//             Hauteur de la fenetre
//-------------------------------------------
function popup(page,nom_win,largeur,hauteur)
{
var l = largeur;
var h = hauteur;
ouvre_win = window.open(page,nom_win,"toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=" + l + ",height=" + h);
}

//------------------------------------------------------------
// Nom       : Chiffres_Validator
// Role      : Verifie si 'champ' est un entier
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
// Retour    : TRUE si OK
//------------------------------------------------------------
function Chiffres_Validator(champ, strNomChamp)
{
    var chiffre_ok = "0123456789";
    var checkStr = champ.value;
    var allValid = 1;
    var allNum = "";
    for (i = 0;  i < checkStr.length;  i++)
    {
        ch = checkStr.charAt(i);
        for (j = 0;  j < chiffre_ok.length;  j++)
        {
            if (ch == chiffre_ok.charAt(j))
            {
                break;
            }
        }
        if (j == chiffre_ok.length)
        {
            allValid = 0;
            break;
        }
        allNum += ch;
    }
    if (!allValid)
    {
        alert('Merci de renseigner le champ "' + strNomChamp + '" par un nombre entier.');
        champ.focus();
        champ.select();
        return false;
    }
    return true;
}

//--------------------------------------------------------------------
// Nom       : ControlListeVide
// Role      : Test si on se trouve sur la première entrée de la liste
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
// Retour    : FALSE si le choix est la premiere option
//--------------------------------------------------------------------
function ControlListeVide(elm, strElement)
{
    if (elm.selectedIndex == 0)
    {
        alert("Le champ "+  strElement  +" est obligatoire!");
        elm.focus();
        return false;
    }
    else
    {
        return true;
    }
}

//---------------------------------------------------------------------------
// Nom       : ctrlAlphaNum
// Role      : Verification des caractères Alphanumériques d'un champ texte
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
// Retour    : TRUE si la saisie est valide
//---------------------------------------------------------------------------
function ctrlAlphaNum(objChamp, strNomChamp)
{
    var regExpCTRL = /^[a-zA-Z0-9-]*$/ ;
    var checkStr = objChamp.value ;
	if (regExpCTRL.test(checkStr))
    {
		return true ;
	}
    else
    {
		alert("Veuillez ne taper que des lettres non accentuées et des chiffres dans le champ \'" + strNomChamp + "\'.") ;
		objChamp.focus() ;
		objChamp.select() ;
		return false ;
	}
}

//-------------------------------------------------------------------------
// Nom       : ctrlDecimal
// Role      : Verification que les caractères composent un nombre decimal
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
//             facultatif : taille max de la partie entière
//             facultatif : taille max de la partie décimale
// Retour    : TRUE si la saisie est valide
//-------------------------------------------------------------------------
function ctrlDecimal(objChamp, strNomChamp)
{
	var iNbArguments;
	var regExpCTRL = /^[-+]?\d+([\.,]\d+)?$/;
	var checkStr = objChamp.value ;

	// Vérification s'il s'agit bien d'un nombre décimal
	if (!regExpCTRL.test(checkStr))
    {	
		alert("Le champ \'" + strNomChamp + "\' n'est pas un nombre décimal ! ") ;
		objChamp.focus() ;
		objChamp.select() ;
	    return false ;
	}

	// Vérification étendue si le nombre est formaté
	iNbArguments = ctrlDecimal.arguments.length;
	if (iNbArguments > 2)
    {
		if (iNbArguments == 3)
        { // Partie entière limitée
			regExpCTRL = eval('/^[-+]?\\d{1,' + ctrlDecimal.arguments[2] + '}([\\.,]\\d+)?$/');
			if (!regExpCTRL.test(checkStr))
            {
				alert("Le nombre décimal du champ \'" + strNomChamp + "\' doit avoir " + ctrlDecimal.arguments[2] + " chiffres\nmaximum en partie entière ! ") ;
				objChamp.focus() ;
				objChamp.select() ;
			    return false ;
            }
		}
		else if (iNbArguments == 4)
        { // Parties entière et décimale limitées
			regExpCTRL = eval('/^[-+]?\\d{1,' + ctrlDecimal.arguments[2] + '}([\\.,]\\d{0,' + ctrlDecimal.arguments[3] + '})?$/');
			if (!regExpCTRL.test(checkStr))
            {
				alert("Le nombre décimal du champ \'" + strNomChamp + "\' doit avoir " + ctrlDecimal.arguments[2] + " chiffres\nmaximum en partie entière et " + ctrlDecimal.arguments[3] + " chiffres au maximum en partie\ndécimale ! ") ;
				objChamp.focus() ;
				objChamp.select() ;
			    return false ;
			}
		}
	}
	return true;
}

//-------------------------------------------------------------------------
// Nom       : ctrlPositif
// Role      : Verification que les caractères composent un nombre positif
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
// Retour    : TRUE si la saisie est valide
//-------------------------------------------------------------------------
function ctrlPositif(objChamp, strNomChamp)
{
	if (parseInt(objChamp.value) >= 0)
    {
		return true;
	}
    else
    {
		alert("Le champ \'" + strNomChamp + "\' doit être positif ! ") ;
		objChamp.focus() ;
		objChamp.select() ;
	    return false ;
	}
}

//-------------------------------------------------------------------------
// Nom       : ctrlEntier
// Role      : Verification que les caractères composent un nombre entier
// Parametre : Nom du champs (formulaire)
//             Libelle du champs
// Retour    : TRUE si la saisie est valide
//-------------------------------------------------------------------------
function ctrlEntier(objChamp,strNomChamp)
{
	var regExpCTRL = /^[-+]?\d*$/ ;
	var checkStr = objChamp.value ;

	if (regExpCTRL.test(checkStr))
    {
		return true;
	}
    else
    {
		alert("Le champ \'" + strNomChamp + "\' n'est pas un entier ! ") ;
		objChamp.focus() ;
		objChamp.select() ;
	    return false ;
	}
}

//------------------------------------------------------------------------------------
// Nom       : ctrlLongueurChamp
// Role      : Vérifie la longueur mini et la longueur maxi d'un champ de texte
// Parametre : objChamp : Zone de saisie à vérifier
//             strNomChamp : Nom du champ qui sera affiché dans le message d'erreur
//             intMin : Nombre mini de caractères dans le champ
//             intMax : Nombre maxi de caractères dans le champ
// Retour    : 'true' si OK, 'false' sinon
//------------------------------------------------------------------------------------
function ctrlLongueurChamp(objChamp,strnomChamp,intMin,intMax)
{
    var strChaine;
    var strlechamp   
    strChaine = objChamp.value ;
    strlechamp = strnomChamp;
    intMini=intMin;
    intMaxi=intMax;
    
    if (strChaine.length < intMini || strChaine.length >intMaxi) 
    {
		alert("Le champ \'"+strlechamp+"\' doit contenir au moins "+intMini+" caractères\net moins de "+intMaxi+" caractères !") ;
		objChamp.focus() ;
		objChamp.select() ;
		return false;
    }
    return true ;
}

//------------------------------------------------------------------------------------
// Nom       : ctrlLongueurChampMax
// Role      : Vérifie la longueur max d'un champ de texte
// Parametre : objChamp : Zone de saisie à vérifier
//           : strNomChamp : Nom du champ qui sera affiché dans le message d'erreur
//           : intMax : nombre maxi de caractères dans le champ
// Retour    : 'true' si OK, 'false' sinon
//------------------------------------------------------------------------------------
function ctrlLongueurChampMax(objChamp,strNomChamp,intMax)
{
    var strChaine = objChamp.value ;        

    if (strChaine.length > intMax) 
    {
		alert("Le champ \'" + strNomChamp + "\' contient plus de " + intMax + " caractères !") ;
		objChamp.focus() ;
		objChamp.select() ;
		return false;
    }
    return true ;
}

//------------------------------------------------------------------------------------
// Nom       : Conversion
// Role      : Convertie en euro ou en franc dans le champ
// Parametre : objChamp : Zone de saisie à vérifier
//           : strNomChamp : Nom du champ qui sera affiché dans le message d'erreur
//           : intMax : nombre maxi de caractères dans le champ
// Retour    : 
//------------------------------------------------------------------------------------
function Conversion(champs_euro,champs_franc)
{
    if (champs_franc.value == 0)
    {
        francsC = new String(champs_euro.value * 6.55957);
        point = francsC.lastIndexOf('.', francsC.length);
        if (point == -1)
        {
            champs_franc.value = francsC + '.00';
        }
        else
        {
            decimales = new String(francsC.substring(point+1, francsC.length));
            if (decimales.length == 1)
            {
                champs_franc.value = francsC + '0';
            }
            else
            {
                if (decimales.length == 2)
                {
                    champs_franc.value = francsC;
                }
                else
                {
                    troisieme_decimale = new String(decimales.substring(2, 3));
                    if (troisieme_decimale < 5)
                    {
                        champs_franc.value = francsC.substring(0, point+1) + decimales.substring(0, 2);
                    }
                    else
                    {
                        deux_dernieres_decimales = new String(decimales.substring(0, 2));
                        plusun = new String((1 * deux_dernieres_decimales) + 1);
                        if (plusun == 100)
                        {
                            champs_franc.value = new String((1 * francsC.substring(0, point))+ 1 ) + '.00';
                        }
                        else
                        {
                            if (plusun.length == 1)
                            {
                                champs_franc.value = francsC.substring(0, point+1) + '0' + plusun;
                            }
                            else
                            {
                                champs_franc.value = francsC.substring(0, point+1) + plusun;
                            }
                        }
                    }
                }
            }
        }
    }
    else
    {
        eurosC = new String(champs_franc.value / 6.55957);
        point = eurosC.lastIndexOf('.', eurosC.length);
        if (point == -1)
        {
            champs_euro.value = eurosC + '.00';
        }
        else
        {
            decimales = new String(eurosC.substring(point+1, eurosC.length));
            if (decimales.length == 1)
            {
                champs_euro.value = eurosC + '0';
            }
            else
            {
                if (decimales.length == 2)
                {
                    champs_euro.value = eurosC;
                }
                else
                {
                    troisieme_decimale = new String(decimales.substring(2, 3));
                    if (troisieme_decimale < 5)
                    {
                        champs_euro.value = eurosC.substring(0, point+1) + decimales.substring(0, 2);
                    }
                    else
                    {
                        deux_dernieres_decimales = new String(decimales.substring(0, 2));
                        plusun = new String((1 * deux_dernieres_decimales) + 1);
                        if (plusun == 100)
                        {
                            champs_euro.value = new String((1 * eurosC.substring(0, point))+ 1 ) + '.00';
                        }
                        else
                        {
                            if (plusun.length == 1)
                            {
                                champs_euro.value = eurosC.substring(0, point+1) + '0' + plusun;
                            }
                            else
                            {
                                champs_euro.value = eurosC.substring(0, point+1) + plusun;
                            }
                        }
                    }
                }
            }
        }
    }   
}

