﻿

function _post(url, vars, done) {
    $.ajax({
        type: "POST",
        url: url,
        data: vars,
        contentType: "application/x-www-form-urlencoded",
        dataType: "xml",
        success: function(msg) {
                done(msg);
        },
        error: function(xhr, ajaxOptions, thrownError) {
            done("ERROR");
        }
    });
}
jQuery.TMPost = function(Url, Data, Done) {
    _post(Url, Data, Done);
};
jQuery.TMGetMemberByID = function(ID, done) {
    _post('admin/services/Members.asmx/getMemberByID', { id: ID}, done);
};
jQuery.TMGetMemberByEmail = function(Email, done) {
    _post('admin/services/Members.asmx/getMemberByEmail', { email: Email }, done);
};
jQuery.TMMemberUpdate = function(ID,Name, Country, Password, Subscribed, done) {
    _post('admin/services/Members.asmx/MemberUpdate', {mid:ID, mname: Name, mcountry: Country, mpassword: Password, onmaillist: Subscribed }, done);
};
jQuery.TMMemberRegister = function(Name, Country, Email, Username, Subscribed, done) {
    _post('admin/services/Members.asmx/MemberRegister', {mname:Name,mcountry:Country,memail:Email,musername:Username,onmaillist:Subscribed }, done);
};
jQuery.TMMemberLogin = function(Username, Password, done) {
    _post('admin/services/Members.asmx/MemberLogin', { u: Username, p: Password }, done);
};
jQuery.TMMemberLogout = function(done) {
    _post('admin/services/Members.asmx/MemberLogout', {}, done);
};
jQuery.TMSubscribeAgainAndSend = function(_MemberID, _Subject, _PageID, done) {
    _post('admin/services/Actions.asmx/SubscribeAgainMemberAndSendEmail', { ID: _MemberID, Page: _PageID, Subject: _Subject }, done);
};
jQuery.TMUnsubscribeAndSend = function(_MemberID,_Subject,_PageID, done) {
_post('admin/services/Actions.asmx/UnsubscribeMemberAndSendEmail', { ID: _MemberID, Page: _PageID, Subject: _Subject }, done);
};
jQuery.TMSubscribeAndSend = function(_Name,_Email,_Country,_Subject,_PageID, done) {
    _post('admin/services/Actions.asmx/SubscribeMemberAndSendEmail', {Name:_Name,Email:_Email,Country:_Country,Subject:_Subject,Page:_PageID}, done);
};
jQuery.TMEmailPage = function(To, Subject, PageID, done) {
    _post('admin/services/Actions.asmx/emailPage', { to: To, subject: Subject, page: PageID }, done);
};
jQuery.TMEmailToUs = function(From, Subject, Message, done) {
    _post('admin/services/Actions.asmx/EmailToUs', { from: From, subject: Subject, message: Message }, done);
};
jQuery.TMShowMemberForm = function(MemberID, done) {
    var html = '<fieldset id="MemberDetails" class="ui-widget-content ui-corner-all" style="padding:10px;">\
  <legend>Fill Out The Form</legend>\
  <span class="ui-state-highlight ui-corner-all ttl" style="width:150px;display:inline-block;">E-Mail</span>\
  <input type="text" class="ui-widget-content ui-corner-all iemail" style="width:200px;"/><br/>\
  <span class="ui-state-highlight ui-corner-all ttl" style="width:150px;display:inline-block;">Full Name</span>\
  <input type="text" class="ui-widget-content ui-corner-all iname" style="width:200px;"/><br/>\
  <span class="ui-state-highlight ui-corner-all ttl" style="width:150px;display:inline-block;">Country</span>\
  <input type="text" class="ui-widget-content ui-corner-all icountry" style="width:100px;"/><br/>\
  <span class="ui-state-highlight ui-corner-all ttl" maxlength="30"  style="width:150px;display:inline-block;">Username</span>\
  <input type="text" class="ui-widget-content ui-corner-all iusername" style="width:100px;"/><br/>\
  <div class="ipwd"><span class="ui-state-highlight ui-corner-all ttl" maxlength="30" style="width:150px;display:inline-block;">Password</span>\
  <input type="password" class="ui-widget-content ui-corner-all ipassword" style="width:100px;"/><br/>\
  <span class="ui-state-highlight ui-corner-all ttl" maxlength="30" style="width:150px;display:inline-block;">Retype Password</span>\
  <input type="password" class="ui-widget-content ui-corner-all ipassword2" style="width:100px;"/></div>\
  <span class="ui-state-highlight ui-corner-all ttl" style="width:150px;display:inline-block;">Receive newsletter</span>\
  <input type="checkbox" class="ui-widget-content ui-corner-all isubscribe" checked="checked"/><br/><br/>\
  <button class="iregister">Save</button>\
  <span class="info"> </span>\
  </fieldset>';
    var ttl = (MemberID == null || MemberID == '') ? 'Registration Form' : 'Edit Member Details';
    var n = (MemberID == null || MemberID == '') ? true : false;
    var dlg = $('<div>').attr({ id: 'dlgMemberForm', title: ttl }).css({ 'display': 'none' });


    $("#dialog:ui-dialog").dialog("destroy");
    //dlg.remove();
    $('#dlgMemberForm').remove();
    dlg.append(html);
    $('body').append(dlg);



    $('#MemberDetails .iregister').button().click(function() {
        var iname = $('#MemberDetails .iname').val();
        var iemail = $('#MemberDetails .iemail').val();
        var icountry = $('#MemberDetails .icountry').val();
        var iusername = $('#MemberDetails .iusername').val();
        var ipassword = $('#MemberDetails .ipassword').val();
        var ipassword2 = $('#MemberDetails .ipassword2').val();



        if (n==false && ipassword == '') {
            $('#MemberDetails .info').html('Password Missing!');
            return;
        }
        if (ipassword != ipassword2) {
            $('#MemberDetails .info').html('Password Mismatch!');
            return;
        }
        var isubscribed = $('#MemberDetails .isubscribe').attr('checked');
        if (n) {
            $.TMMemberRegister(iname, icountry, iemail, iusername, isubscribed, function(msg) {
                $('#MemberDetails .info').html($(msg).find('Message').text());
                if ($(msg).find('ID').text() == '-1')
                    done(false);
                else
                    done(true, iname);
            });
        } else {
            $.TMMemberUpdate(MemberID, iname, icountry, ipassword, isubscribed, function(msg) {
                $('#MemberDetails .info').html($(msg).find('Message').text());
                if ($(msg).find('ID').text() == '-1')
                    done(false);
                else
                    done(true, iname);
            });
        }
    });

    dlg.dialog({
        modal: true,
        width: 500
    });
    if (n) {
        $('#MemberDetails .ipwd').css('display', 'none');
        $('#MemberDetails .iemail').blur(function() {
            $.TMGetMemberByEmail($('#MemberDetails .iemail').val(), function(msg) {

                $('#MemberDetails .info').html('');
                if ($(msg).find('Name').text() != '') {
                    $('#MemberDetails .iname').val($(msg).find('Name').text());
                    $('#MemberDetails .icountry').val($(msg).find('Country').text());
                    $('#MemberDetails .iemail').val($(msg).find('Email').text());
                    $('#MemberDetails .iusername').val($(msg).find('Username').text());
                    $('#MemberDetails .ipassword').val($(msg).find('Password').text());
                    $('#MemberDetails .ipassword2').val($(msg).find('Password').text());
                }
                //if ($(msg).find('OnMailingList').text() == 'True')
                    $('#MemberDetails .isubscribe').attr('checked', 'checked');
                //else
                 //   $('#MemberDetails .isubscribe').removeAttr('checked');
                if ($('#MemberDetails .iname').val() == '')
                    $('#MemberDetails .ipwd').css('display', 'none');
            });
        });
    }
    else {
        $('#MemberDetails .ipwd').css('display', 'block');
        $('#MemberDetails .info').html('Wait...');
        $.TMGetMemberByID(MemberID, function(msg) {
            $('#MemberDetails .info').html('');
            $('#MemberDetails .iname').val($(msg).find('Name').text());
            $('#MemberDetails .icountry').val($(msg).find('Country').text());
            $('#MemberDetails .iemail').attr({ 'disabled': true, 'class': 'ui-state-highlight ui-corner-all' }).val($(msg).find('Email').text());
            $('#MemberDetails .iusername').attr({ 'disabled': true, 'class': 'ui-state-highlight ui-corner-all' }).val($(msg).find('Username').text());
            $('#MemberDetails .ipassword').val($(msg).find('Password').text());
            $('#MemberDetails .ipassword2').val($(msg).find('Password').text());
            if ($(msg).find('OnMailingList').text() == 'True')
                $('#MemberDetails .isubscribe').attr('checked', 'checked');
            else
                $('#MemberDetails .isubscribe').removeAttr('checked');
        });
    }
}
jQuery.TMShowCommentForm = function(page) {
    if ($('#commentDialog').length == 0) {
        var dlg = $('<div>').attr({ id: 'commentDialog', title: 'Write Comment' });
        var info = $('<p>').attr('class', 'validateTips').html('Fill out the form');
        dlg.append(info);
        var fld = $('<fieldset>').css({ border: 0 });
        fld.append($('<label>').attr({ 'for': 'name' }).html('Name *'));
        fld.append($('<input>').attr({ type: 'text', id: 'name', 'class': 'text ui-widget-content ui-corner-all' }));
        fld.append($('<label>').attr({ 'for': 'email' }).html('Email'));
        fld.append($('<input>').attr({ 'type': 'text', id: 'email', 'class': 'text ui-widget-content ui-corner-all' }));
        fld.append($('<label>').attr({ 'for': 'message' }).html('Message *'));
        fld.append($('<textarea>').attr({ id: 'message' }).css({ width: 420, height: 130, margin: 5 }));

        //var info = $('<span>').css({paddingLeft:10});
        var btnSave = $('<button>').html('Send').button().click(function() {
            var n = jQuery.trim($('#name').val());
            var e = jQuery.trim($('#email').val());
            var m = jQuery.trim($('#message').val());
            if (n == '') {
                info.html('Enter Name.');
                return;
            }
            if (m == '') {
                info.html('Enter Message.');
                return;
            }
            info.html('Saving comment...');
            _post('admin/services/Actions.asmx/saveComment', { name: n, email: e, comment: m, id: page }, function(msg) {
                var res = $(msg).find('string').text();
                if (res == 'ERROR')
                    info.html("Can't save comment!");
                else {
                    
                    $('#commentDialog').find('fieldset').css('display', 'none');
                    $('#commentDialog').find('button').css('display', 'none');
                    info.html(res);
                }
            });
        });
        fld.append(btnSave);
        dlg.append(fld);
        $('body').append(dlg);
    }
    $('#commentDialog').find('fieldset').css('display', 'block');
    $('#commentDialog').find('button').css('display', 'block');
    $('#commentDialog').find('input').val('');
    $('#commentDialog').find('textarea').val('');
    $('#commentDialog').find('p:first').html('Fill out the form');
    $('#commentDialog').dialog({
        width: 500,
        height: 320
    });
};

