﻿//loadtime scripts
var start = new Date();
$(function() {

    $('textarea').autogrow();
    $('.alphanumericsp').alphanumeric({ allow: " " });
    $('.alphanumeric').alphanumeric(); $('.numeric').numeric();
    $('textarea.limiter').keyup(function() { limitChars('textarea.limiter', $(this).attr('MaxLength'), $(this).attr('id')); });
    $('textarea.comments').keyup(function() { limitChars('textarea.comments', 256, $(this).attr('id')); });
    $('a.userlink').click(function() { window.location = $(this).attr('href'); });

    $.prettyDate.now = function() {
        // alert($('#currenttime').val());
        return new Date($('#currenttime').val());
    }
    $(".usertime").prettyDate();
    var end = new Date();
    //alert(end - start);
});

// Trim strings
function iatrimmer(str) {
    str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}

function askdeleteconfirmation(msg) {
    return confirm(msg);
}

//Webservice Invoker
this.ServiceProxy = function(serviceUrl) {
    var _I = this;
    this.serviceUrl = serviceUrl;
    this.invoke = function(method, params, callback, error) {
        var json = JSON2.stringify(params);
        var url = _I.serviceUrl + method;
        $.ajax({
            url: url,
            data: json,
            type: "POST",
            processData: false,
            contentType: "application/json",
            dataType: "text",  // not "json" we'll parse
            success: function(res) {
                if (!callback) return;
                // Use json library so we can fix up MS AJAX dates
                var result = JSON2.parse(res);
                // Wrapped message contains top level object node
                // strip it off
                for (var property in result) {
                    //alert(result[property]);
                    callback(eval("(" + result[property] + ")"));
                    break;
                }
            },
            error: function(xhr) {
                if (!error) return;
                var res = xhr.responseText;
                alert(res);
                if (res && res.charAt(0) == '{')
                    var err = JSON2.parse(res);
                if (err)
                    error(err);
                else
                    if (xhr.status != 200)
                    error({ Message: "Http Error: " + xhr.statusText });
                else
                    error({ Message: "Unknown Error Response" });
                return;
            }
        });
    }
}
var proxy = new ServiceProxy("WLService.svc/");


function onPageError(error) {
    alert("An error occurred:\r\n\r\n" + error.Message);
}

//Not used yet
function removeElement(parentDiv, childDiv) {
    if (childDiv == parentDiv) {
        alert("The parent div cannot be removed.");
    }
    else if (document.getElementById(childDiv)) {
        var child = document.getElementById(childDiv);
        var parent = document.getElementById(parentDiv);
        parent.removeChild(child);
    }
    else {
        alert("Child div has already been removed or does not exist.");
        return false;
    }
}

