/*
*   Written By: Björn Olsson
*   Sublime Consulting
*/

function hideDropDownLists() {
    var elements = document.forms[0].elements;
    
    for (e = 0; e < elements.length; e++) {
        if (elements[e].type == "select-one")
            elements[e].style.display = "none";
    }
}

function showDropDownLists() {
    var elements = document.forms[0].elements;
    
    for (e = 0; e < elements.length; e++) {
        if (elements[e].type == "select-one")
            elements[e].style.display = "block";
    } 
}

function showTip() {
    if(_IE6)
        hideDropDownLists();

    new Effect.Opacity($("TipOverlay").setOpacity(0.0).show(), { duration:0.5, from:0.0, to:0.85, afterFinish: function() { //Fade background
            new Effect.Opacity($("Tip").setOpacity(0.0).show(), { duration:0.1, from:0.0, to:1.0 }); //Fade form
        }
    });
}

function hideTip() {
    new Effect.Opacity($("Tip"), { duration:0.1, from:1.0, to:0.0, afterFinish: function() { //Fade form
            $("Tip").hide(); //Hide form
            new Effect.Opacity($("TipOverlay"), { duration:0.5, from:0.85, to:0.0, afterFinish: function() { //Fade background
                    $("TipOverlay").hide(); //Hide background
                    resetForm();
                    
                    if(_IE6)
                        showDropDownLists();
                }
            });
        }
    });
}

function sendTip() {
    var senderName = encodeURIComponent($("TipName").value);
    var senderEmail = encodeURIComponent($("TipSenderEmail").value);
    var email = encodeURIComponent($("TipEmail").value);
    var message = encodeURIComponent($("TipMessage").value);
    
    var ajaxRequestUrl = "/Ajax/Tip.ashx?"
        + "n=" + senderName
        + "&se=" + senderEmail
        + "&e=" + email
        + "&m=" + message
        + "&u=" + encodeURIComponent(location.href)
        + "&l=" + _TipLanguage;
        
    showMessage(_TipSendingTip);
        
    new Ajax.Request(ajaxRequestUrl, {
        method: "get",
        requestHeaders: { Accept: "application/json" },
        onSuccess: function(transport) {
            var result = transport.responseText.evalJSON(true)[0].result;
            
            if(result == "ok")
                showMessage(_TipSent);
            else if(result == "invalidinput")
            {
                resetFormWithValues(senderName, senderEmail, email, message);
                alert(_TipInvalidInput);
            }
            else if(result == "failed")
            {
                resetFormWithValues(senderName, senderEmail, email, message);
                alert(_TipFailed);
            }
        }
    });
}

var _tipContent;

function showMessage(message) {
    if(_tipContent == undefined)
        _tipContent = $("TipContent").innerHTML;
        
    $("TipContent").update("<div class=\"form\"><div class=\"padding\"><div class=\"message\"><h3>" + message + "</h3></div></div></div>");
}

function resetFormWithValues(senderName, senderEmail, email, message)
{
    resetForm();
    
    $("TipName").value = decodeURIComponent(senderName);
    $("TipSenderEmail").value = decodeURIComponent(senderEmail);
    $("TipEmail").value = decodeURIComponent(email);
    $("TipMessage").value = decodeURIComponent(message);
}

function resetForm() {
    if(_tipContent != undefined) {
        $("TipContent").update(_tipContent);
    }
    
    $("TipName").value = _TipNameDefault;
    $("TipSenderEmail").value = _TipSenderEmailDefault;
    $("TipEmail").value = _TipEmailDefault;
    $("TipMessage").value = _TipMessageDefault;
    
    $("TipName").observe("change", function(e) { if(e.element().value.length == 0) e.element().value = _TipNameDefault; });
    $("TipSenderEmail").observe("change", function(e) { if(e.element().value.length == 0) e.element().value = _TipSenderEmailDefault; });
    $("TipEmail").observe("change", function(e) { if(e.element().value.length == 0) e.element().value = _TipEmailDefault; });
    $("TipMessage").observe("change", function(e) { if(e.element().value.length == 0) e.element().value = _TipMessageDefault; });
    
    $("TipName").observe("blur", function(e) { if(e.element().value.length == 0) e.element().value = _TipNameDefault; });
    $("TipSenderEmail").observe("blur", function(e) { if(e.element().value.length == 0) e.element().value = _TipSenderEmailDefault; });
    $("TipEmail").observe("blur", function(e) { if(e.element().value.length == 0) e.element().value = _TipEmailDefault; });
    $("TipMessage").observe("blur", function(e) { if(e.element().value.length == 0) e.element().value = _TipMessageDefault; });
    
    $("TipName", "TipSenderEmail", "TipEmail", "TipMessage").each(function(element) {
        element.observe("focus", function(e) { e.element().value = ""; });
    });
}