jQuery.TMInitComments = function() {
    var loc = window.location.toString();
    var tmp = loc.split('#');
    loc = tmp[0];
    var ck = $.cookie(loc);
    $('._govote').each(function() {
        var cid = $(this).attr('id').replace('_c', '');
        if (ck == null || ck == undefined || ck.indexOf('-' + cid + '-') == -1) {
            var btnp = $(this).find('._cpro');
            btnp.click(function() {
                var par = btnp.parent();
                var contra = par.find('._ccontra');
                var ip = parseInt($(this).html()) + 1;

                $(this).html(ip);
                $(this).attr('disabled', 'disabled');
                contra.attr('disabled', 'disabled');

                _post('admin/services/Actions.asmx/thumbsUp', { id: cid }, function() {
                    ck = ck + '-' + cid + '-';
                    $.cookie(loc, ck, { expires: 30 });
                });
            });

            var btnc = $(this).find('._ccontra');
            btnc.click(function() {
                var par = btnc.parent();
                var pro = par.find('._cpro');

                var ic = parseInt($(this).html()) + 1;

                $(this).html(ic);
                $(this).attr('disabled', 'disabled');
                pro.attr('disabled', 'disabled');

                _post('admin/services/Actions.asmx/thumbsDown', { id: cid }, function() {
                    ck = ck + '-' + cid + '-';
                    $.cookie(loc, ck, { expires: 30 });
                });
            });
        } else {
            $(this).find('._cpro').attr('disabled', 'disabled');
            $(this).find('._ccontra').attr('disabled', 'disabled');
        }
    });


};

jQuery.cookie = function(key, value, options) {
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', 
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }
    options = value || {};
    var result, decode = options.raw ? function(s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