function showinfo(spanname){document.getElementById(spanname).style.visibility="visible";}
function hideinfo(spanname) { document.getElementById(spanname).style.visibility = "hidden"; }


    function SubmitNewWish() {
        var usercode = $('#ctl00_CPM_userstatuscode').val();
        var userstatus = $('#ctl00_CPM_txtWishes').val();
        $('#updateholder').html("<img src='images/web/spinner.gif' /> Updating ... ");
        proxy.invoke("SubmitNewWish",
             {code: usercode, message: userstatus},
             UpdateUserStatus,
             onPageError);
     }

    function UpdateUserStatus(result) {
         if (result != "false") {
             var code = result.key;
             var uid = result.uid;
             var username = result.username;
             var picture = result.picture;
             var sid = result.newmsg;
             var newmessage = "<div id=\"@@code\"><div class=\"spicholder\"><span class=\"rimg rimgW rimg50\"><img src=\"p/ss/@@picture\" class=\"rimgI\" /><span class=\"rimgC\"><img src=\"Images/Web/rimg.png\"  alt=\"\" class=\"rimgCT\"/></span></span></div>\
		                  <div class=\"sbodyholder\"><span><b><a href=\"http://www.wishlisturs.com/@@username\">@@username</a></b> : </span>@@message\
		                  <br /><br /><span style=\"float:right;\"><a href=\"javascript:void(0);\" onclick=\"deleteWish('@@sid');\"><img src=\"Images/Web/trash.gif\" alt=\"Delete\" title=\"Delete Wish\" /></a></span>\
		                  <div class=\"cinfo\">Posted Now</div><div class=\"clear\"></div>\
		                  <input type=\"hidden\" id=\"msgcode@@sid\" value=\"@@code\" /></div></div><br /></div>";
             newmessage = newmessage.replace(/@@code/g, code);
             newmessage = newmessage.replace(/@@uid/g, uid);
             newmessage = newmessage.replace(/@@username/g, username);
             newmessage = newmessage.replace(/@@message/, $('#ctl00_CPM_txtWishes').val());
             newmessage = newmessage.replace(/@@picture/, picture);
             newmessage = newmessage.replace(/@@sid/g, sid);
             $("#newmessageholder").prepend(newmessage);
             $('#updateholder').html("");
             $('#ctl00_CPM_txtWishes').val("");
         }
         else {
             alert("Unable to update the Wishes!");
         }
     }

     function deleteWishStatus(inputname) {
         var answer = confirm("Are you sure you want to delete?");
         if (answer) {
             var usercode = $('#msgcode' + inputname).val();
             proxy.invoke("DeleteWishStatus",
             { code: usercode },
             function(result) {
                 if (!result.error)
                     $("#" + result.code).hide("slow");
                 else
                     alert(result.error);
             }, onPageError);
         }
         return false;
     }

     function deleteWishStatusReply(inputname) {
         var answer = confirm("Are you sure you want to delete?");
         if (answer) {

             proxy.invoke("DeleteWishStatusReply",
             { code: inputname }, function(result) {
                 if (!result.error)
                     $("#" + result.code).hide("slow");
                 else
                     alert(result.error);
             });
         }
         return false;
     }

    function newwish(inputname) {
        var number = inputname.replace(/btn/, "");
        var comments = $('#txtWishListReply' + number).val();
        var usercode = $('#msgcode' + number).val();
        if (usercode == 0) {
            showprettyerror("You must be a member to post a Wish!"); return;
        }
        if (iatrimmer(comments).length > 0) {
            $('#replysec' + number).hide("slow");
            alert(comments + usercode + number);
            proxy.invoke("AddWishStatusMessageReply",
                    { code: usercode, message: comments },
                      UpdateUserStatusReply,
                      onPageError);
            $('#updateholder').html("<img src='images/web/spinner.gif' /> Updating");
        }
    }

    function getOldWishes() {
        var pno = $('#ctl00_CPM_lastmsg').val();
        $('#oldstatusloader').html("<img src='images/web/spinner.gif' /> Updating ... ");
        lastminid = pno;
        $('#hiddenuserstatusgrid').load('readstatus.aspx?user=manu&maxid=' + pno, "", function(result) {
            $('#statusgridholder').append(result);
            $('#hiddenuserstatusgrid').empty();
            $('#oldstatusloader').empty();
        });
    }

    function AddWishStatusReply(inputname) {
        var number = inputname.replace(/btn/, "");
        var comments = $('#txtWishListReply' + number).val();
        var usercode = $('#msgcode' + number).val();
        alert(usercode + comments);
        if (usercode == 0) {
            showprettyerror("You must be a member to post a Reply!"); return;
        }
        if (iatrimmer(comments).length > 0) {
            $('#replysec' + number).hide("slow");
            proxy.invoke("AddWishStatusReply",
                { code: usercode, message: comments },
                  UpdateUserWishStatusReply,
                  onPageError);
            $('#updateholder').html("<img src='images/web/spinner.gif' /> Updating");
        }
    }

    function UpdateUserWishStatusReply(result) {
        if (result != "false") {
            var code = result.key;
            var uid = result.uid;
            var username = result.username;
            var picture = result.picture;
            var sid = result.newmsg;
            var newmessage = "<div id=\"@@code\"><div class=\"spicholder\"><span class=\"rimg rimgW rimg50\"><img src=\"p/ss/@@picture\" class=\"rimgI\" /><span class=\"rimgC\"><img src=\"Images/Web/rimg.png\"  alt=\"\" class=\"rimgCT\"/></span></span></div>\
		                  <div class=\"sbodyholderin\"><span><b><a href=\"http://www.wishlistrus.com/@@username\">@@username</a></b> : </span><span>@@message</span><br />\
		                  <span style=\"float:right;\"><a href=\"javascript:void(0);\" onclick=\"deleteStatusReply('@@code');\"><img src=\"Images/Web/trash.gif\" alt=\"Delete\" title=\"Delete Message\" /></a></span><div class=\"clear\"></div><div class=\"cinfo\">Posted Now</div>\
		                  </div></div></div>";
            newmessage = newmessage.replace(/@@code/g, code);
            newmessage = newmessage.replace(/@@uid/g, uid);
            newmessage = newmessage.replace(/@@username/g, username);
            newmessage = newmessage.replace(/@@message/, $('#txtWishListReply' + sid).val());
            newmessage = newmessage.replace(/@@picture/, picture);
            $("#statusreply" + sid).append(newmessage);
            $('#updateholder').html("");
            $('#txtWishListReply' + sid).val("");
            $('#replysec' + sid).show("slow");
            $('div.hiddencomment').hide();
        }
        else {
            alert("Unable to update the Status!");
        }
    }

    function updateInbox(mid, tid) {
        var answer = confirm("Are you sure you want to delete the Message?");
        if (answer) {
            PageMethods.UpdateDInbox(mid, tid);
            document.getElementById(mid).style.display = "none";
        }
        return false;
    }

