﻿/*** gcms.js starts here ***/

function $$(id) {
    if (id.substring(1, 0) != "#")
        id = "#" + id; 
        
    return $(id)[0];
}

String.prototype.endsWith = function(suffix) {
	return (this.substr(this.length - suffix.length) === suffix);
}

String.prototype.startsWith = function(prefix) {
	return (this.substr(0, prefix.length) === prefix);
}

var _tmplCache = {}
this.parseTemplate = function(str, data) {
    /// <summary>
    /// Client side template parser that uses &lt;#= #&gt; and &lt;# code #&gt; expressions.
    /// and # # code blocks for template expansion.
    /// NOTE: chokes on single quotes in the document in some situations
    ///       use &amp;rsquo; for literals in text and avoid any single quote
    ///       attribute delimiters.
    /// </summary>    
    /// <param name="str" type="string">The text of the template to expand</param>    
    /// <param name="data" type="var">
    /// Any data that is to be merged. Pass an object and
    /// that object's properties are visible as variables.
    /// </param>    
    /// <returns type="string" />  
    var err = "";
    try {
        var func = _tmplCache[str];
        if (!func) {
            var strFunc =
            "var p=[],print=function(){p.push.apply(p,arguments);};" +
                        "with(obj){p.push('" +

            str.replace(/[\r\t\n]/g, " ")
               .replace(/'(?=[^#]*#>)/g, "\t")
               .split("'").join("\\'")
               .split("\t").join("'")
               .replace(/<#=(.+?)#>/g, "',$1,'")
               .split("<#").join("');")
               .split("#>").join("p.push('")
               + "');}return p.join('');";

            //alert(strFunc);
            func = new Function("obj", strFunc);
            _tmplCache[str] = func;
        }
        return func(data);
    } catch (e) { err = e.message; }
    return "< # ERROR: " + err + " # >";
}

var GCMSHelpers = new Object();



GCMSHelpers.AlertMessage = function(message) {
    alert(message);
}

GCMSHelpers.statusMessage = function(name, text, alertOnNull) {

    var result = $('#' + name);

    if (result != null) {
        result.show();
        result.html(text);
    }
    else if (alertOnNull) {
        alert(text);
    }
}

GCMSHelpers.SetCookie = function (name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
}


GCMSHelpers.GetCookie = function (cookieName) {
    var theCookie = "" + document.cookie;
    var ind = theCookie.indexOf(cookieName);
    if (ind == -1 || cookieName == "") return "";
    var ind1 = theCookie.indexOf(';', ind);
    if (ind1 == -1) ind1 = theCookie.length;
    return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));
}






/********************* COMMENTS ************************/

var Comments = new Object();

Comments.statusMessage = function(text, alertOnNull) {
    var result = $('#comment_status');

    if (result != null) {
        result.show();
        result.html(text);
    }
    else if (alertOnNull) {
        alert(text);
    }

    if (typeof decrementComments == 'function')
        decrementComments();
}

Comments.deleteCommentWithStatus = function(url, id, tempparam) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=deleteCommentWithStatus',
        data: { commentid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            if ($('#commentsPending')) {
                $('#commentsPending').html(parseInt($('#commentsPending').html()) - 1);
            }

            var response = transport || "unknown";
            Comments.statusMessage(response, false);
        },

        error: function() {
            alert('Something went wrong...');
        }
    });
}

Comments.approve = function(url, id) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=approve',
        data: { commentid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            Comments.statusMessage(response, false);
        },

        error: function() {
            alert('Something went wrong...');
        }
    });
}

Comments.unDelete = function(url, id) {

    var dontrefresh = false;
    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            dontrefresh = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=unDelete',
        data: { commentid: id },
        success: function(transport) {
            var response = transport || "unknown";
            Comments.statusMessage(response, false);

            if (!dontrefresh)
                window.location = window.location.pathname;
        },

        error: function() {
            alert('Something went wrong...');
        }
    });
}

Comments.deleteComment = function(url, id) {
    //if(!confirm('Are you sure you want to delete this comment ' + id + '? This action can not be undone!'))
    //    return false;

    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=deleteComment',
        data: { commentid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });
        },

        error: function() {
            alert('Something went wrong...');
        }
    });
}

//Add New Comment

Comments.submitComment = function(url) {
    Comments.statusMessage('Sending... please wait', true);

    $.ajax({
        type: "POST",
        url: url + '?command=newComment',
        data: $("#comment_form").serialize(),
        success: function(transport) {
            var response = transport || "unknown";
            Comments.statusMessage(response, true);
            $('#comment').val('');
        },

        error: function() {
            Comments.statusMessage('Something went wrong. The comment was likely not saved.', true);
        }
    });
}

