﻿//---------- Customized Start ----------
    
    var currentCustomizedTab = null
    
    function initModules(){
        $.metadata.setType("attr", "data")
    
        var q = $.parseQuery();
        
        // Select a specified tab, if there is specified one in the querystring
        var q = $.parseQuery();
        if (q.tab != undefined){
            if(q.tab == "Module"){
                selectTab($(".CustomizedMenu").find("a:eq(0)"), "contentPlaceTab"); 
            }
            else if (q.tab == "Trip"){
                selectTab($(".CustomizedMenu").find("a:eq(2)"), "contentYourTripTab");
            }
        }
        
        // Collaps all moduletypes
        collapsAllModuleTypes();
        
        
        if (q.ModuleID != undefined){ // Load module specified in querystring
            
            //Select the default tab if there is no tab selected at the moment.
            if (!currentCustomizedTab){
                selectTab($(".CustomizedMenu").find("a:eq(0)"), "contentPlaceTab"); 
            }
            selectModuleInit(q.ModuleID);
            var link = $("#linkModule" + q.ModuleID).parent().parent().siblings().find("a.More")
            showModules(link);
        }
        else{ //load first module.
            if ($(".BlockSmall").find(".liModule:first").size() > 0) {
                if (!currentCustomizedTab){
                   selectTab($(".CustomizedMenu").find("a:eq(0)"), "contentPlaceTab"); 
                }
                selectModuleInit($(".BlockSmall").find(".liModule:first").find("a").metadata().ModuleID);
            }
            else{
                selectTab($(".CustomizedMenu").find("a:eq(2)"), "contentYourTripTab");
            }
         }
         updateYourTrip();
    }
    
    function selectTab(link, tab){
        currentCustomizedTab = tab
        $("#tabContainer > div.customizedTabContent").hide();
        $(".CustomizedMenu").find(".Selected").removeClass("Selected");
        var tabID = "#" + tab
        $(link).addClass("Selected");
        $(tabID).show();
    }
    
    function selectModuleInit(moduleID){
        $(".CustomizedChoices").find(".liModule").find(".Selected").removeClass("Selected");
        $("#linkModule" + moduleID).addClass("Selected");
        loadModule(moduleID);
    }
    
    function selectModule(moduleID){
        $(".CustomizedChoices").find(".liModule").find(".Selected").removeClass("Selected");
        $("#linkModule" + moduleID).addClass("Selected");
        selectTab($(".CustomizedMenu").find("a:eq(0)"), "contentPlaceTab");
        loadModule(moduleID);
    }
    
    function loadModule(moduleID){
        LoadModuleImages(moduleID);
        LoadPriceIncludes(moduleID);
        $.ajaxSetup({
          cache: false
        });
        $.get(getUrlWithPreviewKey(FullWebsitePath + "ajax/Customized/GetModuleInfo.aspx?ModuleID=" + moduleID, false), function(data){
           updatePlaceTab(data);
        });
    }
    
    function updatePlaceTab(content){
         $("#contentPlaceTab").html(content);
         if ($("div.DayList").find('a:first').size() > 0) {
            selectModuleDay($("div.DayList").find('a:first'), $("div.DayList").find('a:first').metadata().ModuleDayID);
         }  
    }
    
    function LoadModuleImages(moduleID){
        $.ajaxSetup({
            cache: false
        });
        $.get(getUrlWithPreviewKey(FullWebsitePath + "ajax/Customized/GetModuleImages.aspx?ModuleID=" + moduleID, false), function(data){
            $("#CycleWrapper").html(data);
            startSlide();
        }); 
    }
    
    function LoadPriceIncludes(moduleID){
        $.ajaxSetup({
            cache: false
        });
        $.get(getUrlWithPreviewKey(FullWebsitePath + "ajax/Customized/GetModulePriceIncludes.aspx?ModuleID=" + moduleID, false), function(data){
            updatePriceIncludesTab(data);
        }); 
    }
    
    function updatePriceIncludesTab(content){
         $("#contentPriceIncludesTab").html(content);
    }
    
    function selectModuleDay(link, id){
        $(".DayList").find(".Selected").removeClass("Selected");
        $(link).addClass("Selected");
        loadModuleDay(id);
    }
    
    function loadModuleDay(moduleDayID){
        $.ajaxSetup({
          cache: false
        });
        $.get(getUrlWithPreviewKey(FullWebsitePath + "ajax/Customized/GetModuleDayInfo.aspx?ModuleDayID=" + moduleDayID, false), function(data){
           updateModuleDay(data);
        });
    }
    
    function updateModuleDay(content){
         $("#contentModuleDay").html(content);
    }
    
    function collapsAllModuleTypes(){
        $(".CustomizedChoices").find(".hiddenModule").hide();
        $(".CustomizedChoices").find(".More").parent().show();
    }
    
    function showModules(link){
        collapsAllModuleTypes();
        $(link).parent().hide();
        $(link).parent().parent().find(".hiddenModule").show();
    }
    
    function addRemoveModule(checkbox, moduleID){
       $.ajaxSetup({
          cache: false
        });
        
        if (checkbox.checked){
            $.get(FullWebsitePath + "ajax/Customized/AddModule.aspx?ModuleID=" + moduleID, function(data){
                loadSelectedModules();
            });
        }
        else{
            $.get(FullWebsitePath + "ajax/Customized/RemoveModule.aspx?ModuleID=" + moduleID, function(data){
                loadSelectedModules();
            });
        }
    }
    
    function removeModule(moduleID){
        $("#linkModule" + moduleID).addClass("Selected");
        $("#chkModule" + moduleID).attr('checked', false);
        $.get(FullWebsitePath + "ajax/Customized/RemoveModule.aspx?ModuleID=" + moduleID, function(data){
                loadSelectedModules();
         });
    }
    
    function loadSelectedModules(){
        selectTab($(".CustomizedMenu").find("a:eq(2)"), "contentYourTripTab");
        updateYourTrip();
    }
    
    function updateYourTrip(){
        $.ajaxSetup({
          cache: false
        });
        $.get(FullWebsitePath + "ajax/Customized/GetYourTripData.aspx", function(data){
           $("#contentYourTrip").html(data);
        });
    }
    
    function getUrlWithPreviewKey(url, booFirstParameter){
        var urlTemp = url
        var q = $.parseQuery();
        if (q.preview != undefined){
            if (booFirstParameter){
                urlTemp = urlTemp + "?"
            }
            else{
                urlTemp = urlTemp + "&"
            }
          urlTemp = urlTemp + "preview=" + q.preview;
        }
        return urlTemp
    }
    
    //---------- Customized End ----------