﻿/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

/* END OF Robert Nyman WORK */


var contentContainerDiv = null;
var leftContainerDiv = null;
var middleContainerDiv = null;
var rightContainerDiv = null;
var pageFooterDiv = null;
var menuCentralLinkBar = null;
var filArianeDiv = null;
var collapsiblePanels = null;
var maxHeight = 0;

function miseEnPage(event) {
    contentContainerDiv = document.getElementById("contentContainerDiv");
    leftContainerDiv = document.getElementById("leftContainerDiv");
    filArianeDiv = document.getElementById("filArianeDiv");
    if (!leftContainerDiv) leftContainerDiv = document.getElementById("leftContainer");
    middleContainerDiv = document.getElementById("middleContainerDiv");
    if (!middleContainerDiv) middleContainerDiv = document.getElementById("middleContainer");
    rightContainerDiv = document.getElementById("rightContainerDiv");
    pageFooterDiv = document.getElementById("pageFooterDiv");
    menuCentralLinkBar = document.getElementById("menuCentralLinkBar");
    collapsiblePanels = getElementsByClassName("collapsiblePanel");
    addCollapsiblePanelsHandlers();

    CheckImagesForMiseEnPage();
}

function CheckImagesForMiseEnPage()
{
    var elements = [leftContainerDiv, middleContainerDiv, rightContainerDiv, menuCentralLinkBar ];
    var ok = true;
    for (var i=0;i<elements.length && ok;i++)
        ok = IsChildrenImagesLoaded(elements[i]);
    if(ok)
    {
        middleContainerDiv.style.height = "";
        middleContainerDiv.style.overflow = "auto";
        rightContainerDiv.style.height = "";
        if (leftContainerDiv) leftContainerDiv.style.height = "";
        middleContainerDiv.style.overflow = "hidden";
        egaliserHauteurs();
        placerPiedDePage();
        adapterFilAriane();
        if (menuCentralLinkBar != null) egaliserMenuCentral();
    }
    else setTimeout("CheckImagesForMiseEnPage();",500);
}

function IsChildrenImagesLoaded(element)
{
    var ok = true;
   if (element)
    {
        var tabImages = element.getElementsByTagName("img");
        for (var i=0;i<tabImages.length && ok;i++)
            ok = (tabImages[i].complete);
    }
    return ok;
}

function addCollapsiblePanelsHandlers() {
    var h1 = null;
    for (var i = 0; i < collapsiblePanels.length; i++) {
        h1 = collapsiblePanels[i].firstChild;
        while (h1.nodeName != "H2") h1 = h1.nextSibling;
        h1.style.margIn = "0";
        var container = document.createElement("div");
        var img = document.createElement("img");
        img.setAttribute("width", "12");
        img.setAttribute("height", "12");
        img.setAttribute("align", "middle");
        img.style.position = "relative";
        img.style.cursor = "pointer";
        img.src = "/Images/plus.gif";
        if (parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 4)) < 8)
            img.style.top = "1px";
        else
            img.style.top = "0.5em";
            
        collapsiblePanels[i].insertBefore(img, h1);
        collapsiblePanels[i].style.height = h1.offsetHeight + "px";
        if (h1.addEventListener) {
            h1.addEventListener ("click", switchPanelState, false);
            img.addEventListener ("click", switchPanelState, false);
        } else if (h1.attachEvent) {
            h1.attachEvent ("onclick", switchPanelState);
            img.attachEvent ("onclick", switchPanelState);
        } else {
            h1.onclick = switchPanelState;
            img.onclick = switchPanelState;
        }
    }
}

function switchPanelState(event) {

    var target = (event.srcElement) ? event.srcElement : event.target;
    while (target.nodeName != "H2") target = target.nextSibling;
    var panel = target.parentNode;
    if (panel.offsetHeight == target.offsetHeight) {
        panel.style.height = "";
        target.parentNode.childNodes[jQuery.browser.msie ? 0 : 1].src = "/Images/moins.gif";
    } else {
        panel.style.height = target.offsetHeight + "px";
        target.parentNode.childNodes[jQuery.browser.msie ? 0 : 1].src = "/Images/plus.gif";
    }
    middleContainerDiv.style.height = "";
    middleContainerDiv.style.overflow = "auto";
    rightContainerDiv.style.height = "";
    leftContainerDiv.style.height = "";
    egaliserHauteurs();
    placerPiedDePage();
    middleContainerDiv.style.overflow = "hidden";
}

function adapterFilAriane() {
    if (filArianeDiv && filArianeDiv.offsetHeight > 17)
        filArianeDiv.style.top = (filArianeDiv.offsetTop - 17) + "px";
}