/********************* POSTS ************************/
var Posts = new Object();

Posts.deletePost = function(url, id) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=deletePost',
        data: { postid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            Comments.statusMessage(response, false);
        },
        error: function() {
            alert('Something went wrong...');
        }
    });
}

Posts.permanentDeletePost = function(url, id) {

    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=permanentDeletePost',
        data: { postid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            Comments.statusMessage("Post at " + response + " has been permenantly deleted!", false);
        },

        error: function() {
            alert('Something went wrong...');
        }
    });
}

Posts.unDeletePost = function(url, id) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=unDeletePost',
        data: { postid: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });
            var response = transport || "unknown";
            window.location = window.location.pathname;
        },
        error: function() {
            alert('Something went wrong...');
        }
    });
}

/**************** CONTACT ***************************/

var Contact = new Object();

Contact.submitMessage = function(url) {
    GCMSHelpers.statusMessage('contact_status', 'sending', true);

    $.ajax({
        type: "POST",
        url: url + '?command=newContactMessage',
        data: $("#contact_form").serialize(),
        success: function(transport) {
            var response = transport || "unknown";
            GCMSHelpers.statusMessage('contact_status', response, true);
            $('#message').val('');
        },
        error: function() {
            GCMSHelpers.statusMessage('contact_status', 'Something went wrong. The contact request was likely not sent.', true);
        }
    });
}

/**************** PERMISSIONS ***************************/

function togglePermissions(readbox, editbox, publishbox, command) {
    readbox = document.getElementById(readbox);
    editbox = document.getElementById(editbox);
    publishbox = document.getElementById(publishbox);
    if (command == 'read') {
        if (readbox.checked == false) {

            editbox.checked = false;
            publishbox.checked = false;
        }
    }

    if (command == 'edit') {

        if (editbox.checked == true) {
            readbox.checked = true;
        }
        else {
            publishbox.checked = false;
        }
    }

    if (command == 'publish') {
        if (publishbox.checked == true) {
            readbox.checked = true;
            editbox.checked = true;
        }
    }

    if (editbox.checked)
        readbox.checked = true;

}






/********************* ECOMMERCE ************************/

var Cart = new Object();





//Cart.AjaxAddToMiniCart('$urls.AdminAjax', $ProductVariant.ProductID,1,'basketItemsWrap');
Cart.AjaxAddToMiniCart = function (url, id, q, divToBeWorkedOn) {
/*
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }
*/
    if ($("#slidingTopContent").is(":visible")) {
        $("#notificationsLoader").html('<img src="images/loader.gif">');
        
        $.ajax({
            type: "POST",
            url: url + '?command=AjaxAddToMiniCart',
            data: { productId: id, quantity: q},

            success: function (transport) {
                //$.each(itemToRemove, function() { $("#" + this).hide(); });

                var response = transport || "unknown";
                $("#" + divToBeWorkedOn).html(response);
                $("#notificationsLoader").empty();
            },
            error: function () {
                $("#" + divToBeWorkedOn).html('Something went wrong...');
                $("#notificationsLoader").empty();
            }
        });


        $("#slidingTopTrigger").fadeTo(4000, 1, function () {
            $("#slidingTopContent").slideToggle("slow", function () {
                $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
            });
        });


    } else {

        $("#slidingTopContent").slideToggle("slow", function () {

            $("#slidingTopFooterLeft").html('<img src="images/arrow-up.png" alt="Καλάθι αγορών - Απόκρυψη" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Απόκρυψηt</a>');
            $("#notificationsLoader").html('<img src="images/loader.gif">');

            $.ajax({
                type: "POST",
                url: url + '?command=AjaxAddToMiniCart',
                data: { productId: id, quantity: q },

                success: function (transport) {
                    //$.each(itemToRemove, function() { $("#" + this).hide(); });

                    var response = transport || "unknown";
                    $("#" + divToBeWorkedOn).html(response);
                    $("#notificationsLoader").empty();
                },
                error: function () {
                    $("#" + divToBeWorkedOn).html('Something went wrong...');
                    $("#notificationsLoader").empty();
                }
            });


            $("#slidingTopTrigger").fadeTo(4000, 1, function () {
                $("#slidingTopContent").slideToggle("slow", function () {
                    $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
                });
            });

        });
    }
}









