﻿/// <reference path="../External/jquery-1.3.2-vsdoc2.js" />

Edentity.RegisterNamespace("Whiskas.Popup.Wallpaper");

function Popup(elementID, loadingElementID) {

    var params = "";
    var showCallbackFunction = null;
    
    if (typeof elementID == 'undefined' || elementID == null || elementID === '') {
        throw "No element ID to register";
    }

    //Add div to DOM
    var elem = document.getElementById(elementID);

    if (elem == null) {
        elem = document.createElement("div");
        elem.setAttribute("id", elementID);
    }

    var wallpaperElement = $(elem);

    this.LoadServerContent = function(viewID) {
        if (typeof viewID == 'undefined' || viewID == null || viewID === '') {
            throw "No viewID to register";
        }

        params = "view=" + viewID;

        return this;
    };

    this.ShowCallbackFunction = function(callback) {
        if (typeof callback != 'function') {
            throw "No callback registered";
        }
        
        showCallbackFunction = callback;

        return this;
    };

    this.Options = null;

    this.Show = function(loadingElementID) {

        if (wallpaperElement == null || wallpaperElement.length == 0) {
            return;
        }

        if (wallpaperElement.html().length == 0) {
            //Empty container, load content
            if (typeof loadingElementID != 'undefined' && loadingElementID != null && loadingElementID === '') {
                var loadingElement = $('#' + loadingElementID);
                wallpaperElement.html(loadingElement.html());
            }

            ShowPopup(wallpaperElement, this.Options);

            if (params != null && params.length > 0) {
                wallpaperElement.load(Agility_BaseUrl + "HTTPHandlers/GetHtmlContent.ashx", params, showCallbackFunction);
            }
        }
        else {
            ShowPopup(wallpaperElement, this.Options);
        }
    };

    this.Hide = function() {
        HidePopup(wallpaperElement);
    };

    return this;
};

var wallPaperPopup = new Popup('divWhiskasWallpaper').LoadServerContent('Wallpaper');
wallPaperPopup.Options = { width: 760, height: 980 };

var askACatPopup = new Popup('AskACat').LoadServerContent('AskACat').ShowCallbackFunction(function() {
    var swf = $('#askACatFlashContainer').attr('swf');
    
    if (swf != null && swf !== '') {
        var so = new SWFObject(swf, "askacat", "465", "575", 9);
        so.addParam("wmode", "transparent");
        so.addParam("allowScript", "true");
        if (so.write('askACatFlashContainer') == false) {
            $('#askACatFlashContainer').html("No Flash Installed");
        }
    } else {
        $('#askACatFlashContainer').html("Flash file is missing");
    }
});
askACatPopup.Options = { width: 519, height: 721 };

var KittenPersonalityPopup = new Popup('divKittenPersonalityPopup').LoadServerContent('KittenPersonality');
KittenPersonalityPopup.Options = { width: 790, height: 1060 };

var WhiskasCatQuizPopup = new Popup('divWhiskasCatQuizPopup').LoadServerContent('WhiskasCatQuiz');
WhiskasCatQuizPopup.Options = { width: 790, height: 1060 };

var ContactUsFormPopup = new Popup('divContactUsFormPopup').LoadServerContent('ContactUsForm');
ContactUsFormPopup.Options = { width: 800, height: 910, top: 90 };

var ContactUsFormThanksPopup = new Popup('divContactUsFormThanksPopup').LoadServerContent('ContactUsFormThanks');
ContactUsFormThanksPopup.Options = { width: 623, height: 257 };

function ShowPopup(elementID, options) {
    if (typeof options == 'undefined' || options == null) {        
        options = { width: 'auto', height: '100%', top: 100 };
    }

    if (!options.top) {
        options.top = 100;
    }
    
    if (typeof elementID != 'undefined' && elementID != null) {
        $('html, body').animate({ scrollTop: 100 });

        $(elementID).dialog({ autoOpen: false,
            draggable: false,
            modal: true,
            resizable: false,
            width: options.width,
            height: options.height,
            position: 'center'
        });        
                
        $(elementID).dialog('open');
        
        if (options.top > 0) {
            $(elementID).parent(".ui-dialog").css("top", options.top);
            $(elementID).parents(".ui-dialog").find(".ui-dialog-titlebar").remove();
        }
    }
}

function HidePopup(elementID) {
    if (typeof elementID != 'undefined' && elementID != null) {
        $(elementID).dialog('close');
    }
}

function HideWallpaperPopup() {
    wallPaperPopup.Hide();
}

function HideAskACatPopup() {
    askACatPopup.Hide();
}

function ShowContactUsForm() {
    ContactUsFormPopup.Show();
};

function HideContactUsFormThanks() {
    ContactUsFormThanksPopup.Hide();
};
