﻿String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

var stage = 0;
var lock = false;

$(document).ready(function () {
    $("#subemail").click(subclear);
    $("#subemail").keydown(subkey);

    $("#dlg_msgbox").dialog({
        bgiframe: true, autoOpen: false, height: 120, width: 400,
        modal: true, resizable: false, closeOnEscape: false, draggable: false,
        buttons: { "Close": function () { $("#dlg_msgbox").dialog("close"); } }
    });

    $("#dlg_tellafriend").dialog({
        bgiframe: true, autoOpen: false, height: 250, width: 400,
        modal: true, resizable: false, closeOnEscape: false, draggable: false,
        buttons: { "Cancel": function () { $("#dlg_tellafriend").dialog("close"); },
            "Send": function () { doTellAFriend($('#dlg_tellafriend_emails').val(), $('#dlg_tellafriend_message').val()); }
        }
    });

    $("#dlg_signup").dialog({
        bgiframe: true, autoOpen: false, height: 120, width: 400,
        modal: true, resizable: false, closeOnEscape: false, draggable: false,
        buttons: { "Cancel": function () { $("#dlg_signup").dialog("close"); },
            "Sign-Up": function () { doSignUp($('#dlg_signup_email').val()); }
        }
    });

    

    $('#dlg_msgbox').css('visibility', 'visible');
    $('#dlg_tellafriend').css('visibility', 'visible');
    $('#dlg_signup').css('visibility', 'visible');

    $(".be-button").hover(
	function () {
	    $(this).addClass("ui-state-hover");
	},
	function () {
	    $(this).removeClass("ui-state-hover");
	}
)


});

$(function () {
    $('.rollover').hover(function () {
        var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hover'));
        $(this).attr('hover', currentImg);
    }, function () {
        var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hover'));
        $(this).attr('hover', currentImg);
    });
});

function preanimate() {
    if (stage == 0) {
        $('#loader').text("5");
        setTimeout(preanimate, 1000);
    }
    if (stage == 1) {
        $('#loader').text("4");
        setTimeout(preanimate, 1000);
    }
    if (stage == 2) {
        $('#loader').text("3");
        //setTimeout(preanimate, 1000);
        animate();
    }
    if (stage == 3) {
        $('#loader').text("2");
        //setTimeout(preanimate, 1000);
        animate();
    }
    stage++;
}

function animate() {
    $('#tagline').animate({ opacity: '0' }, 5000);
    $('#img_1').animate({ left: '30px' }, 5000);
    $('#img_2').animate({ opacity: '0', left: '210px' }, 5000);
    setTimeout(blanimate, 3000);
}

function setLayout() {
    $('#img_1').css('visibility', 'visible');
    $('#img_2').css('visibility', 'visible');
    $('#img_text').css('visibility', 'visible');
    $('#tagline').css('visibility', 'visible');
    $('#tagline').animate({ opacity: '0' }, 0);
    $('#img_1').animate({ left: '30px' }, 0);
    $('#img_2').animate({ opacity: '0', left: '210px' }, 0);
    $('#blurb').css({ visibility: 'visible' });
    $('#blurb').css({ opacity: 0 }).stop().animate({ opacity: '0.8' }, 0);
}

function lockIsOff() {
    return !lock;
}

function lockOn() {
    lock = true;
}

function lockOff() {
    lock = false;
}

function blanimate(am, sm) {
    if (lockIsOff()) {
        lockOn();
        $('#blurb').css({ visibility: 'visible' });
        $('#blurb').css({ opacity: 0 }).stop().animate({ opacity: '0.8' }, 2000);
        if (am) {
            setTimeout(hideAuthMsg, 2000);
            $('#authmsg').animate({ opacity: '0' }, 2000);
        }
        if (sm) {
            hideSample();
        }
        setTimeout(lockOff, 2000);
    }
}

function authmsg() {
    if (lockIsOff()) {
        lockOn();
    $('#blurb').animate({ opacity: '0' }, 2000);
    setTimeout(hideBlurb, 2000);
    $('#sample').animate({ opacity: '0' }, 2000);
    hideSample();
    $('#authmsg').css({ visibility: 'visible' });
    $('#authmsg').css({ opacity: 0 }).stop().animate({ opacity: '0.8' }, 2000);
    setTimeout(lockOff, 2000);
}
}