//Cart.AjaxRemoveFromMiniCart('$urls.AdminAjax',shoppingCartItemId,'basketItemsWrap');
Cart.AjaxRemoveFromMiniCart = function (url, id, divToBeWorkedOn) {
/*
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }
*/
    $.ajax({
        type: "POST",
        url: url + '?command=AjaxRemoveFromMiniCart',
        data: { shoppingCartItemId: id},

        success: function (transport) {
            //$.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            $("#" + divToBeWorkedOn).html(response);
            $("#notificationsLoader").empty();

            /*
            $("#slidingTopTrigger").fadeTo(2000, 1, function () {
                $("#slidingTopContent").slideToggle("slow", function () {
                    $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
                });
            });
            */

        },
        error: function () {
            $("#" + divToBeWorkedOn).html('Something went wrong...');
            $("#notificationsLoader").empty();
        }
    });
}












//Cart.AjaxAddToCartWithSnipet('$urls.AdminAjax', $ProductVariant.ProductID,1, 'AjaxShoppingCart', 'slidingTopWrap');
Cart.AjaxAddToCartWithSnipet = function (url, id, q, scSnippet, divToBeWorkedOn) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    if ($("#slidingTopContent").is(":visible")) {
        $("#notificationsLoader").html('<img src="images/loader.gif">');
        $.ajax({
            type: "POST",
            url: url + '?command=AjaxAddToCartWithSnipet',
            data: { productId: id, quantity: q, scSnippet: scSnippet },

            success: function (transport) {
                //$.each(itemToRemove, function() { $("#" + this).hide(); });

                var response = transport || "unknown";
                $("#" + divToBeWorkedOn).html(response);
                $("#notificationsLoader").empty();	
            },
            error: function () {
                $("#" + divToBeWorkedOn).html('Something went wrong...');
                $("#notificationsLoader").empty();	
            }
        });


        $("#slidingTopTrigger").fadeTo(4000, 1, function () {
            $("#slidingTopContent").slideToggle("slow", function () {
                $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
            });
        });


    } else {

        $("#slidingTopContent").slideToggle("slow", function () {

            $("#slidingTopFooterLeft").html('<img src="images/arrow-up.png" alt="Hide Basket" /> <a href="aaa.htm" onclick="return false;" id="slidingTopTrigger">Hide Basket</a>');
            $("#notificationsLoader").html('<img src="images/loader.gif">');

            $.ajax({
                type: "POST",
                url: url + '?command=AjaxAddToCartWithSnipet',
                data: { productId: id, quantity: q, scSnippet: scSnippet },

                success: function (transport) {
                    //$.each(itemToRemove, function() { $("#" + this).hide(); });

                    var response = transport || "unknown";
                    $("#" + divToBeWorkedOn).html(response);
                    $("#notificationsLoader").empty();	
                },
                error: function () {
                    $("#" + divToBeWorkedOn).html('Something went wrong...');
                    $("#notificationsLoader").empty();	
                }
            });


            $("#slidingTopTrigger").fadeTo(4000, 1, function () {
                $("#slidingTopContent").slideToggle("slow", function () {
                    $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
                });
            });

        });
    }
}






