function init(){
    $(".popDivTop .popDivClose").click(function(){
        $("#popDiv").hide();
    });

    $(".popDivRow .popDivSubmit").click(function(event){
            
        if (isBookFormValid()) {
            bookAction();
            event.preventDefault();
        } else {
            alert("Kérjük mindent töltsön ki!");
            event.preventDefault();
        }
    });
    
    javascript:dmmft('1');
}

function isBookFormValid(){
    var isValid = true;

    $("#bookForm input[type=text]").each( function() {
        if (jQuery.trim(this.value) == undefined || jQuery.trim(this.value) == "") {
            isValid = false;
        }
    });

    return isValid;
}

function clearBookFormFields(){
    $("#bookForm input").each( function() {
        this.value = "";
    });
    $("#bookForm textarea").each( function() {
        this.value = "";
    });
}

function injectSubMenuId(subMenuId){
    $("#bookForm input[type=hidden]").each( function() {
        this.value = subMenuId;
    });
}

function bookAction(){
    var subMenuId = $("#bookForm input[type=hidden]").val();
    
    var bookingData = new Array()
    bookingData["submenuid"] = $("#bookForm input[type=hidden]").val();
    bookingData["name"] = $("#bookForm input[name=name]").val();
    bookingData["phone"] = $("#bookForm input[name=phone]").val();
    bookingData["email"] = $("#bookForm input[name=email]").val();
    bookingData["city"] = $("#bookForm input[name=city]").val();
    bookingData["address"] = $("#bookForm input[name=address]").val();
    bookingData["zip"] = $("#bookForm input[name=zip]").val();
    bookingData["country"] = $("#bookForm input[name=country]").val();
    bookingData["headcount"] = $("#bookForm input[name=headcount]").val();
    bookingData["comment"] = $("#bookForm textarea").val();

    performActualBooking(bookingData);
    
}

function displayPopDiv(subMenuId){
    clearBookFormFields();
    injectSubMenuId(subMenuId);
    $("#popDiv").show();
}

function performActualBooking(bookingData){
        
    $.ajax({
        type: "GET",
        url: "performBookingAction.popeye",
        data: "submenuid="+bookingData["submenuid"]+
            "&name="+bookingData["name"]+
            "&phone="+bookingData["phone"]+
            "&email="+bookingData["email"]+
            "&headcount="+bookingData["headcount"]+
            "&comment="+bookingData["comment"]+
            "&city="+bookingData["city"]+
            "&address="+bookingData["address"]+
            "&zip="+bookingData["zip"]+
            "&country="+bookingData["country"],
        dataType: "xml",
        success: function(result){
            $("bookingWasSuccessful", result).each(function(){
                var bookingWasSuccessful = $("value", this).text();

                if (bookingWasSuccessful == "true") {
                    alert("A foglalás leadása sikeres volt! Köszönjük!");
                    $("#popDiv").hide();
                } else {
                    alert("A foglalás leadása sikertelen volt! Kérjük próbálkozzon újra kés\u0151bb! Ha többszöri próbálkozása sem volt sikeres a foglalás, akkor kérjük jelezzen a webmester@popeyelesko.hu címre!\nKöszönjük!");
                }
            });
        }
    });
}