function egaliserHauteurs() {
    maxHeight = (leftContainerDiv) ? leftContainerDiv.offsetHeight : 0;
    if (middleContainerDiv && (middleContainerDiv.offsetHeight > maxHeight))
        maxHeight = middleContainerDiv.offsetHeight;
    if (rightContainerDiv && (rightContainerDiv.offsetHeight > maxHeight))
        maxHeight = rightContainerDiv.offsetHeight;
    if (leftContainerDiv) leftContainerDiv.style.height = maxHeight + "px";
    if (middleContainerDiv) middleContainerDiv.style.height = maxHeight + "px";
    if (rightContainerDiv) rightContainerDiv.style.height = maxHeight + "px";
}

function placerPiedDePage() {
    pageFooterDiv.style.display = "block";
    pageFooterDiv.style.top = (contentContainerDiv.offsetTop + maxHeight + 10) + "px";
}

function egaliserMenuCentral() {
    var totalWidth = 0;
    var childCount = 0;
    var child = menuCentralLinkBar.firstChild;
    while (child) {
        if (child.nodeName == "DIV") {
            totalWidth += child.offsetWidth;
            childCount++;
        }
        child = child.nextSibling;
    }
    var toAdd = Math.floor((1.0 * (950 - totalWidth)) / childCount) - 2;
    child = menuCentralLinkBar.firstChild;
    totalWidth = 0;
    while (child) {
        if (child.nodeName == "DIV") {
            if ((child.offsetWidth + toAdd)>=0)
                child.style.width = (child.offsetWidth + toAdd) + "px";
            totalWidth += child.offsetWidth;
        }
        child = child.nextSibling;
    }
    child = menuCentralLinkBar.lastChild;
    while (child.nodeName != "DIV") child = child.previousSibling;
    child.style.width = (child.offsetWidth + (948 - totalWidth)) + "px";
}

function PopupSendToFriend(mylink, windowname, width, height)
{
    if (!window.focus) return true;
    var href;
    href=mylink;
    var win = window.open(href, windowname, "left=" + parseInt((screen.width - width)/2)  +
        ",top="  + parseInt((screen.height - height)/4)  + 
        ",width=" + width + ",height=" + height +
        ",scrollbars=no, directories=no, menubar=no, status=no, location=no, resizable=no");
    if (win) win.focus();
    return false;
}

