function HandleCitySelected(HotelCallback, CityField)
{
    var CityID = '0';
    var SelectedItem = CityField.getSelectedItem();
    if (SelectedItem != null)
        CityID = SelectedItem.get_value();
    HotelCallback.Callback(CityID);
}

function HandleTravel(IsTravel, FromEdit, NameField, DescriptionField, FromField, ToField, CountryField, TravelIDField, CityField, ManuelCityField, HotelField, ManuelHotelField, TagsField)
{
    // Reisedaten ermitteln
    var ToDay = 0;
    var ToYear = 0;
    var ToMonth = 0;
    var FromDay = 0;
    var CityID = '0';
    var FromYear = 0;
    var FromMonth = 0;
    var HotelID = '0';
    var CityName = '';
    var HotelName = '';
    var CountryISO = '';
    var TravelGUID = '';
    var TraveltimeTo = null;
    var TraveltimeFrom = null;
    var Todo = FromEdit ? 'entryedittravel' : 'entrynewtravel';
    var Travelname = IsTravel ? GetInputValue(NameField) : '-';
    var DescValue = GetInputValue(DescriptionField);
    var TagsValue = TagsField ? GetInputValue(TagsField) : '';
    if (!IsTravel || FromEdit)
        TravelGUID = GetInputValue(TravelIDField);
    if (!IsTravel)
    {
        CountryISO = GetDropDownValue(CountryField, '');
        if (CityField != null)
        {
            CityName = GetInputValue(ManuelCityField);
            var SelectedItem = CityField.getSelectedItem();
            if (SelectedItem != null)
                CityID = SelectedItem.get_value();
        }
        if (CityID != '0' || CityName != '')
        {
            if (HotelField != null)
            {
                HotelName = GetInputValue(ManuelHotelField);
                HotelID = GetDropDownValue(HotelField);
            }
        }
        Todo = FromEdit ? 'entryeditdestination' : 'entrynewdestination';
        TraveltimeTo = ToField.getSelectedDate();
        TraveltimeFrom = FromField.getSelectedDate();
        if (TraveltimeTo != null)
        {
            ToDay = TraveltimeTo.getDate();
            ToYear = TraveltimeTo.getFullYear();
            ToMonth = TraveltimeTo.getMonth() + 1;
        }
        if (TraveltimeFrom != null)
        {
            FromDay = TraveltimeFrom.getDate();
            FromYear = TraveltimeFrom.getFullYear();
            FromMonth = TraveltimeFrom.getMonth() + 1;
        }
    }

    // Felder pruefen
    var ErrorObject = '';
    if (!IsTravel)
    {
        ShowHideObject('RequiredCountry', 'none');
        ShowHideObject('RequiredTraveltime', 'none');
        if (TraveltimeFrom == null || TraveltimeTo == null)
            ErrorObject = 'RequiredTraveltime';
        if (CountryISO == '')
            ErrorObject = 'RequiredCountry';
    }
    ShowHideObject('RequiredTravelname', 'none');
    if (Travelname == '')
        ErrorObject = 'RequiredTravelname';

    // Wenn Fehler dann anzeigen, sonst abschicken
    if (ErrorObject == '')
        ExecuteTravelPopup(Todo, Travelname, DescValue, FromDay + ';' + FromMonth + ';' + FromYear, ToDay + ';' + ToMonth + ';' + ToYear, TravelGUID, CountryISO, CityID, HotelID, CityName, TagsValue, HotelName);
    else
        ShowHideObject(ErrorObject, 'block');
}

function ShowTheTravel(TravelCallback, TravelID, MainTabPage, PhotoTabPage, TrackVisit, IsNewTravel)
{
    TravelCallback.Callback('showtravel', TravelID, MainTabPage, PhotoTabPage, TrackVisit, IsNewTravel);
}

function ShowTheOverviewMap(TravelCallback)
{
    TravelCallback.Callback('showmap');
}

function ShowTheOverview(TravelCallback)
{
    TravelCallback.Callback('showoverview');
}

function SelectTravelCountry(CountryField, CityCallback, HotelCallback)
{
    var CountryISO = GetDropDownValue(CountryField, '');
    CityCallback.Callback(CountryISO);
    HotelCallback.Callback(CountryISO);
}

function ShowFriendCombo(ComboName)
{
    ShowHideObject(ComboName, 'block');
}

function HideFriendCombo(ComboName)
{
    ShowHideObject(ComboName, 'none');
}

function AddTravelFriend(TravelFriendCallback, DropDown, TravelIDField)
{
    var SelItem = DropDown.getSelectedItem();
    var TravelGUID = GetInputValue(TravelIDField);
    if (SelItem != null && TravelGUID != '')
        TravelFriendCallback.Callback('addtravelfriend', SelItem.get_value(), TravelGUID);
}