Cart.AjaxAddToCart = function (url, id, q) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    if ($("#slidingTopContent").is(":visible")) {

        $("#notificationsLoader").html('<img src="images/loader.gif">');

        $.ajax({
            type: "POST",
            url: url + '?command=AjaxAddToCart',
            data: { productId: id, quantity: q },
            success: function (transport) {
                $.each(itemToRemove, function () { $("#" + this).hide(); });

                var response = transport || "<li style=\"display: none; \"></li>";
                //$(window.location).attr('href', response);

                if ($("#productID_" + id).length > 0) {
                    $("#productID_" + id).animate({ opacity: 0 }, 500);
                    $("#productID_" + id).before(response).remove();
                    $("#productID_" + id).animate({ opacity: 0 }, 500);
                    $("#productID_" + id).animate({ opacity: 1 }, 500);
                    $("#notificationsLoader").empty();

                } else {
                    $("#basketItemsWrap li:first").before(response);
                    $("#basketItemsWrap li:first").hide();
                    $("#basketItemsWrap li:first").show("slow");
                    $("#notificationsLoader").empty();
                }
            },
            error: function () {
                alert('Something went wrong...');
                $(window.location).attr('href', "/shoppingcart.aspx");
            }
        });

    } else {

        $("#slidingTopContent").slideToggle("slow", function () {

            $("#slidingTopFooterLeft").html('<img src="images/arrow-up.png" alt="Hide Basket" /> <a href="aaa.htm" onclick="return false;" id="slidingTopTrigger">Hide Basket</a>');
            $("#notificationsLoader").html('<img src="images/loader.gif">');

            $.ajax({
                type: "POST",
                url: url + '?command=AjaxAddToCart',
                data: { productId: id, quantity: q },
                success: function (transport) {
                    $.each(itemToRemove, function () { $("#" + this).hide(); });

                    var response = transport || "<li style=\"display: none; \"></li>";
                    //$(window.location).attr('href', response);

                    if ($("#productID_" + id).length > 0) {
                        $("#productID_" + id).animate({ opacity: 0 }, 500);
                        $("#productID_" + id).before(response).remove();
                        $("#productID_" + id).animate({ opacity: 0 }, 500);
                        $("#productID_" + id).animate({ opacity: 1 }, 500);
                        $("#notificationsLoader").empty();

                    } else {
                        $("#basketItemsWrap li:first").before(response);
                        $("#basketItemsWrap li:first").hide();
                        $("#basketItemsWrap li:first").show("slow");
                        $("#notificationsLoader").empty();
                    }
                },
                error: function () {
                    alert('Something went wrong...');
                    $(window.location).attr('href', "/shoppingcart.aspx");
                }
            });


            $("#slidingTopTrigger").fadeTo(2000, 1, function () {
                $("#slidingTopContent").slideToggle("slow", function () {
                    $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
                });
            });

        });
    }
}





//Cart.AjaxRemoveFromCart('$urls.AdminAjax',shoppingCartItemId, 'AjaxShoppingCart', 'slidingTopWrap');
Cart.AjaxRemoveFromCart = function (url, id, scSnippet, divToBeWorkedOn) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=AjaxRemoveFromCart',
        data: { shoppingCartItemId: id, scSnippet: scSnippet },

        success: function (transport) {
            //$.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            $("#" + divToBeWorkedOn).html(response);
            $("#notificationsLoader").empty();


            $("#slidingTopTrigger").fadeTo(2000, 1, function () {
                $("#slidingTopContent").slideToggle("slow", function () {
                    $("#slidingTopFooterLeft").html('<img src="images/arrow-down.png" alt="Καλάθι αγορών - Εμφάνιση" /> <a href="javascript:void(0)" onclick="return false;" id="slidingTopTrigger">Καλάθι αγορών - Εμφάνιση</a>');
                });
            });

        },
        error: function () {
            $("#" + divToBeWorkedOn).html('Something went wrong...');
            $("#notificationsLoader").empty();	
        }
    });
}



Cart.AddToCart = function (url, id, q) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=AddToCart',
        data: { productId: id, quantity: q },
        success: function (transport) {
            $.each(itemToRemove, function () { $("#" + this).hide(); });

            var response = transport || "unknown";
            $(window.location).attr('href', response);
        },
        error: function () {
            alert('Something went wrong...');
            $(window.location).attr('href', "/shoppingcart.aspx");
        }
    });
}



Cart.AddToWishlist = function(url, id, quantity) {
    var itemToRemove = new Array();

    if (arguments.length > 3) {
        for (var i = 3; i < arguments.length; i++) {
            itemToRemove[i - 3] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=AddToWishlist',
        data: { productId: id, quantity: quantity },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            $(window.location).attr('href', response);
        },
        error: function() {
            alert('Something went wrong...');
            $(window.location).attr('href', "/");
        }
    });
}

Cart.GetShoppingCartItemWarnings = function(url, shoppingCartItemId, quantity , removeFromCart) {
    var itemToRemove = new Array();

    if (arguments.length > 4) {
        for (var i = 4; i < arguments.length; i++) {
            itemToRemove[i - 4] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=GetShoppingCartItemWarnings',
        data: { shoppingCartItemId: shoppingCartItemId, quantity: quantity ,removeFromCart: removeFromCart },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            return response;
        },
        error: function() {
            alert('Something went wrong...');
        }
    });
}




/********************* RATING ************************/

var Rating = new Object();

Rating.GetRating = function(url, id) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=getrate',
        data: { productId: id },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            // apply star rating to element
            $("#current-rating").css({ width: "" + response + "%" });
        },
        error: function() {
            alert('Something went wrong...');
        }
    });
}

