//<script type="text/javascript">
/**
 * Class for Jimdo Pro Widget
 * 
 * @class cc_ProWidget
 * @depends jquery.js
 * @author Sebastian Kaspari
 */
(function($) {
    cc_ProWidget = function() {
        
        var self = this,
            
            special           = 'direct',
            upgradeFreePages  = true,
            language          = 'it',
            domainFree        = false,
            acceptedTerms     = false,
            acceptedTransfer  = false,
            domainChanged     = false,
            useFreePage       = false,
            subtype           = 74,
            websiteId         = 0,
            package           = 'pro',
            domainSuggestion  = '',
            tracking          = '',
            
            $boxStep1,
            $boxStep2,
            $boxStep3,
            $inputDomain,
            $buttonCheck,
            $buttonNext,
            $checkboxTransfer,
            $checkboxTerms,
            $inputUserDomain,
            $buttonUpgrade,
            $buttonOrder,
            $buttonBack,
            $buttonUpgrade,
            $radioNewPage,
            $radioExistingPage,
            $labelDomain,
            $boxUserPage,
            $loading,
            $errorMessage,
            $warningMessage,
            $successMessage,
            $userError,
            $boxTransfer,
            $userLoading,
            $termsBox
            ;
            
        /**
         * Initialize Pro Widget
         */        
        this.init = function()
        {
            var prefix = '#cc-prowidget-';
            
            $boxStep1          = $(prefix + 'step1');
            $boxStep2          = $(prefix + 'step2');
            $boxStep3          = $(prefix + 'step3');
            
            $inputDomain       = $(prefix + 'input-domain');
            $buttonCheck       = $(prefix + 'button-check');
            $buttonNext        = $(prefix + 'button-next');
            $checkboxTransfer  = $(prefix + 'checkbox-transfer');
            $checkboxTerms     = $(prefix + 'checkbox-terms');
            
            $buttonOrder       = $(prefix + 'button-order');
            $buttonBack        = $(prefix + 'button-back');
            $buttonUpgrade     = $(prefix + 'button-upgrade');
            $radioNewPage      = $(prefix + 'radio-newpage'); 
            $radioExistingPage = $(prefix + 'radio-existingpage');
            $inputUserDomain   = $(prefix + 'input-userdomain');
            
            $labelDomain       = $(prefix + 'label-domain');
            $boxUserPage       = $(prefix + 'box-userpage');
            
            $loading           = $(prefix + 'loading');
            $userLoading       = $(prefix + 'user-loading');
            
            $errorMessage      = $(prefix + 'message-error');
            $warningMessage    = $(prefix + 'message-warning');
            $successMessage    = $(prefix + 'message-success');
            $extraMessage      = $(prefix + 'message-extra');
            
            $userError         = $(prefix + 'user-error');
            
            $boxTransfer       = $(prefix + 'box-transfer');
            $boxTerms          = $(prefix + 'box-terms');
            
            // Disable checkbox on startup, apple browsers will
            // restore state after reload!
            $checkboxTerms.attr('checked', '');

            // No Terms for predefined websites for upgrade
            if (websiteId > 0) {
            	acceptedTerms = true;
            	$boxTerms.hide();
            }

            $inputDomain.keydown(function(event) {
                if (event.keyCode == 13) {
                    // Enter pressed
                    self.checkDomainStatus();
                } else {
                    domainChanged = true;
                    self.hideAllMessages();
                    self.toggleOrderStatus();
                }
            });

            $buttonCheck.click(function() {
                self.checkDomainStatus();
            });
            
            $buttonNext.click(function() {
                self.nextStep();
            });
            
            $checkboxTerms.click(function() {
                acceptedTerms = $('#' + $checkboxTerms.attr('id') + ':checked').val() == 'on' ? true : false;
                self.toggleOrderStatus();
            });
            
            $checkboxTransfer.click(function() {
                acceptedTransfer = $('#' + $checkboxTransfer.attr('id') + ':checked').val() == 'on' ? true : false;
                self.toggleOrderStatus();
            });
            
            $buttonBack.click(function() {
                self.previousStep();
            });
            
            $radioExistingPage.click(function() {
                self.toggleUpgradeType();
            });
            
            $radioNewPage.click(function() {
                self.toggleUpgradeType();
            });
            
            $buttonOrder.click(function() {
                self.generateCheckout();
            });
            
            $buttonUpgrade.click(function() {
                self.checkUserStatus();
            });

            // Use Domain Suggestion (if set)
            if (domainSuggestion != '') {
                $inputDomain.val(domainSuggestion);
                $buttonCheck.click();
            }
        };
        
        /**
         * Go to next step
         */
        this.nextStep = function()
        {
            if (upgradeFreePages == true) {
                // Show Step 2
                $labelDomain.text($inputDomain.val());
                $boxStep1.slideUp();
                $boxStep2.slideDown();
            } else {
                // No free page upgrade: Step 1 finished -> Checkout
                self.generateCheckout();           
            }
        };
        
        /**
         * Go Back
         */
        this.previousStep = function()
        {
            $boxStep2.slideUp();
            $boxStep1.slideDown();
        };
        
        /**
         * Toggle Order Status
         */
        this.toggleOrderStatus = function()
        {
            if ((domainFree || (!domainFree && acceptedTransfer)) && acceptedTerms && !domainChanged) {
                $buttonNext.attr('disabled', '').removeClass('disabled');
                $buttonCheck.attr('disabled', 'disabled');
            } else {
                $buttonNext.attr('disabled', 'disabled').addClass('disabled');
                if (domainChanged) {
                    $buttonCheck.attr('disabled', '');
                }
            }
        };
        
        /**
         * Toggle Upgrade (New Page / Upgrade of Free Page)
         */
        this.toggleUpgradeType = function()
        {
            if ($('#' + $radioNewPage.attr('id') + ':checked').val() == 'on') {
                $boxUserPage.slideUp('fast');
                useFreePage = false;
                $buttonOrder.show();
                
            } else {
                $boxUserPage.slideDown('fast');
                useFreePage = true;
                $buttonOrder.hide();
            }
        };
        
        /**
         * Check status of domain (Whois)
         */
        this.checkDomainStatus = function()
        {
            $loading.show();
            $buttonCheck.attr('disabled', 'disabled').addClass('disabled');
            
            self.hideAllMessages();
            
            // gelöt
            var scriptTag = document.createElement('script');
            scriptTag.type = 'text/javascript';
            scriptTag.src = 'http://cdn.jimdo.com/app/order/widget/checkdomain/lang/' + language + '/?domain=' + $inputDomain.val();
            $('head').append(scriptTag);
        };
        
        /**
         * Callback for domain status
         */
        this.domainStatusCallback = function(payload)
        {
            $loading.hide();
            
            // Update Domain with 'cleaned' domain
            $inputDomain.val(payload.domain);
            
            domainChanged = false;
            
            if (payload.error)
            {
                domainFree = false;
                $errorMessage.show().html(payload.error);
            }
            else {
                domainFree = payload.domainFree;
                if (domainFree) {
                    $successMessage.show().html(payload.message);
                } else {
                    $warningMessage.show().html(payload.message);
                    $boxTransfer.show();
                }
                
                if (payload.extra) {
                    $extraMessage.show().html(payload.extra);
                }
                
                if (payload.idn) {
                    $warningMessage.html(payload.idn).show();
                }
            }
           
            self.toggleOrderStatus();
        };
        
        /**
         * Check status of user domain
         */
        this.checkUserStatus = function()
        {
            var userDomain = $inputUserDomain.val();
        
            $userError.hide();
            $userLoading.show();
            
            $inputUserDomain.attr('disabled', 'disabled');
            $buttonUpgrade.attr('disabled', 'disabled');
            
            // gelöt v2
            var scriptTag = document.createElement('script');
            scriptTag.type = 'text/javascript';
            scriptTag.src = 'http://cdn.jimdo.com/app/order/widget/checkuser/lang/' + language + '/?userdomain=' + userDomain + '&package=' + package;
            $('head').append(scriptTag);
        };
        
        /**
         * Callback for user domain status
         */
        this.userStatusCallback = function(payload)
        {
            $userLoading.hide();
            
            $inputUserDomain.attr('disabled', '');
            $buttonUpgrade.attr('disabled', '');
            
            if (payload.error) {
                $userError.show().html(payload.error);
            } else {
                websiteId = payload['website_id'];
                self.generateCheckout();
            }
        };
        
        /**
         * Generate a checkout url
         */
        this.generateCheckout = function()
        {
            $boxStep1.hide();
            $boxStep2.hide();
            $boxStep3.show();
            
            // gelöt
            var scriptTag = document.createElement('script');
            scriptTag.type = 'text/javascript';
            scriptTag.src = 'http://cdn.jimdo.com/app/order/widget/checkout/lang/' + language + '/?domain=' + $inputDomain.val() + '&domainFree=' + domainFree + '&special=' + special + '&lang=' + language + '&websiteId=' + websiteId + '&package=' + package + '&tracking=' + tracking;
            
            if (subtype != null) {
                scriptTag.src = scriptTag.src + '&subtype=' + subtype;
            }
            
            $('head').append(scriptTag);
        };
        
        /**
         * Callback for checkout url generation
         */
        this.checkoutCallback = function(checkoutUrl)
        {
            top.window.location = checkoutUrl;
        };
        
        this.hideAllMessages = function()
        {
            // Hide all status messages
            $errorMessage.slideUp('fast');
            $warningMessage.slideUp('fast');
            $successMessage.slideUp('fast');
            $extraMessage.slideUp('fast');
            
            $boxTransfer.hide();
            
            $checkboxTransfer.attr('checked', '');
            acceptedTransfer = false;
        }
    };
}) (jQuery);