jQuery(document).ready(function() {
            $(".VideoIntegrated").each(function() {
                var divVideo = $(this);
                try
                {
                    var listVar = divVideo[0].getElementsByTagName("A");
                    var urlVideo = "";
                    var urlImage = "";
                    if (listVar.length > 0) urlVideo = $(listVar[0]).attr("href");
                    if (listVar.length > 1) {
                        urlImage = $(listVar[1]).attr("href");
                        if (urlImage.lastIndexOf(".flv") != -1) {
                            var tmp = urlImage;
                            urlImage = urlVideo;
                            urlVideo = tmp;
                        }
                    }
                    if (urlVideo != "") {
                        divVideo.html("");
                        if (!DetectFlashVer(6, 0, 65)) {
                            var alternateContent = "This content requires the Adobe Flash Player.<br/>" +
   	                            "<a href='http://www.adobe.com/go/getflash/'>Get Flash</a>";
                            divVideo.html(alternateContent);
                            divVideo.css("text-align", "center");
                            return;
                        }
                        if (!divVideo.css("width") || !divVideo.css("height") || 
                        divVideo.css("width")=="auto" || divVideo.css("height")=="auto" || 
                        parseInt(divVideo.css("width"))==0 || parseInt(divVideo.css("height"))==0)
                            divVideo.css({width: "500px", height:"455px"});
                        
                        var so = new SWFObject("/FlashContent/player.swf", "mpl", "100%", "100%", "9");
                        so.addParam("allowfullscreen", "true");
                        so.addParam("allowscriptaccess", "always");
                        so.addParam("wmode", "opaque");
                        so.addVariable("file", urlVideo);
                        if (urlImage) so.addVariable("image", urlImage);
                        so.write(divVideo[0]);
                    }
                }
                catch(ex)
                {
                    divVideo.css({color: "red", textAlign:"center",  verticalAlign:"middle"});
                    divVideo.html("Erreur");
                }
            });
        });
        
        

        function Diapo_Create(divDiaporama) {
            divDiaporama[0].datas.isLoaded = true;
            divDiaporama.css("background", "");
            var table = $("<table style='width:100%;table-layout:fixed;margin:0px;height:100%;' />");
            table.appendTo(divDiaporama);
            //Première ligne
            var tr = $("<tr style='height:65px;'/>");
            var scrollRight, scrollLeft;
            //Flêche de gauche
            var td = $("<td />");
            td.css("width", "30px");
            td.append((scrollLeft = $("<a onfocus='javascript: this.blur();' href='javascript:return true;' />")).append("<img style='border-width: 0px;' alt='Précédent' src='/Images/picto_Previous.png' />"));
            td.appendTo(tr);
            //Td du millieu
            var divDiapo = $("<div />");
            tr.append($("<td />").append(divDiapo));
            //Flêche de droite
            td = $("<td />");
            td.css("width", "30px");
            td.append((scrollRight = $("<a onfocus='javascript: this.blur();' href='javascript:return true;' />")).append("<img style='border-width: 0px;' alt='Suivant' src='/Images/picto_Next.png' />"));
            td.appendTo(tr);
            table.append(tr);
            //Deuxième ligne (image)
            table.append(($("<tr />").append((td = $("<td colspan=\"3\" style='padding:0px;height:376px;' />")))));
            td.append($("<img id=\"" + divDiaporama[0].datas.idImage + "\" alt=\"" + divDiaporama[0].datas.tabImages[0].title +
                "\" title=\"" + divDiaporama[0].datas.tabImages[0].title + "\" src=\"" + divDiaporama[0].datas.tabImages[0].image + "\" />"));

            //Les tofs !
            var wDiv = divDiapo.parent().width();
            divDiapo.css({ margin: "0px", overflow: "hidden", width: wDiv + "px", position: "relative" });
            divDiapo.append($("<table border='0' style='border-collapse:collapse;position:relative;'/>").append(tr = $("<tr />")));
            tr.attr("image", divDiaporama[0].datas.idImage);
            for (var i = 0; i < divDiaporama[0].datas.tabImages.length; i++) {
                td = $("<td class='Diapo''/>");
                if (i == 0) td.addClass("DiapoSelected");
                td.css("width", "80px");
                td.css("border", "0px");
                td.css("margin", "0px");
                td.css("padding", "0px");
                td.css("padding-right", "2px");
                td.mouseover(function() {
                    $(this).addClass("DiapoOver");
                });
                td.mouseout(function() {
                    $(this).removeClass("DiapoOver");
                });
                td.click(function() {
                    var td = $(this);
                    var img = $("#" + td.parent().attr("image"));
                    if (img.parent().children().length != 1) return;
                    var listTD = td.parent().children();
                    for (var i = 0; i < listTD.length; i++)
                        $(listTD[i]).removeClass("DiapoSelected");
                    td.addClass("DiapoSelected");

                    var idImg = img.attr("id");
                    var img2 = img.clone();
                    var zindex = img.css("z-index");
                    if (!zindex || zindex == "auto") zindex = 1;
                    zindex++;
                    img.removeAttr("id");
                    img2.attr("id", idImg);
                    img2.hide();
                    var imgSrc = $(td.children().children()[0]);
                    img2.css({ zIndex: zindex });
                    img2.attr("src", imgSrc.attr("src"));
                    img2.attr("alt", imgSrc.attr("src"));
                    img2.attr("title", imgSrc.attr("title"));
                    img2.appendTo(img.parent());

                    Diapo_CenterImage(img2, imgSrc[0].element.width, imgSrc[0].element.height);

                    //Interverti les images par un effet de fondu              
                    var tps = 300;
                    img.fadeOut(tps, function() {
                        $(this).remove();
                    });
                    img2.fadeIn(tps);

                });
                var defineSize = "width:76px;";
                if (divDiaporama[0].datas.tabImages[i].element.width < divDiaporama[0].datas.tabImages[i].element.height)
                    defineSize = "height:56px;";
                var img;
                td.append(($("<div style='width:78px;text-align:center;' />")).append(img = $("<img border=\"0\" alt=\"" + divDiaporama[0].datas.tabImages[i].title +
                 "\" title=\"" + divDiaporama[0].datas.tabImages[i].title + "\" src=\"" + divDiaporama[0].datas.tabImages[i].image +
                  "\" style=\"" + defineSize + "margin:2px;\" />")));
                img[0].element = divDiaporama[0].datas.tabImages[i].element;      
                tr.append(td);
            }
            var wDivView = parseInt(wDiv / 80) * 80;
            divDiapo.css({ position: "relative", left: ((wDiv - wDivView) / 2) + "px", width: (wDivView) + "px" });
            if (wDivView < divDiaporama[0].datas.tabImages.length * 80) {
                scrollLeft.click(function() {
                    var table = $(this).parent().parent().parent().parent(); // a.td.tr.tbody.table
                    table = $(table[0].rows[0].cells[1].children[0].children[0]);
                    var wList = table.width();
                    var wImgList = $(table[0].rows[0].cells[0]).outerWidth();
                    var wMove = wImgList * parseInt(table.parent().css("width")) / 80;

                    var xList = parseInt(table[0].style.left);
                    if (!xList) xList = 0;

                    if (xList + wMove <= 0) table.animate({ "left": "+=" + wMove }, 1000);
                });
                scrollRight.click(function() {
                    var table = $(this).parent().parent().parent().parent(); // a.td.tr.tbody.table
                    table = $(table[0].rows[0].cells[1].children[0].children[0]);
                    var wList = table.width();
                    var wImgList = $(table[0].rows[0].cells[0]).outerWidth();
                    var wMove = wImgList * parseInt(table.parent().css("width")) / 80;
                    var xList = parseInt(table[0].style.left);
                    if (!xList) xList = 0;

                    if (Math.abs(xList) + wMove < wList) table.animate({ "left": "-=" + wMove }, 1000);
                });
            }
            else {
                scrollLeft.html("");
                scrollRight.html("");
            }
            Diapo_CenterImage($("#" + divDiaporama[0].datas.idImage), divDiaporama[0].datas.tabImages[0].element.width, divDiaporama[0].datas.tabImages[0].element.height);
            divDiaporama.css("height", "");
        }

        function Diapo_CenterImage(image, wSrc, hSrc) {
            var l, t, w, h;
            //Calcul de la taille
            l = image.parent().position().left + 1;
            t = image.parent().position().top + 1;
            w = wSrc;
            h = hSrc;

            var wMax = parseInt(image.parent().width()) - 2;
            var hMax = parseInt(image.parent().height()) - 2;
            
            if (wSrc > hSrc) //Image diaporama
            {
                if (w > wMax) {
                    w = wMax;
                    h = parseInt(w * hSrc / wSrc);
                }
                if (h > hMax) {
                    h = hMax;
                    w = parseInt(h * wSrc / hSrc);
                }
            }
            else { //Image portrait
                if (h > hMax) {
                    h = hMax;
                    w = parseInt(h * wSrc / hSrc);
                }
                if (w > wMax) {
                    w = wMax;
                    h = parseInt(w * hSrc / wSrc);
                }                
            }
            l += (wMax - w) / 2;
            t += (hMax - h) / 2;   
            image.css({ position: "absolute", width: w, height: h, left: l, top: t });

        }
        
        jQuery(document).ready(function() {
            var iImage = 0;
            $(".Diaporama").each(function() {
                iImage++;
                var divDiaporama = $(this);
                var tabImgs = new Array();
                divDiaporama.children().each(function() {
                    var element = $(this);
                    if (element.is("img")) {
                        var img = new Image();
                        img.src = element.attr("src");
                        tabImgs.push({ title: element.attr("alt"), image: element.attr("src"), element: img });
                    }
                });
                if (tabImgs.length > 0) {
                    divDiaporama.html("");
                    divDiaporama.css("width", divDiaporama.parent().width());
                    divDiaporama.css("height", "460px");
                    //divDiaporama[0].adjustHeight = true;
                    divDiaporama[0].datas = { idImage: "img_" + iImage, tabImages: tabImgs };
                    divDiaporama.css("background", "url('/Images/picto_loading.gif') center no-repeat");
                }
            });
            Diapo_CheckImagesReady();

        });
        function Diapo_CheckImagesReady() {
            var allCreated = true;
            $(".Diaporama").each(function() {
                var divDiaporama = $(this);
                var datas = divDiaporama[0].datas;
                if (datas && !datas.isLoaded) {
                    var ok = true;
                    for (var i = 0; i < datas.tabImages.length && ok; i++)
                        if (!datas.tabImages[i].element.complete) ok = false;
                    if (ok) Diapo_Create(divDiaporama);
                    else allCreated = false;
                }
            });
            if (!allCreated) setTimeout("Diapo_CheckImagesReady();", 1000);
        }

        function LockCallCDP(idComboMonth, idComboYear, idBtnOK) {
            $("#" + idComboMonth).attr('disabled', 'true');
            $("#" + idComboYear).attr('disabled', 'true');
            setTimeout("$('#" + idBtnOK + "').attr('disabled', 'true');", 100);
        }

        function UnLockCallCDP(idComboMonth, idComboYear, idBtnOK) {
            $("#" + idComboMonth).removeAttr('disabled');
            $("#" + idComboYear).removeAttr('disabled');
            setTimeout("$('#" + idBtnOK + "').removeAttr('disabled');", 100);
        }
        