function RemoveTravelFriend(TravelFriendCallback, FriendName, TravelIDField)
{
    var TravelGUID = GetInputValue(TravelIDField);
    if (FriendName != '' && TravelGUID != '')
        TravelFriendCallback.Callback('removetravelfriend', FriendName, TravelGUID);
}

function ShowPhotoPage(MultiPage, PhotoPage)
{
    MultiPage.setPageIndex(PhotoPage);
}

function RefreshTheTravelPhotos(PhotoCallback, TravelIDField, ParentIDField, TravelUserField, IsTravelField, PhotoTab)
{
    var PhotoTabPage = PhotoTab.getPageIndex();
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        PhotoCallback.Callback(TravelGUID, ParentGUID, TravelUser, IsTravel, PhotoTabPage);
}

function RefreshTheTravelVideos(VideoCallback, TravelIDField, ParentIDField, TravelUserField, IsTravelField)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        VideoCallback.Callback(TravelGUID, ParentGUID, TravelUser, IsTravel);
}

function RemovePhoto(PhotoCallback, TravelIDField, ParentIDField, IsTravelField, ImageName)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    if (TravelGUID != '' && ImageName != '')
        PhotoCallback.Callback('removephoto', TravelGUID, ParentGUID, IsTravel, ImageName);
}

function RemoveVideo(PhotoCallback, TravelIDField, ParentIDField, IsTravelField, VideoName)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    if (TravelGUID != '' && VideoName != '')
        PhotoCallback.Callback('removevideo', TravelGUID, ParentGUID, IsTravel, VideoName);
}

function RemoveTravelDest(TravelCallback, TravelIDField, ParentIDField, IsTravelField)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    if (TravelGUID != '')
        TravelCallback.Callback('removetraveldest', TravelGUID, ParentGUID, IsTravel);
}

function RemoveBlog(BlogCallback, TravelIDField, BlogGUID, TravelUserField, IsTravelField)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && BlogGUID != '' && TravelUser != '')
        BlogCallback.Callback('removeblog', TravelGUID, TravelUser, IsTravel, BlogGUID);
}

function RefreshTheBlogs(BlogCallback, TravelIDField, TravelUserField, IsTravelField)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        BlogCallback.Callback('refreshblogs', TravelGUID, TravelUser, IsTravel);
}

function RefreshTheTipsWirls(TipsWirlsCallback, TravelIDField, TravelUserField)
{
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        TipsWirlsCallback.Callback(TravelGUID, TravelUser);
}

function ChangeTheTipsWirlsSize(TipsWirlsCallback, TravelIDField, TravelUserField, PageSize)
{
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        TipsWirlsCallback.Callback(TravelGUID, TravelUser, PageSize);
}

function RefreshTheLastBlog(BlogCallback, TravelIDField, TravelUserField)
{
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && TravelUser != '')
        BlogCallback.Callback(TravelGUID, TravelUser);
}

function ShowDialogPhoto(TravelUserField, TravelIDField, ParentIDField, IsTravelField, ImageName)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && ImageName != '')
        ShowTravelPopup('showphotodialog', true, TravelUser, TravelGUID, ParentGUID, IsTravel, ImageName)
}

function ShowTravelBlog(SEOName, TravelGUID, BlogGUID)
{
    if (TravelGUID != '' && BlogGUID != '')
        ShowTravelPopup('showtravelblog', true, SEOName, TravelGUID, BlogGUID)
}

function SaveTravelBlog(FromEdit, TravelIDField, BlogIDField, HeadLineField, BlogdateField, Editor)
{
    // Werte lesen
    var Blogdate = BlogdateField.getSelectedDate();
    var BlogDay = Blogdate.getDate();
    var BlogYear = Blogdate.getFullYear();
    var BlogMonth = Blogdate.getMonth() + 1;
    var FCKEditor = FCKeditorAPI.GetInstance(Editor + '_WYSIWYGEditor');
    var Headline = GetInputValue(HeadLineField);
    var Blogtext = FCKEditor.GetHTML();
    var TravelGUID = GetInputValue(TravelIDField);
    var BlogGUID = FromEdit ? GetInputValue(BlogIDField) : '';
 
    // Was ist zu tun   
    var Todo = FromEdit ? 'entryedittravelblog' : 'entrynewtravelblog';
   
    // Felder pruefen
    var ErrorObject = '';
    ShowHideObject('RequiredTravelBlogText', 'none');
    ShowHideObject('RequiredTravelBlogdate', 'none');
    ShowHideObject('RequiredTravelblogHeadline', 'none');
    if (Blogtext == '')
        ErrorObject = 'RequiredTravelBlogText';
    if (BlogDay == 0 && BlogYear == 0 && BlogMonth == 0)
        ErrorObject = 'RequiredTravelBlogdate';
    if (Headline == '')
        ErrorObject = 'RequiredTravelblogHeadline';

    // Wenn Fehler dann anzeigen, sonst abschicken
    if (ErrorObject == '')
        ExecuteTravelPopup(Todo, TravelGUID, BlogGUID, Headline, BlogDay + ';' + BlogMonth + ';' + BlogYear, Blogtext);
    else
        ShowHideObject(ErrorObject, 'block');
}

