﻿

function StringBuilder() {
    this.Buffer = [];
    this.Append = function(s) {
        this.Buffer.push(s);
    };
    this.ToString = function() {
        return this.Buffer.join("");
    };

};

function OpenSignUp() {
    if (!$('#RegFloat').attr('id')) {
        $(document.body).append('<div id="Dim">&nbsp;</div><div id="RegFloat"><div style="float:right;"><a href="javascript:CloseSignUp();">Close</a></div><h2>Create your account</h2><div id="RegFloatInner"></div></div>');
    }

    RegisterFormBuild("RegFloatInner");
    $('#RegFloat').center();
    $('#RegFloat').slideDown();
}
function CloseSignUp() {
    $('#RegFloat').slideUp(function() {
        $('#RegFloat').remove();
    });
    $('#Dim').remove();
}

var _ManualDomain = false;

function RegisterFormBuild(holder) {
 
    var s = new StringBuilder();
    s.Append('<form id="RegisterForm">');
    if (holder != "HomeForm") {
        s.Append('<div class="Intro">');
        s.Append('<h1><span>Try it for free</span></h1>');
        s.Append('</div>');
    }
    s.Append('<div id="RegisterError"></div>');
    s.Append('<p><label for="BusinessName">Business name:</label><input type="text" onkeyup="OnBusinessNameChange(\'' + holder + '\')" class="empty" autocomplete="off" id="BusinessName" /> *</p>');
    s.Append('<p><label for="Employees">Employees or contractors:</label><select id="Employees">'); // or Contractors
    for (var i = 1; i <= 100; i++)
        s.Append('<option value="' + i + '">' + i + ' user' + (i > 1 ? 's' : '') + '</option>');
    s.Append('</select></p>');
    s.Append('<p><label for="SubDomain">Select web address <sup><a href="javascript:ExplainWebAddres();" title="What\'s this?">(?)</a></sup>:</label><input type="text" class="empty" onkeyup="_ManualDomain=true;" autocomplete="off" id="SubDomain" />.worketc.com *</p>');

    s.Append('<p><label for="Email">Your name:</label><input type="text" id="FirstName" autocomplete="off" class="empty" /><input type="text" id="Surname" autocomplete="off" class="empty" />*</p>');
    s.Append('<p><label for="Email">E-Mail:</label><input type="text" autocomplete="off" class="empty" id="Email" /> *</p>');
    s.Append('<p><label for="Email">Phone:</label><input type="text" autocomplete="off" class="empty" id="Phone" /> *</p>');
    s.Append('<p><input type="checkbox" id="Terms" value="1" onclick="RegisterClearErrors();"/><small>I understand I can try WORKetc free for 14 days.  To continue  after 14 days, I need only provide payment details.</small></p>');
    s.Append('<p><label  style="display: inline;">Partner code:</label><input type="text" id="AffiliateCode" value="' + ($.cookie("AffilCode") ? $.cookie("AffilCode") : '') + '" onfocus="RegisterClearErrors();" /></p>');

    if (holder != "HomeForm")
        //s.Append('<p style="text-align: center; margin-bottom:10px;"><input type="button" onclick="RegisterFormSubmit()" value=" Create Account " /></p>');
        s.Append('<img style="text-align: center; margin-bottom:10px;cursor:pointer;" src="/images/bt-submit.png" onclick="RegisterFormSubmit(\'' + holder + '\')" />');
    else
        s.Append('<img style="position: absolute; margin: -35px 0 0 300px;cursor:pointer;" src="/images/bt-submit.png" onclick="RegisterFormSubmit(\'' + holder + '\')" />');
        //s.Append('<p style="position: absolute; margin: -40px 0 0 300px;"><input type="button" onclick="RegisterFormSubmit()" value=" Create Account " /></p>');
    s.Append('<p style="text-align: right;"><small>* denotes required field</small></p>');
    
    
    //if (holder!="HomeForm")
    //    s.Append('<p><em>Please note: Rapid customer support is only available on paid accounts, but we do offer a weekly webinar and forum for your questions.</em></p>');
    s.Append('</form>');
    $('#' + holder).html(s.ToString());
    SetWatermark('BusinessName', 'Your business name');
    SetWatermark('SubDomain', 'Your Domain');
    SetWatermark('FirstName', 'First Name');
    SetWatermark('Surname', 'Last Name');
    SetWatermark('Email', 'your@email.addr');
    SetWatermark('Phone', '+X (XXX) XXX XXXX');
}
function ExplainWebAddres() {
    ModalDialog('help', 'You access WORKetc through your own unique web address, for example <b>https://YourCompany.worketc.com</b>. Please enter your preferred web address here, you can enter letters or numbers only.');
}

function OnBusinessNameChange(holder) {
    //if (_ManualDomain)
    return;

    $('#' + holder + ' #SubDomain').val($('#BusinessName').val().replace(/[^\w]/g, ""));
    if ($('#' + holder + ' #SubDomain').val().length == 0)
        $('#' + holder + ' #SubDomain').addClass('empty');
    else
        $('#' + holder + ' #SubDomain').removeClass('empty');
}
function ModalDialog(id, content) {
    if ($('#' + id).attr('id')) {
        $('#' + id).remove();
    }

    $(document.body).append('<div id="' + id + '" class="Modal"><div><span style="text-align: right;display:block;margin-top:-10px;margin-bottom:5px;"><a href="javascript:ModalClose(\'' + id + '\');">close</a></span>' + content + '</div></div>');

    var win = $('#' + id);
    //$('#video-window object').html('<object class="mini-video" width="450" height="278"><param name="movie" value="http://www.youtube.com/v/' + id + '&hl=en&fs=1&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' + id + '&hl=en&fs=1&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="278"></embed></object>')
    win.center();
    win.fadeIn();
}
function ModalClose(id) {
    $('#'+id).fadeOut();
}