(function($) {

// Render Widget
var widgetCode = '\
<div id="cc-prowidget">\
    <div id="cc-prowidget-step1">\
        <div>\
            <label class="cc-prowidget-title"><strong>Scegliere il nome di dominio:</strong></label>\
        </div>\
        <div class="cc-prowidget-domaincheck">\
            <input type="text" id="cc-prowidget-input-domain" value="iltuonome.com" />\
            <button id="cc-prowidget-button-check">Verificare </button>\
        </div>\
        \
        <div id="cc-prowidget-loading" style="display:none;">\
            <img src="http://cdn.jimdo.com/s/img/cms/loading/timeline.gif" />\
        </div>\
        \
        <div id="cc-prowidget-message-error" style="display:none;"></div>\
        <div id="cc-prowidget-message-success" style="display:none;"></div>\
        <div id="cc-prowidget-message-extra" style="display:none;"></div>\
        <div id="cc-prowidget-message-warning" style="display:none;"></div>\
        <div id="cc-prowidget-box-terms">\
            <input type="checkbox" id="cc-prowidget-checkbox-terms" />\
            <label class="cc-prowidget-title-terms" for="cc-prowidget-checkbox-terms">Qui accetto <a href="http://it.jimdo.com/info/regolamento-sulla-privacy/" target="_blank">il regolamento sulla privacy</a> e le <a  href="http://it.jimdo.com/info/condizioni-generali/" target="_blank">condizioni generali di utilizzo</a></label>\
        </div>\
        <div id="cc-prowidget-box-transfer" style="display:none;">\
            <input type="checkbox" id="cc-prowidget-checkbox-transfer" />\
            <label for="cc-prowidget-checkbox-transfer">Sono proprietario del dominio e vorrei utilizzarlo per Jimdo.</label>\
        </div>\
        <div>\
            <button id="cc-prowidget-button-next" class="disabled" disabled="disabled">Avanti</button>\
        </div>\
    </div>\
    \
    <div id="cc-prowidget-step2" style="display:none;">\
        <div>\
            <label><strong>Jimdo Pro</strong> (<span id="cc-prowidget-label-domain"></span>)</label>\
        </div>\
        <div>\
            <input type="radio" name="cc-prowidget-radio-selectpage" id="cc-prowidget-radio-newpage" checked="checked" />\
            <label for="cc-prowidget-radio-newpage"><strong>Non ho ancora un sito Jimdo.</strong></label>\
        </div>\
        <div>\
            <input type="radio" name="cc-prowidget-radio-selectpage" id="cc-prowidget-radio-existingpage" />\
            <label for="cc-prowidget-radio-existingpage">Ho già un sito Jimdo che desidero attualizzare.</label>\
        </div>\
        <div id="cc-prowidget-box-userpage" style="display:none;">\
            <label>Il mio sito Jimdo:</label>\
            <input type="text" id="cc-prowidget-input-userdomain" value="ilmiosito.jimdo.com">\
            <button id="cc-prowidget-button-upgrade">Attualizza</button>\
            <div id="cc-prowidget-user-loading" style="display:none;">\
                <img src="http://cdn.jimdo.com/s/img/cms/loading/timeline.gif" />\
            </div>\
            <div id="cc-prowidget-user-error" style="display:none;"></div>\
        </div>\
        <div>\
            <button id="cc-prowidget-button-back">Indietro</button>\
            <button id="cc-prowidget-button-order">ordinare</button>\
        </div>\
    </div>\
    \
    <div id="cc-prowidget-step3" style="display:none;">\
        <img src="http://cdn.jimdo.com/s/img/cms/loading/timeline.gif" />\
    </div>\
    \
</div>\
';

$('#wt-directorder').replaceWith(widgetCode);

})(jQuery);


// Init Widget
jQuery(document).ready(function() {
    prowidget = new cc_ProWidget();
    prowidget.init();
});

//</script>