// ** MAXIMIZER **

        var RequiredFieldError_fr = " est requis\n";
        var MailFieldError_fr = "Email invalide.";
        var CaptchaError_fr = "Le code de vérification est invalide.";

        var RequiredFieldError_en = " is required\n";
        var MailFieldError_en = "Invalid email.";
        var CaptchaError_en = "The verification code is invalid.";

        function InitDate(nameElement) {
            var elements = document.getElementsByName(nameElement);
            if (elements && elements.length > 0) {
                var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
                var d = new Date();
                elements[0].value = d.getDate() + " " + m_names[d.getMonth()] + " " + d.getFullYear();
            }
        }

        function GenerateCaptcha() {
            var codeVerif = $("#CodeVerif");
            var imgVerif = $("#CodeVerifImg");
            if (codeVerif.length && imgVerif.length) {
                var s = "";
                var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
                for (var i = 0; i < 5; i++) {
                    s += chars.charAt(Math.floor(Math.random() * chars.length));
                }

                //s = "12345";
                
                codeVerif.attr("value", "");
                imgVerif.attr("src", "../ChildPage2.aspx?captcha=" + s + "&a=" + Math.random());
            }
        }
        function CheckCaptcha() {
            var isOk = false;
            var codeVerif = $("#CodeVerif");
            var imgVerif = $("#CodeVerifImg");
            if (codeVerif.length && imgVerif.length) {
                var code = imgVerif.attr("src");
                code = code.substr(code.indexOf("captcha=") + 8, 5);
                isOk = (code == codeVerif.attr("value"));
            }
            else isOk = true;
            return isOk;
        }
        function CheckForm(lang) {
            var isOk = true;

            var errorMail = "";
            var strErrors = "";
            $("input[name^=field_required_][value=1]").each(function() {
                var data = "";
                var reqField = $(this);
                var reqData = $("*[name=field_data_" + reqField.attr("name").substr("field_required_".length) + "]");
                var reqLabel = $("*[name=field_label_" + reqField.attr("name").substr("field_required_".length) + "]");
                if (reqData.length == 1 && reqLabel.length == 1) {
                    if (reqData[0].tagName.toLowerCase() == "select") {
                        if (reqData[0].selectedIndex != -1)
                            data = "ok";
                    }
                    else data = reqData.attr("value")
                    if (!data) {
                        strErrors += reqLabel.attr("value") + eval("RequiredFieldError_" + lang);
                        isOk = false;
                    }
                    else if (reqLabel.attr("value") == "Email") {
                        if (data.indexOf("@") == -1 || data.indexOf(".") == -1)
                            errorMail = eval("MailFieldError_" + lang);
                    }
                }
            });

            if (!isOk) alert(strErrors);
            else if (errorMail) {
                alert(errorMail);
                isOk = false;
            }
            else if (document.location.pathname.indexOf("/Maximizer/JPO.htm") != -1) {
                var numeric = $("*[name=field_data_U_PROSPECT_PORTES_OUVERTES_COMBIEN_DE_PERSONNE_SEREZ_VOUS_]");
                if (numeric.length == 1) {
                    var val = numeric.attr("value");
                    var exp = new RegExp("^[0-9]+$", "g");
                    if (!exp.test(val) || (val * 1) <= 0) {
                        isOk = false;
                        alert("Le nombre de personnes doit être un nombre entier supérieur à zéro.");
                        numeric[0].focus();
                    }
                }
            }
            else if (document.location.pathname.indexOf("/Maximizer/SAI.htm") != -1 || document.location.pathname.indexOf("/Maximizer/MSc.htm") != -1) {
                var numeric = $("*[name=field_data_U_INFORMATIONS_PERSONNELLES_ACADEMIC_BACKGROUND_Année_diplôme]");
                if (numeric.length > 0) {
                    var val = numeric.attr("value");
                    var exp = new RegExp("^[0-9]+$", "g");
                    if (val.length > 0 && (!exp.test(val) || (val * 1) <= 1900)) {
                        isOk = false;
                        alert("Invalid Graduation Year.");
                        numeric[0].focus();
                    }
                }
            }
            
            if (isOk && !CheckCaptcha()) {
                alert(eval("CaptchaError_" + lang));
                isOk = false;
                $("#CodeVerif")[0].focus();
            }

            if (!isOk) GenerateCaptcha();
            return isOk;
        }
        
// ***************    