////This function sets the text associated to sub menu items. So it loads the sub menus of a main menu. This function is only called for main menu items having sub menu items.
//Pagination is also supported, the offset can be set by using the third parameter. There are 4 sub menu items on one page.
function loadContent(menuCaption, mainMenuToLoad, subMenuItemOffset){
    $("#actualContent").html("<div id='ajaxLoader'><img src='images/ajaxloader.gif'></div>");
        
    $.ajax({
        type: "GET",
        url: "displaySubMenu.popeye",
        data: "mainMenuID="+mainMenuToLoad+"&subMenuItemOffset="+subMenuItemOffset,
        dataType: "xml",
        success: function(result){
                    
            var pageContent = "";
            var numOfAllSubmenuItems = 0;
            $("submenu", result).each(function(){

                var nameOfSubMenu = $("nameofsub", this).text();
                var idOfSubMenu = $("id", this).text();
                var idimage = $("idimage", this).text();
                numOfAllSubmenuItems = $("numofsub", this).text();
                var vacancyid = $("vacancyid", this).text();
                var vacancydesc = $("vacancydesc", this).text();
                var vacancyimage = $("vacancyimage", this).text();
        
                //Creating parameter for displaySubMenuText function
                var mainMenuData = new Array();
                mainMenuData.push(menuCaption, mainMenuToLoad, subMenuItemOffset);
                
                pageContent += "<div class=\"subMenuOuterDiv\"><div class=\"subMenuThumbnailDiv\">";
                pageContent += "<img src='/readImage?idimage="+ idimage +"' width=\"135\" height=\"101\" class=\"subMenuThumbnail\"/></div>";
                pageContent += "<div class=\"subMenuThumbnailDesc\">";
                pageContent += nameOfSubMenu;

                pageContent += "<br/><br/><a href=\"javascript:displaySubMenuText("+idOfSubMenu+",'"+ menuCaption +"', "+mainMenuToLoad+", "+subMenuItemOffset+")\"><img class=\"imageNoBorder\" src=\"images/next.png\"/></a>";

                //********************** VACANCY INFO
                if(vacancyid !== "4") {
                    pageContent += "<div class=\"vacancy_container\"><div class=\"float-left\"><img src=\"/readImage?idimage="+vacancyimage+"\"/></div>";

                    switch(vacancyid) {
                        case '1': pageContent += "<div class=\"float-left vacancy_desc cursor_pointer\" onclick=\"displayPopDiv("+idOfSubMenu+")\">"+vacancydesc+"</div>"; break;
                        case '2': pageContent += "<div class=\"float-left vacancy_desc cursor_pointer\" onclick=\"displayPopDiv("+idOfSubMenu+")\">"+vacancydesc+"</div>"; break;
                        case '3': pageContent += vacancydesc; break;
                    }

                    pageContent += "</div>";
                }
                
                //********************** VACANCY INFO

                pageContent += "</div></div>";
                pageContent += "<div style=\"clear:both;\"><!-- IE6 --></div>";
            });
                    
        
            //Is it a multipage menu? If it is, we display the page numbers
            var remainder = numOfAllSubmenuItems % 4;
            var quotient = ( numOfAllSubmenuItems - remainder ) / 4;
            var endOfForLoop = 0;
            if(remainder == 0){
                endOfForLoop = quotient;
            } else {
                endOfForLoop = quotient + 1;
            }
                    
            if(numOfAllSubmenuItems > 4){
                pageContent += "<div id=\"pageNumbers\">Oldal: ";
                for(var i = 0; i<endOfForLoop; i++){
                    if(subMenuItemOffset == i*4){
                        pageContent += (i+1) + "&nbsp;";
                    } else {
                        pageContent += "<a class='pageLink' href='javascript:loadContent(\""+menuCaption+"\", "+mainMenuToLoad+", "+i*4+");'>" + (i+1) + "</a> &nbsp;";
                    }
                }
                pageContent += "</div>";
            }
                    
            //alert("numberOfSubMenuItems: "+numOfAllSubmenuItems+"\nNumOfPages: "+endOfForLoop);
            $("#contentTitle").html(menuCaption);
            $("#actualContent").html(pageContent);
        }
    });
}
 
//This function sets the text associated to main menu items that have sub menu items (e.g.: Síutak, etc...)
function displaySubMenuText(idSubMenuToDisplay, menuCaption, mainMenuToLoad, subMenuItemOffset, backIsAMainMenu){
    $("#actualContent").html("<div id='ajaxLoader'><img src='images/ajaxloader.gif'></div>");
    
    $.ajax({
        type: "GET",
        url: "getTextOfConcteteSubMenu.popeye",
        data: "subMenuID="+idSubMenuToDisplay,
        dataType: "xml",
        success: function(result){
                    
            var pageContent = "";
            var subMenuCaption = "";
            var submenuText = "";
            $("submenuText", result).each(function(){

                subMenuCaption = $("subMenuCaption", this).text();
                submenuText = $("actualText", this).text();
               
                pageContent += "<div id=\"subMenuConcreteText\">";
                pageContent += submenuText;
                pageContent += "</div>";
                
                if(menuCaption !== undefined && mainMenuToLoad !== undefined && subMenuItemOffset !== undefined){
                    pageContent += "<div style=\"clear:both\">";

                    if (backIsAMainMenu === true) {
                        pageContent += "<br/><a href=\"javascript:dmmft('"+mainMenuToLoad+"');\"><img class=\"imageNoBorder\" src=\"images/back.png\"/></a>";
                    } else {
                        pageContent += "<br/><a href=\"javascript:loadContent('"+menuCaption+"',"+mainMenuToLoad+","+subMenuItemOffset+");\"><img class=\"imageNoBorder\" src=\"images/back.png\"/></a>";
                    }

                    pageContent += "</div>";    
                }
                
            });
            
            $("#contentTitle").html(subMenuCaption);
            $("#actualContent").html(pageContent);
            // create a DIV element, using the variable eDIV as a reference to it
            /*contentDiv = document.createElement("div");
            //use the setAttribute method to assign it an id
            contentDiv.appendChild(document.createTextNode(pageContent));
            // append your newly created DIV element to an already existing element.
            document.getElementById("actualContent").appendChild(contentDiv);*/

        }
    });
    //$('actualContent').innerHTML="Dolgozom...";
}