function GetVal(holder, name) {
    return $('#' + holder + ' #' + name).val() == $('#' + holder + ' #' + name).attr('title') ? '' : $('#' + holder + ' #' + name).val();
}

function SetWatermark(name, title) {
    $('#' + name).attr('title', title);
    $('#' + name).focus(function() { if ($(this).val() == $(this).attr('title')) { $(this).val(''); $(this).removeClass('empty'); RegisterClearErrors(); } });
    $('#' + name).blur(function() { if (!$(this).val()) { $(this).val($(this).attr('title')); $(this).addClass('empty'); } });
    if (!$('#' + name).val()) {
        $('#' + name).val($('#' + name).attr('title')); $('#' + name).addClass('empty'); 
    }
}

function RegisterSetFieldError(holder, field, html) {
    if (!$('#'+holder+ ' #' + field + '_err').attr('id'))
        $('#' + holder + ' #' + field).after('<div id="' + field + '_err" class="FieldError"><div></div></div>')
    $('#' + holder + ' #' + field + '_err').fadeIn();
    $('#' + holder + ' #' + field + '_err div').html(html);
}
function RegisterClearErrors() {
    $('.FieldError').remove();
}
function RegisterFormSubmit(holder) {
    RegisterClearErrors();

    if (!$('#' + holder + ' #Terms').attr('checked')) {
        RegisterSetFieldError(holder, 'Terms', 'You cannot sign up without agreeing to these terms.');
        return;
    }
    
    var isDevServer = window.location.hostname.indexOf('sichbo') > -1 ;
    var serviceEndpoint = '/QuickReg.aspx';
        
    /* public class CreateAccountRequest
    {
    public string AffiliateCode { get; set; }
    public string BusinessName { get; set; }
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string Surname { get; set; }
    public string SubDomain { get; set; }
    public string TopDomain { get; set; }
    public string CurrencyIso4217 { get; set; }
    public bool IsSubDomainSpecified { get; set; }
    public int Employees { get; set; }
    public string Phone { get; set; }
    public bool IsPhoneSpecified { get; set; }
    }*/
    var o = new Object();
    o.AffiliateCode = GetVal(holder, 'AffiliateCode');
    o.BusinessName = GetVal(holder, 'BusinessName');
    o.Email = GetVal(holder, 'Email');
    o.FirstName = GetVal(holder, 'FirstName');
    o.Surname = GetVal(holder, 'Surname');
    o.Employees = parseInt(GetVal(holder, 'Employees'));
    o.IsSubDomainSet = true;
    o.SubDomain = GetVal(holder, 'SubDomain');
    o.TopDomain = isDevServer ? 'dev.sichbo.ca' : 'worketc.com';
    o.CurrencyIso4217 = 'USD';
    o.IsPhoneSet = true;
    o.Phone = GetVal(holder, 'Phone');
    $('#' + holder + ' #RegisterForm p, #' + holder + ' #RegisterForm img').fadeOut();
    $('#' + holder + ' #RegisterForm').prepend('<b class="Wait">Please wait...</b>');
    
    $.post(serviceEndpoint, $.toJSON(o), function (r) {
        $('#' + holder + ' #RegisterForm .Wait').remove();
        if (r.Success) {
            $('#' + holder + ' #RegisterForm').html('<h1>Your account is ready!</h1><p>' + r.FeedbackHtml + '</p><p>If you do not receive your account e-mail in the next five minutes, <b>please check your SPAM folders</b>.</p><p>Our emails always come from support@worketc.com. Please contact us if you do not receive your account confirmation message.</p><img src="http://aaf.tradatracker.net/track/conv.gif?advertiser=96da2f590cd7246bbde0051047b0d6f7&action=FreeTrial" />');
            // $('#' + holder + ' #RegisterForm p, #' + holder + ' #RegisterForm img').fadeIn();
            if (_gat) {
                var google_conversion_id = 1059292740;
                var google_conversion_language = "en_AU";
                var google_conversion_format = "1";
                var google_conversion_color = "ffffff";
                var google_conversion_value = r.Value;
                var google_conversion_label = "R1wJCKKSThDEjI75Aw";
                $(document.body).append("<script language=\"JavaScript\" src=\"https://www.googleadservices.com/pagead/conversion.js\"></script>");

                var id = o.SubDomain + '.' + o.TopDomain;

                var pageTracker = _gat._getTracker("UA-3515827-2"); //UA-8714945-1
                pageTracker._initData();
                pageTracker._trackPageview();
                pageTracker._addTrans(
                id // Order ID
                , "WORKetc" //Affiliation
                , r.Value  // Total
                , "0" // Tax
                , "0" // Shipping
                , "" // City
                , "" // State
                , "" // Country
                );

                pageTracker._addItem(
                id // Order ID
                , o.Employees  // SKU
                , o.Employees + " employees" // Product Name
                , "Trials" // Category
                , r.Value // Price
                , "1" //Quantity
                );

                pageTracker._trackTrans();
                pageTracker._trackPageview("/SignedUp");
            }
        }
        else {
            $('#' + holder + ' #RegisterForm p, #' + holder + ' #RegisterForm img').fadeIn();
            if (r.FieldName)
                RegisterSetFieldError(holder, r.FieldName, r.FeedbackHtml);
        }

    }, 'json');
}