Rating.Rate = function(url, id, obj) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i -2] = arguments[i];
        }
    }
    var objStr = $(obj).text();
    
        $.ajax({
            type: "POST",
            url: url + '?command=rate',
            data: { productId: id, rating: objStr },
            cache: false,
            async: false,
            success: function(result) {
                // remove #ratelinks element to prevent another rate
                $("#ratelinks").remove();
                // get rating after click
                Rating.GetRating(url, id);
            },
            error: function(result) {
                alert("Some error occured, please try again later");
            }
        });
}







/********************* Localization ************************/

var Localization = new Object();

Localization.GetResourceString = function(url, resourceName) {
    var itemToRemove = new Array();

    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            itemToRemove[i - 2] = arguments[i];
        }
    }

    $.ajax({
        type: "POST",
        url: url + '?command=GetResourceString',
        data: { resourceName: resourceName },
        success: function(transport) {
            $.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
            return response;
        },
        error: function() {
            alert('Something went wrong...');
        }
    });
}






/********************* Localization ************************/

var Snippets = new Object();

Snippets.LoadSnippet = function (url, snippet, divToBeWorkedOn) {
    var itemToRemove = new Array();

//    if (arguments.length > 2) {
//        for (var i = 2; i < arguments.length; i++) {
//            itemToRemove[i - 2] = arguments[i];
//        }
//    }

    $.ajax({
        type: "POST",
        url: url + '?command=LoadSnippet',
        data: { snippet: snippet },
        success: function(transport) {
            //$.each(itemToRemove, function() { $("#" + this).hide(); });

            var response = transport || "unknown";
                $("#" + divToBeWorkedOn).html(response);
        },
            error: function () {
                $("#" + divToBeWorkedOn).html('Something went wrong...');
        }
    });
    }








    /********************* Account ************************/

    var Account = new Object();



    Account.Login = function (url, Username, Password,RememberMe, divToBeWorkedOn) {
        var itemToRemove = new Array();

        //    if (arguments.length > 2) {
        //        for (var i = 2; i < arguments.length; i++) {
        //            itemToRemove[i - 2] = arguments[i];
        //        }
        //    }

        $.ajax({
            type: "POST",
            url: url + '?command=Login',
            data: { Username: Username, Password: Password, RememberMe: RememberMe },
            success: function (transport) {
                //$.each(itemToRemove, function() { $("#" + this).hide(); });

                var response = transport || "unknown";
                $("#" + divToBeWorkedOn).html(response);
            },
            error: function () {
                alert('Something went wrong on logon...');
            }
        });
    }



    Account.Logout = function (url) {
        var itemToRemove = new Array();

        //    if (arguments.length > 2) {
        //        for (var i = 2; i < arguments.length; i++) {
        //            itemToRemove[i - 2] = arguments[i];
        //        }
        //    }

        $.ajax({
            type: "POST",
            url: url + '?command=Logout',
            success: function (transport) {
                //$.each(itemToRemove, function() { $("#" + this).hide(); });

                var response = transport || "unknown";
                $('head').append(response);
            },
            error: function () {
                alert('Something went wrong on logon...');
            }
        });
    }

    Account.PasswordRecovery = function (url, email, divToBeWorkedOn, divToHide) {
        var itemToRemove = new Array();

        if (arguments.length > 2) {
            for (var i = 2; i < arguments.length; i++) {
                itemToRemove[i - 2] = arguments[i];
            }
        }

        $.ajax({
            type: "POST",
            url: url + '?command=PasswordRecovery',
            data: { email: email },
            success: function (transport) {
                $.each(itemToRemove, function () { $("#" + this).hide(); });

                var response = transport || "unknown";
                $("#" + divToHide).fadeOut('slow');
                $("#" + divToBeWorkedOn).html(response);
            },
            error: function () {
                $("#" + divToBeWorkedOn).html('Something went wrong...');
            }
        });
    }









    /********************* NewsLetter ************************/

    var NewsLetter = new Object();



    NewsLetter.Subscribe = function (url, email, flag, divToBeWorkedOn) {
        var itemToRemove = new Array();

        //    if (arguments.length > 2) {
        //        for (var i = 2; i < arguments.length; i++) {
        //            itemToRemove[i - 2] = arguments[i];
        //        }
        //    }

        $.ajax({
            type: "POST",
            url: url + '?command=Subscribe',
            data: { email: email, flag: flag },
            success: function (transport) {
                //$.each(itemToRemove, function() { $("#" + this).hide(); });

                var response = transport || "unknown";
                $("#" + divToBeWorkedOn).html(response);
            },
            error: function () {
                alert('Something went wrong on logon...');
            }
        });
    }