//This function sets the text associated to main menu items that have no sub menu items (e.g.: homepage, túranaptár, elérhetoségeink etc...)
//dmmft stands for "displayMainMenuFullText"
function dmmft(mainMenuId){
    $("#actualContent").html("<div id='ajaxLoader'><img src='images/ajaxloader.gif'></div>");
    
    $.ajax({
        type: "GET",
        url: "getTextOfMainMenuHavingNoSubmenus.popeye",
        data: "mainMenuId="+mainMenuId,
        dataType: "xml",
        success: function(result){
                    
            var pageContent = "";
            var mainMenuCaption = "";
            var mainMenuText = "";
            $("mainMenuText", result).each(function(){

                mainMenuCaption = $("mainMenuCaption", this).text();
                mainMenuText = $("actualText", this).text();
               
                pageContent += "<div id=\"subMenuConcreteText\">";
                pageContent += mainMenuText;
                pageContent += "</div>";
            });
            
            $("#contentTitle").html(mainMenuCaption);
            $("#actualContent").html(pageContent);
        }
    });
}


function isItAValidEmailAddress(str) {

    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){
        //alert("Invalid E-mail ID");
        return false;
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        //alert("Invalid E-mail ID");
        return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        //alert("Invalid E-mail ID");
        return false;
    }

    if (str.indexOf(at,(lat+1))!=-1){
        //alert("Invalid E-mail ID");
        return false;
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        //alert("Invalid E-mail ID");
        return false;
    }

    if (str.indexOf(dot,(lat+2))==-1){
        //alert("Invalid E-mail ID");
        return false;
    }
		
    if (str.indexOf(" ")!=-1){
        //alert("Invalid E-mail ID");
        return false;
    }

    return true;			
}

function newsletterFieldIsValid(){
    if($("#emailAddress").val().length === 0){
        return "Kérjük adja meg e-mail címét!";
    } else {
        if(isItAValidEmailAddress($("#emailAddress").val())){
            return true;
        } else {
            return "Az Ön által megadott e-mail cím helytelen!";
        }
    }
}

function signupToNewsletter(){
    var resultOfValidation = newsletterFieldIsValid();
    if(resultOfValidation === true){
        $("#errorMessage").html("");
        //Ajax request for newsletter signup
        var emailAddress = $("#emailAddress").val();
        $.ajax({
            type: "GET",
            url: "signupForNewsletter.popeye",
            data: "emailAddress=" + emailAddress,
            dataType: "xml",
            success: function(result){
                $("#actualContent").html("<div id='ajaxLoader'><img src='images/ajaxloader.gif'></div>");
                var pageContent = "";
                var emailFieldValid = true;
                $("isFieldValid", result).each(function(){

                    emailFieldValid = $("value", this).text();
                });
                if(emailFieldValid === "true"){
                    //Back end validation: email field is valid
                    var isAlreadyRegistered = true;
                    $("isAlreadyRegistered", result).each(function(){
                        isAlreadyRegistered = $("value", this).text();
                    });
                    if(isAlreadyRegistered === "false"){
                        var signupWasSuccessful = true;
                        $("isSignupSuccessful", result).each(function(){
                            signupWasSuccessful = $("value", this).text();
                        });
                        if(signupWasSuccessful === "true"){
                            //Field was valid and signup was successful
                            pageContent += "<div id=\"subMenuConcreteText\">";
                            pageContent += "Ön sikeresen feliratkozott hírlevelünkre! Köszönjük érdelődését!";
                            pageContent += "</div>";
                        } else {
                            //Field was valid but signup was unsuccessful
                            pageContent += "<div id=\"subMenuConcreteText\">";
                            pageContent += "Sajnos technikai okok miatt a hírlevélre való feliratkozás sikertelen volt. Kérje webesterünk segítségét a webmester@popeyelesko.hu e-mail címen! Köszönjük!";
                            pageContent += "</div>";
                        }
                    } else {
                        //Field was valid but already registered for newsletter
                        pageContent += "<div id=\"subMenuConcreteText\">";
                        pageContent += "Az Ön e-mail címével már találtunk regisztrációt!";
                        pageContent += "</div>";
                    }
                    
                    
                } else {
                    //Back end validation: email field is invalid
                    pageContent += "<div id=\"subMenuConcreteText\">";
                    pageContent += "Rendszerünk azt jelezte, hogy az Ön által megadott e-mail cím nem helyes. Kérjük ellenőrizze!"
                    pageContent += "</div>";
                }
            
                $("#contentTitle").html("Hírlevél");
                $("#actualContent").html(pageContent);
            }
        });
    } else {
        $("#errorMessage").html(resultOfValidation);
    }
}

function book(){
    $("#errorMessage").html("");
    //Ajax request for booking
    
    // TODO: Specify GET parameters
    
    $.ajax({
        type: "GET",
        url: "book.popeye",
        data: "emailAddress=" + emailAddress,
        dataType: "xml",
        success: function(result){
            // TODO
        }
    });
    
}