function hideBlurb() {
    $('#blurb').css({ visibility: 'hidden' });
}

function hideSample() {
    $('#sample').css({ visibility: 'hidden' });
}

function hideAuthMsg() {
    $('#authmsg').css({ visibility: 'hidden' });
}

function readsample() {
    if (lockIsOff()) {
        lockOn();
    $('#authmsg').animate({ opacity: '0' }, 2000);
    $('#blurb').css({ visibility: 'hidden' });
    $('#sample').css({ visibility: 'visible' });
    $('#sample').height(500);
    $('#sample').css({ opacity: 0 }).stop().animate({ opacity: '0.8' }, 2000);
    setTimeout(lockOff, 2000);
}
}


function subkey(event) {
    if (event.keyCode == '13') {
        newsletter_signup()
        return false;
    }
    else
        subclear();
    
}

function subclear() {
    $("#subemail").removeClass("em_nf");
    $("#subemail").addClass("em_f");
}

function tell_a_friend() {
    $('#dlg_tellafriend').dialog('open');
    return true;
}

function newsletter_signup() {

    var email = new String($('#subemail').val());

    email = email.trim();

    if (email != "") {
        doSignUp(email);
    } else {
        $('#dlg_signup_email').focus();
        $('#dlg_signup').dialog('open');
        
    }

    return true;
}


function bealert(msg, title) {
    if(title != 'undefined')
        $('#dlg_msgbox').data('title.dialog', title);
    else
        $('#dlg_msgbox').data('title.dialog', 'Problem!');
    $('#mbcont').text(msg);
    $('#dlg_msgbox').dialog('open');
    return true;
}


function doSignUp(email) {

    $("#subemail").val('');
    $("#dlg_signup_email").val('');
    $("#subemail").removeClass("em_nf");
    $("#subemail").removeClass("em_f");
    $("#subemail").addClass("em_aj");

    var params = new Object();
    params['EMail'] = email;

    ajaxRequest('subscribe', params, signUpSuccess);

}

function signUpSuccess(data, textStatus, XMLHttpRequest) {
    clearProcessing();
    $("#dlg_signup").dialog("close");
    $("#subemail").removeClass("em_aj");
    $("#subemail").addClass("em_nf");
    if (data.success)
        bealert(data.message, 'Thank you');
    else
        bealert(data.message);
}

function doTellAFriend(emails, message) {

    var params = new Object();
    params['EMails'] = emails;
    params['Message'] = message;

    ajaxRequest('tellafriend', params, tellAFriendSuccess);

}

function tellAFriendSuccess(data, textStatus, XMLHttpRequest) {
    clearProcessing();
    if (data.success) {
        $("#dlg_tellafriend_emails").val('');
        $("#dlg_tellafriend_message").val('');
        $("#dlg_tellafriend").dialog("close");
        bealert(data.message, 'Thank you');
    }
    else
        bealert(data.message);
}

function closeTellAFriendBox() {
    $("#dlg_tellafriend").dialog("close");
}

function ajaxRequest(method, data, success) {

    var str = JSON.stringify(data);

    $(".ui-dialog .ui-dialog-buttonpane").each(function () {
        $(this).css('background-repeat', 'no-repeat');
        $(this).css('background-position', '10px 7px'); 
        $(this).css('background-image', 'url(/asset/image/load.gif)'); 
    }); 

    $.ajax({ url: '/' + method,
        context: document.body,
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        //processData: false,
        //data: '{}', //Use this if there are no parameters
        data: JSON.stringify(data),
        beforeSend: function (x) {
            if (x && x.overrideMimeType) {
                x.overrideMimeType("application/json;charset=UTF-8");
            }
        },
        success: success,
        error: ajaxError
    });

}

function clearProcessing() {
    $(".ui-dialog .ui-dialog-buttonpane").each(function () {
        $(this).css('background-image', 'none');
    }); 
}

function ajaxError(XMLHttpRequest, textStatus, errorThrown) {

    clearProcessing();
    
    $("#subemail").removeClass("em_aj");
    $("#subemail").addClass("em_nf");

    bealert("An unexpected server error occurred: " +
                                XMLHttpRequest.status + ' - ' + XMLHttpRequest.statusText +
                                XMLHttpRequest.responseText
                                );
}
	