function ShowTheTravelVideo(VideoCallback, TravelUserField, VideoName, SplashName, Descr)
{
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelUser != '' && Descr != '')
        VideoCallback.Callback(TravelUser, Descr, VideoName, SplashName);
}

function SavePhotoDescription(PhotoName, TextFieldID)
{
    var PhotoDescr = GetInputValue(TextFieldID + '_edtDescription');
    var PhotoTags = GetInputValue(TextFieldID + '_edtTags');
    if (PhotoName != '')
        ExecuteTravelPopup('savephotodescr', PhotoName, PhotoDescr, PhotoTags);
}

function SaveVideoDescription(VideoName, TextFieldID)
{
    var VideoDescr = GetInputValue(TextFieldID + '_edtDescription');
    var VideoTags = GetInputValue(TextFieldID + '_edtTags');
    if (VideoName != '')
        ExecuteTravelPopup('savevideodescr', VideoName, VideoDescr, VideoTags);
}

function SaveTheSingleTravelImage(TravelIDField, TravelUserField, ImageName)
{
    var TravelGUID = GetInputValue(TravelIDField);
    var TravelUser = GetInputValue(TravelUserField);
    if (TravelGUID != '' && ImageName != '')
        ExecuteTravelPopup('savesingleimage', TravelUser, TravelGUID, ImageName);
}

function AddTheNewDestination(TravelIDField, ParentIDField, IsTravelField)
{
    var IsTravel = GetInputValue(IsTravelField);
    var TravelGUID = GetInputValue(TravelIDField);
    var ParentGUID = GetInputValue(ParentIDField);
    var GUID = IsTravel == "1" ? TravelGUID : ParentGUID;
    if (GUID != '')
        ShowTravelPopup('newdestination', true, GUID)
}

function RunTravelSearch(SearchPage, SearchCallBack, ClientName, FromField, ToField)
{
    var ToDay = 0;
    var ToYear = 0;
    var ToMonth = 0;
    var FromDay = 0;
    var FromYear = 0;
    var FromMonth = 0;
    var What = GetInputValue(ClientName + '_edtWhat');
    var Where = GetInputValue(ClientName + '_edtWhere');
    var TraveltimeTo = ToField.getSelectedDate();
    var TraveltimeFrom = FromField.getSelectedDate();
    if (TraveltimeTo != null)
    {
        ToDay = TraveltimeTo.getDate();
        ToYear = TraveltimeTo.getFullYear();
        ToMonth = TraveltimeTo.getMonth() + 1;
    }
    if (TraveltimeFrom != null)
    {
        FromDay = TraveltimeFrom.getDate();
        FromYear = TraveltimeFrom.getFullYear();
        FromMonth = TraveltimeFrom.getMonth() + 1;
    }
    var FilterTime = GetCheckboxValue(ClientName + '_chkTraveltime');
    var BlogsOnly = GetCheckboxValue(ClientName + '_chkBlogs');
    var PhotosOnly = GetCheckboxValue(ClientName + '_chkPhotos');
    var VideosOnly = GetCheckboxValue(ClientName + '_chkVideos');
    var TipWirlsOnly = GetCheckboxValue(ClientName + '_chkTipWirls');

    // Suche ausführen
    SearchCallBack.Callback(What, Where, FromDay + ';' + FromMonth + ';' + FromYear, ToDay + ';' + ToMonth + ';' + ToYear, FilterTime, PhotosOnly, VideosOnly, BlogsOnly, TipWirlsOnly);
    SearchPage.setPageIndex(1);

    // Immer false, damit der Postback verhindert wird.
    return false;
}

function HandleSendTravel(TravelGUIDField, TravelUserField, NameField, MailField, CommentField)
{
    var Name = GetInputValue(NameField);
    var EMail = GetInputValue(MailField);
    var User = GetInputValue(TravelUserField);
    var Comment = GetInputValue(CommentField);
    var TravelGUID = GetInputValue(TravelGUIDField);
    if (TravelGUID != '' && User != '')
    {
        // Felder pruefen
        var ErrorObject = '';
        ShowHideObject('RequiredRecipientname', 'none');
        ShowHideObject('RequiredRecipientmail', 'none');
        if (EMail == '')
            ErrorObject = 'RequiredRecipientmail';
        if (Name == '')
            ErrorObject = 'RequiredRecipientname';

        // Wenn Fehler dann anzeigen, sonst abschicken
        if (ErrorObject == '')
            ExecuteTravelPopup('sendtravel', TravelGUID, User, Name, EMail, Comment);
        else
            ShowHideObject(ErrorObject, 'block');
    }
}