﻿//var siteURL = "/TestSite/blocajax/";
//var siteURL = "/blocajax/";
var siteURL = "/blocajax/";


//Namespace
if (typeof Bloc == "undefined") Bloc = {};
if (typeof Bloc.ObjectModel == "undefined") Bloc.ObjectModel = {};

//Registration
var registrationURL = siteURL + "Bloc.ObjectModel.Registration,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.RegistrationClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.RegistrationClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                IsEmailAvailable: function(Email, AccountIsActive, EmailisVerified, ApplicationID) { return this.invoke("IsEmailAvailable", { "Email": Email, "AccountIsActive": AccountIsActive, "EmailisVerified": EmailisVerified, "ApplicationID": ApplicationID }, this.IsEmailAvailable.getArguments().slice(4)); },
                                IsMobileAvailable: function(Mobile, AccountIsActive, MobileIsVerified, ApplicationID) { return this.invoke("IsMobileAvailable", { "Mobile": Mobile, "AccountIsActive": AccountIsActive, "MobileIsVerified": MobileIsVerified, "ApplicationID": ApplicationID }, this.IsMobileAvailable.getArguments().slice(4)); },
                                IsEmailAvailableForPre: function(Email) { return this.invoke("IsEmailAvailableForPre", { "Email": Email }, this.IsEmailAvailableForPre.getArguments().slice(1)); },
                                SaveIMData: function(UserID, Key, ClientType, Username, Password, ApplicationID, WebServer) { return this.invoke("SaveIMData", { "UserID": UserID, "Key": Key, "ClientType": ClientType, "Username": Username, "Password": Password, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.SaveIMData.getArguments().slice(7)); },
                                InviteFriendsInSearchList: function(ApplicationID, UserID, Key, Email, WebServer) { return this.invoke("InviteFriendsInSearchList", { "ApplicationID": ApplicationID, "UserID": UserID, "Key": Key, "Email": Email, "WebServer": WebServer }, this.InviteFriendsInSearchList.getArguments().slice(5)); },
                                GetContactList: function(UserID, Key, ClientType, SentMail) { return this.invoke("GetContactList", { "UserID": UserID, "Key": Key, "ClientType": ClientType, "SentMail": SentMail }, this.GetContactList.getArguments().slice(4)); },
                                GetContactListByGroupName: function(UserID, Key, ClientType, GroupName) { return this.invoke("GetContactListByGroupName", { "UserID": UserID, "Key": Key, "ClientType": ClientType, "GroupName": GroupName }, this.GetContactListByGroupName.getArguments().slice(4)); },
                                
                                url: registrationURL
                            }
              )
);

Bloc.ObjectModel.Registration = new Bloc.ObjectModel.RegistrationClass();

//Profile
var profileURL = siteURL + "Bloc.ObjectModel.Profile,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.ProfileClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.ProfileClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                ListLastVisitorsFromCache: function(Limit, UserID, LastUserIDs) { return this.invoke("ListLastVisitorsFromCache", { "Limit": Limit, "UserID": UserID, "LastUserIDs": LastUserIDs }, this.ListLastVisitorsFromCache.getArguments().slice(3)); },
                                SendMobileVerifyCode: function(UserID, Key, Mobile) { return this.invoke("SendMobileVerifyCode", { "UserID": UserID, "Key": Key, "Mobile": Mobile }, this.SendMobileVerifyCode.getArguments().slice(3)); },
                                SendMobileVerifyCodeForMobileRequest: function(ApplicationID, UserID, Key, ImageCode, CountryCode, Mobile) { return this.invoke("SendMobileVerifyCodeForMobileRequest", { "ApplicationID": ApplicationID, "UserID": UserID, "Key": Key, "ImageCode": ImageCode, "CountryCode": CountryCode, "Mobile": Mobile }, this.SendMobileVerifyCodeForMobileRequest.getArguments().slice(6)); },
                                SendMobileVerifyCodeForRussesidenRegistrate: function(ImageCode, Mobile) { return this.invoke("SendMobileVerifyCodeForRussesidenRegistrate", { "ImageCode": ImageCode, "Mobile": Mobile }, this.SendMobileVerifyCodeForRussesidenRegistrate.getArguments().slice(2)); },
                                VerifyMobileCode: function(ApplicationID, UserID, Key, MobileVerifyCode) { return this.invoke("VerifyMobileCode", { "ApplicationID": ApplicationID, "UserID": UserID, "Key": Key, "MobileVerifyCode": MobileVerifyCode }, this.VerifyMobileCode.getArguments().slice(4)); },
                                BuySuperMode: function(UserID, Key, AutoRenew) { return this.invoke("BuySuperMode", { "UserID": UserID, "Key": Key, "AutoRenew": AutoRenew }, this.BuySuperMode.getArguments().slice(3)); },
                                StopSuperMode: function(UserID, Key) { return this.invoke("StopSuperMode", { "UserID": UserID, "Key": Key }, this.StopSuperMode.getArguments().slice(2)); },
                                ListLastLoginUsers: function(ApplicationID, CountryID, Limit, Gender, HasProfileImage) { return this.invoke("ListLastLoginUsers", { "ApplicationID": ApplicationID, "CountryID": CountryID, "Limit": Limit, "Gender": Gender, "HasProfileImage": HasProfileImage }, this.ListLastLoginUsers.getArguments().slice(5)); },
                                GetRandomProfileForHeadImageFromCache: function(ApplicationID, UserID, HaveProfilePicture, Limit) { return this.invoke("GetRandomProfileForHeadImageFromCache", { "ApplicationID": ApplicationID, "UserID": UserID, "HaveProfilePicture": HaveProfilePicture, "Limit": Limit }, this.GetRandomProfileForHeadImageFromCache.getArguments().slice(4)); },
                                SaveStreetInfo: function(UserID, Key, Number, Street, City, ShowType, Lat, Lng, ApplicationID) { return this.invoke("SaveStreetInfo", { "UserID": UserID, "Key": Key, "Number": Number, "Street": Street, "City": City, "ShowType": ShowType, "Lat": Lat, "Lng": Lng, "ApplicationID": ApplicationID }, this.SaveStreetInfo.getArguments().slice(9)); },
//                                GetUsersProfileForProfileMap: function(CUserID, Key, ApplicationID, UserID, Gender, Friend, IsOnline) { return this.invoke("GetUsersProfileForProfileMap", { "CUserID": CUserID, "Key": Key, "ApplicationID": ApplicationID, "UserID": UserID, "Gender": Gender, "Friend": Friend, "IsOnline": IsOnline }, this.GetUsersProfileForProfileMap.getArguments().slice(7)); },
//                                CheckIfShowOnMap: function(UserID, ViewUserID) { return this.invoke("CheckIfShowOnMap", { "UserID": UserID, "ViewUserID": ViewUserID }, this.CheckIfShowOnMap.getArguments().slice(2)); },
//                                GetAllUsersProfileForHomeMap: function(ApplicationID) { return this.invoke("GetAllUsersProfileForHomeMap", { "ApplicationID": ApplicationID }, this.GetAllUsersProfileForHomeMap.getArguments().slice(1)); },
//                                GetAllUsersProfileForHomeMapFromCache: function(ApplicationID, LastUserID, Limit) { return this.invoke("GetAllUsersProfileForHomeMapFromCache", { "ApplicationID": ApplicationID, "LastUserID": LastUserID, "Limit": Limit }, this.GetAllUsersProfileForHomeMapFromCache.getArguments().slice(3)); },
//                                GetLoginedUsersProfileForHomeMap: function(ApplicationID) { return this.invoke("GetLoginedUsersProfileForHomeMap", { "ApplicationID": ApplicationID }, this.GetLoginedUsersProfileForHomeMap.getArguments().slice(1)); },
                                DeactivateReminder: function(UserID, Key, ReminderID) { return this.invoke("DeactivateReminder", { "UserID": UserID, "Key": Key, "ReminderID": ReminderID }, this.DeactivateReminder.getArguments().slice(3)); },
                                SelectReminder: function(UserID, Key) { return this.invoke("SelectReminder", { "UserID": UserID, "Key": Key }, this.SelectReminder.getArguments().slice(2)); },
                                ActivePublicProfile: function(ApplicationID, UserID, Key) { return this.invoke("ActivePublicProfile", { "ApplicationID": ApplicationID, "UserID": UserID, "Key": Key }, this.ActivePublicProfile.getArguments().slice(3)); },
                                ClosePublicProfile: function(ApplicationID, UserID, Key) { return this.invoke("ClosePublicProfile", { "ApplicationID": ApplicationID, "UserID": UserID, "Key": Key }, this.ClosePublicProfile.getArguments().slice(3)); },
                                ListNeighboursForHood: function(ApplicationID, Limit, StateID, CountyID, AreaID) { return this.invoke("ListNeighboursForHood", { "ApplicationID": ApplicationID, "Limit": Limit, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.ListNeighboursForHood.getArguments().slice(5)); },
                                ListNewUsersForPage: function(ApplicationID, CountryID, EntStart, Limit) { return this.invoke("ListNewUsersForPage", { "ApplicationID": ApplicationID, "CountryID": CountryID, "EntStart": EntStart, "Limit": Limit }, this.ListNewUsersForPage.getArguments().slice(4)); },
                                OpenCloseProfileBox: function(UserID, Type, Option) { return this.invoke("OpenCloseProfileBox", { "UserID": UserID, "Type": Type, "Option": Option }, this.OpenCloseProfileBox.getArguments().slice(3)); },
                                ListJobs: function(UserID, Key) { return this.invoke("ListJobs", { "UserID": UserID, "Key": Key }, this.ListJobs.getArguments().slice(2)); },
                                AddNewJob: function(UserID, Key, Employer, Position, Description, Place, IsCurrent, FromYear, FromMonth, ToYear, ToMonth) { return this.invoke("AddNewJob", { "UserID": UserID, "Key": Key, "Employer": Employer, "Position": Position, "Description": Description, "Place": Place, "IsCurrent": IsCurrent, "FromYear": FromYear, "FromMonth": FromMonth, "ToYear": ToYear, "ToMonth": ToMonth }, this.AddNewJob.getArguments().slice(11)); },
                                UpdateJob: function(UserID, Key, WorkID, Employer, Position, Description, Place, IsCurrent, FromYear, FromMonth, ToYear, ToMonth) { return this.invoke("UpdateJob", { "UserID": UserID, "Key": Key, "WorkID": WorkID, "Employer": Employer, "Position": Position, "Description": Description, "Place": Place, "IsCurrent": IsCurrent, "FromYear": FromYear, "FromMonth": FromMonth, "ToYear": ToYear, "ToMonth": ToMonth }, this.UpdateJob.getArguments().slice(11)); },
                                DeleteJob: function(UserID, Key, WorkID) { return this.invoke("DeleteJob", { "UserID": UserID, "Key": Key, "WorkID": WorkID }, this.DeleteJob.getArguments().slice(3)); },
                                ListJobsAndWork: function(UserID) { return this.invoke("ListJobsAndWork", { "UserID": UserID }, this.ListJobsAndWork.getArguments().slice(1)); },
                                ClickContest: function(UserID, Key, Type) { return this.invoke("ClickContest", { "UserID": UserID, "Key": Key, "Type": Type }, this.ClickContest.getArguments().slice(3)); },
                                PostIMEI: function(UserID, Key, IMEI) { return this.invoke("PostIMEI", { "UserID": UserID, "Key": Key, "IMEI": IMEI }, this.PostIMEI.getArguments().slice(3)); },
                                AddShout: function(UserID, Key, Shout, SiteID) { return this.invoke("AddShout", { "UserID": UserID, "Key": Key, "Shout": Shout, "SiteID": SiteID }, this.AddShout.getArguments().slice(4)); },
                                RateUser: function(UserID, Key, RateUserID, Point) { return this.invoke("RateUser", { "UserID": UserID, "Key": Key, "RateUserID": RateUserID, "Point": Point }, this.RateUser.getArguments().slice(4)); },
                                SaveUserPlace: function (UserID, Key, PlaceName, Latitude, Longitude) { return this.invoke("SaveUserPlace", { "UserID": UserID, "Key": Key, "PlaceName": PlaceName, "Latitude": Latitude, "Longitude": Longitude }, this.SaveUserPlace.getArguments().slice(5)); },
                                SendSmsForApp: function (UserID, Key, SiteID) { return this.invoke("SendSmsForApp", { "UserID": UserID, "Key": Key, "SiteID": SiteID }, this.SendSmsForApp.getArguments().slice(3)); },
                                url: profileURL
                            }
              )
);

Bloc.ObjectModel.Profile = new Bloc.ObjectModel.ProfileClass();

//Guestbook
var guestbookURL = siteURL + "Bloc.ObjectModel.Guestbook,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.GuestbookClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.GuestbookClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                DeleteGuestbookEntry: function(GuestbookID, UserID, Key) { return this.invoke("DeleteGuestbookEntry", { "GuestbookID": GuestbookID, "UserID": UserID, "Key": Key }, this.DeleteGuestbookEntry.getArguments().slice(3)); },
                                ListGuestbook: function(CUserID, Key, UserID, OrderBy, Assort, AuthorID, EntryStart, Limit, KeywordSearch) { return this.invoke("ListGuestbook", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "OrderBy": OrderBy, "Assort": Assort, "AuthorID": AuthorID, "EntryStart": EntryStart, "Limit": Limit, "KeywordSearch": KeywordSearch }, this.ListGuestbook.getArguments().slice(9)); },
                                GetCountNewGuestBookByUserID: function(UserID, Key) { return this.invoke("GetCountNewGuestBookByUserID", { "UserID": UserID, "Key": Key }, this.GetCountNewGuestBookByUserID.getArguments().slice(2)); },
                                url: guestbookURL
                            }
              )
);

Bloc.ObjectModel.Guestbook = new Bloc.ObjectModel.GuestbookClass();

//Friends
var friendsURL = siteURL + "Bloc.ObjectModel.Friends,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.FriendsClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.FriendsClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                AddFriend: function(FriendID, UserID, Description, Category, ApplicationID) { return this.invoke("AddFriend", { "FriendID": FriendID, "UserID": UserID, "Description": Description, "Category": Category, "ApplicationID": ApplicationID }, this.AddFriend.getArguments().slice(5)); },
                                UpdateDescription: function(Description, DescriptionID, UserID, ApplicationID) { return this.invoke("UpdateDescription", { "Description": Description, "DescriptionID": DescriptionID, "UserID": UserID, "ApplicationID": ApplicationID }, this.UpdateDescription.getArguments().slice(4)); },
                                DeleteFriend: function(UserID, FriendUserID) { return this.invoke("DeleteFriend", { "UserID": UserID, "FriendUserID": FriendUserID }, this.DeleteFriend.getArguments().slice(2)); },
                                UpdateCategory: function(DescriptionID, UserID, Category) { return this.invoke("UpdateCategory", { "DescriptionID": DescriptionID, "UserID": UserID, "Category": Category }, this.UpdateCategory.getArguments().slice(3)); },
                                ListFriends: function(IsOnline, HaveProfileImage, OrderBy, Assort, UserID, IsDeleted) { return this.invoke("ListFriends", { "IsOnline": IsOnline, "HaveProfileImage": HaveProfileImage, "OrderBy": OrderBy, "Assort": Assort, "UserID": UserID, "IsDeleted": IsDeleted }, this.ListFriends.getArguments().slice(6)); },
                                ListTestimonial: function(IsOnline, HaveProfileImage, OrderBy, Assort, FriendsUserID, IsDeleted) { return this.invoke("ListTestimonial", { "IsOnline": IsOnline, "HaveProfileImage": HaveProfileImage, "OrderBy": OrderBy, "Assort": Assort, "FriendsUserID": FriendsUserID, "IsDeleted": IsDeleted }, this.ListTestimonial.getArguments().slice(6)); },
//                                SearchAllFriends: function(CurrentUid, Key, UserID, UserName, Category, Tags, ShowCategory, WithPhoto, Online) { return this.invoke("SearchAllFriends", { "CurrentUid": CurrentUid, "Key": Key, "UserID": UserID, "UserName": UserName, "Category": Category, "Tags": Tags, "ShowCategory": ShowCategory, "WithPhoto": WithPhoto, "Online": Online }, this.SearchAllFriends.getArguments().slice(9)); },
//                                SearchAllFriendsFromCache: function(CurrentUserID, UserID, UserName, Category, Tags, ShowCategory, WithPhoto, Online, EntStart, PageSize) { return this.invoke("SearchAllFriendsFromCache", { "CurrentUserID": CurrentUserID, "UserID": UserID, "UserName": UserName, "Category": Category, "Tags": Tags, "ShowCategory": ShowCategory, "WithPhoto": WithPhoto, "Online": Online, "EntStart": EntStart, "PageSize": PageSize }, this.SearchAllFriendsFromCache.getArguments().slice(10)); },
//                                SearchAllFriendsWithTagsFromCache: function(CurrentUserID, UserID, UserName, Category, Tags, ShowCategory, WithPhoto, Online) { return this.invoke("SearchAllFriendsWithTagsFromCache", { "CurrentUserID": CurrentUserID, "UserID": UserID, "UserName": UserName, "Category": Category, "Tags": Tags, "ShowCategory": ShowCategory, "WithPhoto": WithPhoto, "Online": Online }, this.SearchAllFriendsWithTagsFromCache.getArguments().slice(8)); },
//                                SearchAllFriendsAbout: function(CUserID, Key, UserID, Category, WithPhoto, Online, EntryStart, Limit) { return this.invoke("SearchAllFriendsAbout", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "Category": Category, "WithPhoto": WithPhoto, "Online": Online, "EntryStart": EntryStart, "Limit": Limit }, this.SearchAllFriendsAbout.getArguments().slice(8)); },
//                                SearchAllFriendsAboutCount: function(CUserID, Key, UserID, Category, WithPhoto, Online) { return this.invoke("SearchAllFriendsAboutCount", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "Category": Category, "WithPhoto": WithPhoto, "Online": Online }, this.SearchAllFriendsAboutCount.getArguments().slice(6)); },
                               GetFriendStatus: function(UserID, Key, RelatedUserID) { return this.invoke("GetFriendStatus", { "UserID": UserID, "Key": Key, "RelatedUserID": RelatedUserID }, this.GetFriendStatus.getArguments().slice(3)); },
                                RejectFriend: function(RelatedID, UserID) { return this.invoke("RejectFriend", { "RelatedID": RelatedID, "UserID": UserID }, this.RejectFriend.getArguments().slice(2)); },
                                RejectFriendForMatchFriend: function(MatchID, UserID) { return this.invoke("RejectFriendForMatchFriend", { "MatchID": MatchID, "UserID": UserID }, this.RejectFriendForMatchFriend.getArguments().slice(2)); },
                                AddNewFriendForAjax: function(Category, ReplatedUserID, UserID, ApplicationID, WebServer) { return this.invoke("AddNewFriendForAjax", { "Category": Category, "ReplatedUserID": ReplatedUserID, "UserID": UserID, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.AddNewFriendForAjax.getArguments().slice(5)); },
                                GetCommRandomFriendsFromCache: function(UserID, VUserID) { return this.invoke("GetCommRandomFriendsFromCache", { "UserID": UserID, "VUserID": VUserID }, this.GetCommRandomFriendsFromCache.getArguments().slice(2)); },
                                SearchAllFriendsForFriendsNewFromCache: function(CurrentUserID, UserID, UserName, StateID, EntStart, PageSize) { return this.invoke("SearchAllFriendsForFriendsNewFromCache", { "CurrentUserID": CurrentUserID, "UserID": UserID, "UserName": UserName, "StateID": StateID, "EntStart": EntStart, "PageSize": PageSize }, this.SearchAllFriendsForFriendsNewFromCache.getArguments().slice(6)); },
                                GetFriendAboutByLinq: function(UserID, EntStart, Limit, SearchWord) { return this.invoke("GetFriendAboutByLinq", { "UserID": UserID, "EntStart": EntStart, "Limit": Limit, "SearchWord": SearchWord }, this.GetFriendAboutByLinq.getArguments().slice(4)); },
                                GetFriendsByLinq: function(UserID, EntStart, Limit, SearchWord, Tag) { return this.invoke("GetFriendsByLinq", { "UserID": UserID, "EntStart": EntStart, "Limit": Limit, "SearchWord": SearchWord, "Tag": Tag }, this.GetFriendsByLinq.getArguments().slice(5)); },
                                UpdatePrivateTagAndDescriptionForFriends: function(UserID, FriendUserID, PrivateTag, Description) { return this.invoke("UpdatePrivateTagAndDescriptionForFriends", { "UserID": UserID, "FriendUserID": FriendUserID, "PrivateTag": PrivateTag, "Description": Description }, this.UpdatePrivateTagAndDescriptionForFriends.getArguments().slice(4)); },
                                RequestFriendEmail: function(UserID, FriendUserID, ApplicationID) { return this.invoke("RequestFriendEmail", { "UserID": UserID, "FriendUserID": FriendUserID, "ApplicationID": ApplicationID }, this.RequestFriendEmail.getArguments().slice(3)); },
                                RequestFriendMobile: function(UserID, FriendUserID, ApplicationID) { return this.invoke("RequestFriendMobile", { "UserID": UserID, "FriendUserID": FriendUserID, "ApplicationID": ApplicationID }, this.RequestFriendMobile.getArguments().slice(3)); },
                                AcceptEmailRequest: function(UserID, FriendUserID, ApplicationID) { return this.invoke("AcceptEmailRequest", { "UserID": UserID, "FriendUserID": FriendUserID, "ApplicationID": ApplicationID }, this.AcceptEmailRequest.getArguments().slice(3)); },
                                IgoreEmailRequest: function(UserID, FriendUserID) { return this.invoke("IgoreEmailRequest", { "UserID": UserID, "FriendUserID": FriendUserID }, this.IgoreEmailRequest.getArguments().slice(2)); },
                                AcceptMobileRequest: function(UserID, FriendUserID, ApplicationID) { return this.invoke("AcceptMobileRequest", { "UserID": UserID, "FriendUserID": FriendUserID, "ApplicationID": ApplicationID }, this.AcceptMobileRequest.getArguments().slice(3)); },
                                IgoreMobileRequest: function(UserID, FriendUserID) { return this.invoke("IgoreMobileRequest", { "UserID": UserID, "FriendUserID": FriendUserID }, this.IgoreMobileRequest.getArguments().slice(2)); },
                                url: friendsURL
                            }
              )
);

Bloc.ObjectModel.Friends = new Bloc.ObjectModel.FriendsClass();

//Forum

var forumURL = siteURL + "Bloc.ObjectModel.Forum,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.ForumClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.ForumClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                ListForumThreads: function(LocationCountryID, OrderBy, Assort, EntryStart, Limit, CategoryID, Tag, LanguageID, ApplicationID) { return this.invoke("ListForumThreads", { "LocationCountryID": LocationCountryID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit, "CategoryID": CategoryID, "Tag": Tag, "LanguageID": LanguageID, "ApplicationID": ApplicationID }, this.ListForumThreads.getArguments().slice(9)); },
                                CreateForumThread: function(Title, Text, MediaContent, Tag, LanguageID, CountryID, CategoryID, UserID, ApplicationID) { return this.invoke("CreateForumThread", { "Title": Title, "Text": Text, "MediaContent": MediaContent, "Tag": Tag, "LanguageID": LanguageID, "CountryID": CountryID, "CategoryID": CategoryID, "UserID": UserID, "ApplicationID": ApplicationID }, this.CreateForumThread.getArguments().slice(9)); },
                                UpdateThreadWithNewTags: function(Tag, ThreadID, UserID) { return this.invoke("UpdateThreadWithNewTags", { "Tag": Tag, "ThreadID": ThreadID, "UserID": UserID }, this.UpdateThreadWithNewTags.getArguments().slice(3)); },
                                EditThread: function(ThreadID, Title, Text, MediaContent) { return this.invoke("EditThread", { "ThreadID": ThreadID, "Title": Title, "Text": Text, "MediaContent": MediaContent }, this.EditThread.getArguments().slice(4)); },
                                DeleteThread: function(ThreadID, UserID) { return this.invoke("DeleteThread", { "ThreadID": ThreadID, "UserID": UserID }, this.DeleteThread.getArguments().slice(2)); },
                                ListForumReplies: function(ThreadID, OrderBy, Assort, EntryStart, Limit) { return this.invoke("ListForumReplies", { "ThreadID": ThreadID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit }, this.ListForumReplies.getArguments().slice(5)); },
                                EditReply: function(ReplyID, NewText) { return this.invoke("EditReply", { "ReplyID": ReplyID, "NewText": NewText }, this.EditReply.getArguments().slice(2)); },
                                PostReply: function(ThreadID, Text, UserID, Tag, ApplicationID, WebServer) { return this.invoke("PostReply", { "ThreadID": ThreadID, "Text": Text, "UserID": UserID, "Tag": Tag, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.PostReply.getArguments().slice(6)); },
                                DeleteReply: function(ReplyID, UserID, Key) { return this.invoke("DeleteReply", { "ReplyID": ReplyID, "UserID": UserID, "Key": Key }, this.DeleteReply.getArguments().slice(3)); },
                                ListSubscription: function(UserID, OrderBy, Assort, Limit, IsSubscriptionActive) { return this.invoke("ListSubscription", { "UserID": UserID, "OrderBy": OrderBy, "Assort": Assort, "Limit": Limit, "IsSubscriptionActive": IsSubscriptionActive }, this.ListSubscription.getArguments().slice(5)); },
                                AddSubscription: function(UserID, ThreadID) { return this.invoke("AddSubscription", { "UserID": UserID, "ThreadID": ThreadID }, this.AddSubscription.getArguments().slice(2)); },
                                DeleteSubscription: function(SubScriptionID) { return this.invoke("DeleteSubscription", { "SubScriptionID": SubScriptionID }, this.DeleteSubscription.getArguments().slice(1)); },
                                ListFavoriteTags: function(UserID, OrderBy, Assort, Limit, IsActive) { return this.invoke("ListFavoriteTags", { "UserID": UserID, "OrderBy": OrderBy, "Assort": Assort, "Limit": Limit, "IsActive": IsActive }, this.ListFavoriteTags.getArguments().slice(5)); },
                                DeleteFavoriteTags: function(UserID, TagFavoriteID) { return this.invoke("DeleteFavoriteTags", { "UserID": UserID, "TagFavoriteID": TagFavoriteID }, this.DeleteFavoriteTags.getArguments().slice(2)); },
                                DeleteForumTag: function(TagID, UserID, Key) { return this.invoke("DeleteForumTag", { "TagID": TagID, "UserID": UserID, "Key": Key }, this.DeleteForumTag.getArguments().slice(3)); },
                                url: forumURL
                            }
              )
);

Bloc.ObjectModel.Forum = new Bloc.ObjectModel.ForumClass();




//Gallery
var galleryURL = siteURL + "Bloc.ObjectModel.Gallery,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.GalleryClass = function() { };

Object.extend(Bloc.ObjectModel.GalleryClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                CreateAlbum: function(UserID, Key, Name, Description, ApplicationID) { return this.invoke("CreateAlbum", { "UserID": UserID, "Key": Key, "Name": Name, "Description": Description, "ApplicationID": ApplicationID }, this.CreateAlbum.getArguments().slice(5)); },
                                EditAlbumDescription: function(AlbumID, UserID, Description) { return this.invoke("EditAlbumDescription", { "AlbumID": AlbumID, "UserID": UserID, "Description": Description }, this.EditAlbumDescription.getArguments().slice(3)); },
                                EditAlbumName: function(AlbumID, UserID, Name) { return this.invoke("EditAlbumName", { "AlbumID": AlbumID, "UserID": UserID, "Name": Name }, this.EditAlbumName.getArguments().slice(3)); },
                                DeleteAlbum: function(AlbumID, UserID, Key) { return this.invoke("DeleteAlbum", { "AlbumID": AlbumID, "UserID": UserID, "Key": Key }, this.DeleteAlbum.getArguments().slice(3)); },
                                GetAlbumByAlbumID: function(CUserID, Key, AlbumID) { return this.invoke("GetAlbumByAlbumID", { "CUserID": CUserID, "Key": Key, "AlbumID": AlbumID }, this.GetAlbumByAlbumID.getArguments().slice(3)); },
                                ListAlbum: function(UserID, OrderBy, Assort, EntryStart, Limit, KeywordSearch) { return this.invoke("ListAlbum", { "UserID": UserID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit, "KeywordSearch": KeywordSearch }, this.ListAlbum.getArguments().slice(6)); },
                                UploadImage: function(UserID, ImageFile, ApplicationID) { return this.invoke("UploadImage", { "UserID": UserID, "ImageFile": ImageFile, "ApplicationID": ApplicationID }, this.UploadImage.getArguments().slice(3)); },
                                SaveImageinfo: function(UserID, ImageID, Name, Description, AlbumID) { return this.invoke("SaveImageinfo", { "UserID": UserID, "ImageID": ImageID, "Name": Name, "Description": Description, "AlbumID": AlbumID }, this.SaveImageinfo.getArguments().slice(5)); },
                                EditImageName: function(UserID, ImageID, Name) { return this.invoke("EditImageName", { "UserID": UserID, "ImageID": ImageID, "Name": Name }, this.EditImageName.getArguments().slice(3)); },
                                EditImageDescription: function(UserID, ImageID, Description) { return this.invoke("EditImageDescription", { "UserID": UserID, "ImageID": ImageID, "Description": Description }, this.EditImageDescription.getArguments().slice(3)); },
                                EditImageAlbum: function(UserID, ImageID, AlbumID) { return this.invoke("EditImageAlbum", { "UserID": UserID, "ImageID": ImageID, "AlbumID": AlbumID }, this.EditImageAlbum.getArguments().slice(3)); },
                                InappropriateImage: function(ImageID, SentByUserID, DateSent, Inappropriate, FlagType, Description) { return this.invoke("InappropriateImage", { "ImageID": ImageID, "SentByUserID": SentByUserID, "DateSent": DateSent, "Inappropriate": Inappropriate, "FlagType": FlagType, "Description": Description }, this.InappropriateImage.getArguments().slice(6)); },
                                DeleteImage: function(UserID, Key, ImageID, fileList) { return this.invoke("DeleteImage", { "UserID": UserID, "Key": Key, "ImageID": ImageID, "fileList": fileList }, this.DeleteImage.getArguments().slice(4)); },
                                GetImageByImageID: function(ImageID) { return this.invoke("GetImageByImageID", { "ImageID": ImageID }, this.GetImageByImageID.getArguments().slice(1)); },
                                ListImage: function(CUserID, Key, UserID, AlbumID, OrderBy, Assort, EntryStart, Limit, KeywordSearch, CheckBoxs) { return this.invoke("ListImage", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "AlbumID": AlbumID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit, "KeywordSearch": KeywordSearch, "CheckBoxs": CheckBoxs }, this.ListImage.getArguments().slice(10)); },
                                ListImageCount: function(UserID, AlbumID, OrderBy, Assort, EntryStart, Limit, KeywordSearch) { return this.invoke("ListImageCount", { "UserID": UserID, "AlbumID": AlbumID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit, "KeywordSearch": KeywordSearch }, this.ListImageCount.getArguments().slice(7)); },
                                PublicTag: function(UserID, ImageID, PublicTag) { return this.invoke("PublicTag", { "UserID": UserID, "ImageID": ImageID, "PublicTag": PublicTag }, this.PublicTag.getArguments().slice(3)); },
                                EditTag: function(TagID, TagDescription, X1, Y1, X2, Y2, UserID) { return this.invoke("EditTag", { "TagID": TagID, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "UserID": UserID }, this.EditTag.getArguments().slice(7)); },
                                SaveTag: function(ImageID, Tag, CreatedByUserID, Key, TagDescription, X1, Y1, X2, Y2, ApplicationID) { return this.invoke("SaveTag", { "ImageID": ImageID, "Tag": Tag, "CreatedByUserID": CreatedByUserID, "Key": Key, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "ApplicationID": ApplicationID }, this.SaveTag.getArguments().slice(10)); },
                                DeleteTag: function(UserID, Key, ImageID, TagID) { return this.invoke("DeleteTag", { "UserID": UserID, "Key": Key, "ImageID": ImageID, "TagID": TagID }, this.DeleteTag.getArguments().slice(4)); },
                                EditGeoTag: function(TagID, TagDescription, X1, Y1, X2, Y2, UserID, LocationID, PostalCode) { return this.invoke("EditGeoTag", { "TagID": TagID, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "UserID": UserID, "LocationID": LocationID, "PostalCode": PostalCode }, this.EditGeoTag.getArguments().slice(9)); },
                                SaveGeoTag: function(ImageID, Tag, CreatedByUserID, Key, TagDescription, X1, Y1, X2, Y2, LocationID, PostalCode, ApplicationID) { return this.invoke("SaveGeoTag", { "ImageID": ImageID, "Tag": Tag, "CreatedByUserID": CreatedByUserID, "Key": Key, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "LocationID": LocationID, "PostalCode": PostalCode, "ApplicationID": ApplicationID }, this.SaveGeoTag.getArguments().slice(12)); },
                                DeleteGeoTag: function(UserID, Key, ImageID, TagID) { return this.invoke("DeleteGeoTag", { "UserID": UserID, "Key": Key, "ImageID": ImageID, "TagID": TagID }, this.DeleteGeoTag.getArguments().slice(4)); },
                                EditNickTag: function(TagID, TagDescription, X1, Y1, X2, Y2, UserID, Key, NickTag, NickUserID) { return this.invoke("EditNickTag", { "TagID": TagID, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "UserID": UserID, "Key": Key, "NickTag": NickTag, "NickUserID": NickUserID }, this.EditNickTag.getArguments().slice(10)); },
                                SaveNickTag: function(ImageID, Tag, CreatedByUserID, Key, TagDescription, X1, Y1, X2, Y2, NickUserID, ApplicationID, WebServer) { return this.invoke("SaveNickTag", { "ImageID": ImageID, "Tag": Tag, "CreatedByUserID": CreatedByUserID, "Key": Key, "TagDescription": TagDescription, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2, "NickUserID": NickUserID, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.SaveNickTag.getArguments().slice(12)); },
                                DeleteNickTag: function(UserID, Key, ImageID, TagID) { return this.invoke("DeleteNickTag", { "UserID": UserID, "Key": Key, "ImageID": ImageID, "TagID": TagID }, this.DeleteNickTag.getArguments().slice(4)); },
                                CreateComment: function(ImageID, CreatedByUserID, SentToUserID, Comment, ApplicationID, WebServer) { return this.invoke("CreateComment", { "ImageID": ImageID, "CreatedByUserID": CreatedByUserID, "SentToUserID": SentToUserID, "Comment": Comment, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.CreateComment.getArguments().slice(6)); },
                                DeleteComment: function(CommentID, SentToUserID, Key) { return this.invoke("DeleteComment", { "CommentID": CommentID, "SentToUserID": SentToUserID, "Key": Key }, this.DeleteComment.getArguments().slice(3)); },
                                ListImagesByTags: function(Tag, ApplicationID) { return this.invoke("ListImagesByTags", { "Tag": Tag, "ApplicationID": ApplicationID }, this.ListImagesByTags.getArguments().slice(2)); },
                                GetCountImagesAndTagsForAllPhotos: function(CUserID, Key, UserID, CheckBoxs, Tags, ApplicationID) { return this.invoke("GetCountImagesAndTagsForAllPhotos", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "CheckBoxs": CheckBoxs, "Tags": Tags, "ApplicationID": ApplicationID }, this.GetCountImagesAndTagsForAllPhotos.getArguments().slice(6)); },
//                                ListImageForAllPhotos: function(CUserID, Key, UserID, CheckBoxs, Tags, OrderBy, Assort, EntryStart, Limit, ApplicationID) { return this.invoke("ListImageForAllPhotos", { "CUserID": CUserID, "Key": Key, "UserID": UserID, "CheckBoxs": CheckBoxs, "Tags": Tags, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit, "ApplicationID": ApplicationID }, this.ListImageForAllPhotos.getArguments().slice(10)); },
//                                ListLastImageByApplicationID: function(ApplicationID, EntryStart, Limit) { return this.invoke("ListLastImageByApplicationID", { "ApplicationID": ApplicationID, "EntryStart": EntryStart, "Limit": Limit }, this.ListLastImageByApplicationID.getArguments().slice(3)); },
//                                ListLastTagedImageByApplicationID: function(ApplicationID, EntryStart, Limit) { return this.invoke("ListLastTagedImageByApplicationID", { "ApplicationID": ApplicationID, "EntryStart": EntryStart, "Limit": Limit }, this.ListLastTagedImageByApplicationID.getArguments().slice(3)); },
                                GetLastImageInProfileFromCache: function(UserID) { return this.invoke("GetLastImageInProfileFromCache", { "UserID": UserID }, this.GetLastImageInProfileFromCache.getArguments().slice(1)); },
                                url: galleryURL
                            }
              )
);

Bloc.ObjectModel.Gallery = new Bloc.ObjectModel.GalleryClass();

//Groups

var groupsURL = siteURL + "Bloc.ObjectModel.Groups,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.GroupsClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.GroupsClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                CreateGroup: function(GroupName, GroupAbout, Homepage, Location, HaveGuestbook, GalleryForEverybody, PublicGroup, UserID, ErrorMessage, ApplicationID) { return this.invoke("CreateGroup", { "GroupName": GroupName, "GroupAbout": GroupAbout, "Homepage": Homepage, "Location": Location, "HaveGuestbook": HaveGuestbook, "GalleryForEverybody": GalleryForEverybody, "PublicGroup": PublicGroup, "UserID": UserID, "ErrorMessage": ErrorMessage, "ApplicationID": ApplicationID }, this.CreateGroup.getArguments().slice(10)); },
                                DeleteGroup: function(GroupID, UserID,Key) { return this.invoke("DeleteGroup", { "GroupID": GroupID, "UserID": UserID,"Key":Key }, this.DeleteGroup.getArguments().slice(3)); },
                                PostGroupGustbookEntry: function(GroupID, UserID, GuestbookEntry) { return this.invoke("PostGroupGustbookEntry", { "GroupID": GroupID, "UserID": UserID, "GuestbookEntry": GuestbookEntry }, this.PostGroupGustbookEntry.getArguments().slice(3)); },
                                DeleteGroupGustbookEntry: function(GroupID, UserID, EntryID) { return this.invoke("DeleteGroupGustbookEntry", { "GroupID": GroupID, "UserID": UserID, "EntryID": EntryID }, this.DeleteGroupGustbookEntry.getArguments().slice(3)); },
                                AddGroupFriend: function(GroupID, UserID, GroupFriendID) { return this.invoke("AddGroupFriend", { "GroupID": GroupID, "UserID": UserID, "GroupFriendID": GroupFriendID }, this.AddGroupFriend.getArguments().slice(3)); },
                                DeleteGroupFriend: function(GroupID, UserID, GroupFriendID) { return this.invoke("DeleteGroupFriend", { "GroupID": GroupID, "UserID": UserID, "GroupFriendID": GroupFriendID }, this.DeleteGroupFriend.getArguments().slice(3)); },
                                AddGroupMember: function(GroupID, UserID, OptUserID) { return this.invoke("AddGroupMember", { "GroupID": GroupID, "UserID": UserID, "OptUserID": OptUserID }, this.AddGroupMember.getArguments().slice(3)); },
                                ApproveGroupMember: function(GroupID, UserID, OptUserID) { return this.invoke("ApproveGroupMember", { "GroupID": GroupID, "UserID": UserID, "OptUserID": OptUserID }, this.ApproveGroupMember.getArguments().slice(3)); },
                                DeleteGroupMember: function(GroupID, UserID, OptUserID) { return this.invoke("DeleteGroupMember", { "GroupID": GroupID, "UserID": UserID, "OptUserID": OptUserID }, this.DeleteGroupMember.getArguments().slice(3)); },
                                GetGroupProfile: function(GroupID) { return this.invoke("GetGroupProfile", { "GroupID": GroupID }, this.GetGroupProfile.getArguments().slice(1)); },
                                GetGroupLastLoggedIn: function(GroupID, Assort, Limit) { return this.invoke("GetGroupLastLoggedIn", { "GroupID": GroupID, "Assort": Assort, "Limit": Limit }, this.GetGroupLastLoggedIn.getArguments().slice(3)); },
                                ListGroupActivity: function(GroupID, Assort, Limit) { return this.invoke("ListGroupActivity", { "GroupID": GroupID, "Assort": Assort, "Limit": Limit }, this.ListGroupActivity.getArguments().slice(3)); },
                                ListGroupGustbookEntry: function(GroupID, Assort, Limit) { return this.invoke("ListGroupGustbookEntry", { "GroupID": GroupID, "Assort": Assort, "Limit": Limit }, this.ListGroupGustbookEntry.getArguments().slice(3)); },
                                GetGroupSubCategoryByCategoryID: function(CategoryID) { return this.invoke("GetGroupSubCategoryByCategoryID", { "CategoryID": CategoryID }, this.GetGroupSubCategoryByCategoryID.getArguments().slice(1)); },
                                InviteFriendViaEmail: function(ApplicationID, GroupID, Emails) { return this.invoke("InviteFriendViaEmail", { "ApplicationID": ApplicationID, "GroupID": GroupID, "Emails": Emails }, this.InviteFriendViaEmail.getArguments().slice(3)); },
                                ResponseGroup: function(GroupID, UserID, Key, ResponseType) { return this.invoke("ResponseGroup", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "ResponseType": ResponseType }, this.ResponseGroup.getArguments().slice(4)); },
                                GetMemberListByGroupID: function(GroupID, UserID, Key, ResponseType, Page, Size) { return this.invoke("GetMemberListByGroupID", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "ResponseType": ResponseType, "Page": Page, "Size": Size }, this.GetMemberListByGroupID.getArguments().slice(6)); },
                                RemoveGroupGuest: function(GroupID, UserID, Key, GuestID) { return this.invoke("RemoveGroupGuest", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.RemoveGroupGuest.getArguments().slice(4)); },
                                MarkGroupAdmin: function(GroupID, UserID, Key, GuestID) { return this.invoke("MarkGroupAdmin", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.MarkGroupAdmin.getArguments().slice(4)); },
                                RemoveGroupAdmin: function(GroupID, UserID, Key, GuestID) { return this.invoke("RemoveGroupAdmin", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.RemoveGroupAdmin.getArguments().slice(4)); },
                                SaveOfficerTitle: function(GroupID, UserID, Key, GuestID, OfficerTitle) { return this.invoke("SaveOfficerTitle", { "GroupID": GroupID, "UserID": UserID, "Key": Key, "GuestID": GuestID, "OfficerTitle": OfficerTitle }, this.SaveOfficerTitle.getArguments().slice(5)); },
                                DeleteGrpGuestbook: function(GroupID, GuestBookID, UserID, Key) { return this.invoke("DeleteGrpGuestbook", { "GroupID": GroupID, "GuestBookID": GuestBookID, "UserID": UserID, "Key": Key }, this.DeleteGrpGuestbook.getArguments().slice(4)); },
                                DeleteGrpReply: function(ReplyID, UserID, Key) { return this.invoke("DeleteGrpReply", { "ReplyID": ReplyID, "UserID": UserID, "Key": Key }, this.DeleteGrpReply.getArguments().slice(3)); },
                                DeleteGroupNewsTag: function(TagID, UserID, Key) { return this.invoke("DeleteGroupNewsTag", { "TagID": TagID, "UserID": UserID, "Key": Key }, this.DeleteGroupNewsTag.getArguments().slice(3)); },
                                DeleteGroupNewsSource: function(SourceID, UserID, Key) { return this.invoke("DeleteGroupNewsSource", { "SourceID": SourceID, "UserID": UserID, "Key": Key }, this.DeleteGroupNewsSource.getArguments().slice(3)); },
                                DeleteNewsComment: function(CommentID, NewsID, UserID, Key) { return this.invoke("DeleteNewsComment", { "CommentID": CommentID, "NewsID": NewsID, "UserID": UserID, "Key": Key }, this.DeleteNewsComment.getArguments().slice(4)); },
                                JoinGroup: function(GroupID, UserID, Key) { return this.invoke("JoinGroup", { "GroupID": GroupID, "UserID": UserID, "Key": Key }, this.JoinGroup.getArguments().slice(3)); },
                                LeaveGroup: function(GroupID, UserID, Key) { return this.invoke("LeaveGroup", { "GroupID": GroupID, "UserID": UserID, "Key": Key }, this.LeaveGroup.getArguments().slice(3)); },
                                GetGroups: function(ApplicationID, UserID, Type, EntStart, Limit, CountryID, StateID, CategoryID) { return this.invoke("GetGroups", { "ApplicationID": ApplicationID, "UserID": UserID, "Type": Type, "EntStart": EntStart, "Limit": Limit, "CountryID": CountryID, "StateID": StateID, "CategoryID": CategoryID }, this.GetGroups.getArguments().slice(8)); },
                                GetGroupsMemberCountForMessage: function(GroupID, UserID, FromAge, ToAge, Gender, CountryID, StateID) { return this.invoke("GetGroupsMemberCountForMessage", { "GroupID": GroupID, "UserID": UserID, "FromAge": FromAge, "ToAge": ToAge, "Gender": Gender, "CountryID": CountryID, "StateID": StateID }, this.GetGroupsMemberCountForMessage.getArguments().slice(7)); },
                                GetNewsForHood: function(Type, UserID, Limit) { return this.invoke("GetNewsForHood", { "Type": Type, "UserID": UserID, "Limit": Limit }, this.GetNewsForHood.getArguments().slice(3)); },
                                GetGroupByUserIDInProfile: function(Type, UserID, Limit) { return this.invoke("GetGroupByUserIDInProfile", { "Type": Type, "UserID": UserID, "Limit": Limit }, this.GetGroupByUserIDInProfile.getArguments().slice(3)); },
                                DeleteGroupNews: function(UserID, Key, NewsID) { return this.invoke("DeleteGroupNews", { "UserID": UserID, "Key": Key, "NewsID": NewsID }, this.DeleteGroupNews.getArguments().slice(3)); },
                                SearchGroupByGroupNameFromLINQ: function(ApplicationID, GroupName) { return this.invoke("SearchGroupByGroupNameFromLINQ", { "ApplicationID": ApplicationID, "GroupName": GroupName }, this.SearchGroupByGroupNameFromLINQ.getArguments().slice(2)); },
                                GetPagerankGroups: function(ApplicationID, GroupID, CategoryID) { return this.invoke("GetPagerankGroups", { "ApplicationID": ApplicationID, "GroupID": GroupID ,"CategoryID":CategoryID}, this.GetPagerankGroups.getArguments().slice(3)); },
                                GetMemberCountForNewsletter: function (SiteID, GroupID, Gender, FromAge, ToAge, Country, State, Type) { return this.invoke("GetMemberCountForNewsletter", { "SiteID": SiteID, "GroupID": GroupID, "Gender": Gender, "FromAge": FromAge, "ToAge": ToAge, "Country": Country, "State": State, "Type": Type }, this.GetMemberCountForNewsletter.getArguments().slice(8)); },
                                url: groupsURL
                            }
              )
);

Bloc.ObjectModel.Groups = new Bloc.ObjectModel.GroupsClass();

//
//Country
//
var countryURL = siteURL + "Bloc.ObjectModel.Country,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.CountryClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.CountryClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetAllCountiesByApplicationID: function(applicationID) { return this.invoke("GetAllCountiesByApplicationID", { "applicationID": applicationID }, this.GetAllCountiesByApplicationID.getArguments().slice(1)); },
                                url: countryURL
                            }
              )
);
Bloc.ObjectModel.Country = new Bloc.ObjectModel.CountryClass();

//
//State
//
var stateURL = siteURL + "Bloc.ObjectModel.State,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.StateClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.StateClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetStatesByCountryID: function(countryID) { return this.invoke("GetStatesByCountryID", { "countryID": countryID }, this.GetStatesByCountryID.getArguments().slice(1)); },
                                url: stateURL
                            }
              )
);
Bloc.ObjectModel.State = new Bloc.ObjectModel.StateClass();

//
//County
//
var CountyURL = siteURL + "Bloc.ObjectModel.County,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.CountyClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.CountyClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetCountiesByStateID: function(stateID) { return this.invoke("GetCountiesByStateID", { "stateID": stateID }, this.GetCountiesByStateID.getArguments().slice(1)); },
                                url: CountyURL
                            }
              )
);
Bloc.ObjectModel.County = new Bloc.ObjectModel.CountyClass();

//
//Area
//
var AreaURL = siteURL + "Bloc.ObjectModel.Area,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.AreaClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.AreaClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetAreasByCountyID: function(countyID) { return this.invoke("GetAreasByCountyID", { "countyID": countyID }, this.GetAreasByCountyID.getArguments().slice(1)); },
                                CheckAreaByPostalCode: function(CountryID, PostalCode) { return this.invoke("CheckAreaByPostalCode", { "CountryID": CountryID, "PostalCode": PostalCode }, this.CheckAreaByPostalCode.getArguments().slice(2)); },
                                GetAreasByCountryIDAndPostalCode: function(CountryID, PostalCode) { return this.invoke("GetAreasByCountryIDAndPostalCode", { "CountryID": CountryID, "PostalCode": PostalCode }, this.GetAreasByCountryIDAndPostalCode.getArguments().slice(2)); },
                                url: AreaURL
                            }
              )
);
Bloc.ObjectModel.Area = new Bloc.ObjectModel.AreaClass();

//Message
var MessageURL = siteURL + "Bloc.ObjectModel.Messages,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.MessageClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.MessageClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                CreateFolder: function(UserID, Key, Name, ApplicationID) { return this.invoke("CreateFolder", { "UserID": UserID, "Key": Key, "Name": Name, "ApplicationID": ApplicationID }, this.CreateFolder.getArguments().slice(4)); },
                                DeleteFolder: function(UserID, Key, FolderID) { return this.invoke("DeleteFolder", { "UserID": UserID, "Key": Key, "FolderID": FolderID }, this.DeleteFolder.getArguments().slice(3)); },
                                ListMessagesByMessageID: function(MessageID, Limit, UserID, Key) { return this.invoke("ListMessagesByMessageID", { "MessageID": MessageID, "Limit": Limit, "UserID": UserID, "Key": Key }, this.ListMessagesByMessageID.getArguments().slice(4)); },
                                ReplyDeleteMessage: function(UserID, Key, MessageID) { return this.invoke("ReplyDeleteMessage", { "UserID": UserID, "Key": Key, "MessageID": MessageID }, this.ReplyDeleteMessage.getArguments().slice(3)); },
                                MoveMessagesToFolder: function(UserID, Key, MessageID, FolderID) { return this.invoke("MoveMessagesToFolder", { "UserID": UserID, "Key": Key, "MessageID": MessageID, "FolderID": FolderID }, this.MoveMessagesToFolder.getArguments().slice(4)); },
                                ReportMessage: function(MessageID, UserID, Key, Report) { return this.invoke("ReportMessage", { "MessageID": MessageID, "UserID": UserID, "Key": Key, "Report": Report }, this.ReportMessage.getArguments().slice(4)); },
                                CheckAllowSendMessage: function(UserID, SendToUserID) { return this.invoke("CheckAllowSendMessage", { "UserID": UserID, "SendToUserID": SendToUserID }, this.CheckAllowSendMessage.getArguments().slice(2)); },
                                CheckVertifyCodeForSendMessage: function(ImageCode) { return this.invoke("CheckVertifyCodeForSendMessage", { "ImageCode": ImageCode }, this.CheckVertifyCodeForSendMessage.getArguments().slice(1)); },
                                url: MessageURL
                            }
              )
);
Bloc.ObjectModel.Messages = new Bloc.ObjectModel.MessageClass();

//Message
var UserObjectURL = siteURL + "Bloc.ObjectModel.UserObject,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.UserObjectClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.UserObjectClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                SearchUserList: function(UserID, Key, UserName, ApplicationID, UserIDs, AllUsers) { return this.invoke("SearchUserList", { "UserID": UserID, "Key": Key, "UserName": UserName, "ApplicationID": ApplicationID, "UserIDs": UserIDs, "AllUsers": AllUsers }, this.SearchUserList.getArguments().slice(6)); },
                                SearchAllUserList: function(UserID, Key, UserName, ApplicationID, UserIDs, AllUsers, page, size) { return this.invoke("SearchAllUserList", { "UserID": UserID, "Key": Key, "UserName": UserName, "ApplicationID": ApplicationID, "UserIDs": UserIDs, "AllUsers": AllUsers, "page": page, "size": size }, this.SearchAllUserList.getArguments().slice(8)); },
//                                AdvancedSearchUserList: function(UserID, Key, ApplicationID, UserName, Email, PhoneNo, SchoolName, IsOnline, HasProfile, Newest, Sex, FromAge, ToAge, CountryID, StateID, CountyID, AreaID, EntryStart, Limit) { return this.invoke("AdvancedSearchUserList", { "UserID": UserID, "Key": Key, "ApplicationID": ApplicationID, "UserName": UserName, "Email": Email, "PhoneNo": PhoneNo, "SchoolName": SchoolName, "IsOnline": IsOnline, "HasProfile": HasProfile, "Newest": Newest, "Sex": Sex, "FromAge": FromAge, "ToAge": ToAge, "CountryID": CountryID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID, "EntryStart": EntryStart, "Limit": Limit }, this.AdvancedSearchUserList.getArguments().slice(19)); },
//                                AdvancedSearchUserCount: function(UserID, Key, ApplicationID, UserName, Email, PhoneNo, SchoolName, IsOnline, HasProfile, Newest, Sex, FromAge, ToAge, CountryID, StateID, CountyID, AreaID) { return this.invoke("AdvancedSearchUserCount", { "UserID": UserID, "Key": Key, "ApplicationID": ApplicationID, "UserName": UserName, "Email": Email, "PhoneNo": PhoneNo, "SchoolName": SchoolName, "IsOnline": IsOnline, "HasProfile": HasProfile, "Newest": Newest, "Sex": Sex, "FromAge": FromAge, "ToAge": ToAge, "CountryID": CountryID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.AdvancedSearchUserCount.getArguments().slice(17)); },
//                                SearchUserListInHomePage: function(UserID, UserName, ApplicationID, OrderBy, Assort, EntryStart, Limit) { return this.invoke("SearchUserListInHomePage", { "UserID": UserID, "UserName": UserName, "ApplicationID": ApplicationID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit }, this.SearchUserListInHomePage.getArguments().slice(7)); },
                                GetOnlineListFromCacheForGetCustiomerList: function(UserID, ApplicationID) { return this.invoke("GetOnlineListFromCacheForGetCustiomerList", { "UserID": UserID, "ApplicationID": ApplicationID }, this.GetOnlineListFromCacheForGetCustiomerList.getArguments().slice(2)); },
                                SearchUserFromCache: function(UserID, Key, ApplicationID, IsOnline, HasProfile, Gender, FromAge, ToAge, CountryID, StateID, EntryStart, Limit) { return this.invoke("SearchUserFromCache", { "UserID": UserID, "Key": Key, "ApplicationID": ApplicationID, "IsOnline": IsOnline, "HasProfile": HasProfile, "Gender": Gender, "FromAge": FromAge, "ToAge": ToAge, "CountryID": CountryID, "StateID": StateID, "EntryStart": EntryStart, "Limit": Limit }, this.SearchUserFromCache.getArguments().slice(12)); },
                                SearchUserByUserNameFromCache: function(UserID, Key, ApplicationID, UserName, EntryStart, Limit) { return this.invoke("SearchUserByUserNameFromCache", { "UserID": UserID, "Key": Key, "ApplicationID": ApplicationID, "UserName": UserName, "EntryStart": EntryStart, "Limit": Limit }, this.SearchUserByUserNameFromCache.getArguments().slice(6)); },
                                SearchUserFromRuss: function(UserID, Key, ApplicationID, IsOnline, HasProfile, Gender, School, UserName, CountryID, StateID, EntryStart, Limit) { return this.invoke("SearchUserFromRuss", { "UserID": UserID, "Key": Key, "ApplicationID": ApplicationID, "IsOnline": IsOnline, "HasProfile": HasProfile, "Gender": Gender, "School": School, "UserName": UserName, "CountryID": CountryID, "StateID": StateID, "EntryStart": EntryStart, "Limit": Limit }, this.SearchUserFromRuss.getArguments().slice(12)); },
                                SearchMTV: function(SearchText) { return this.invoke("SearchMTV", { "SearchText": SearchText }, this.SearchMTV.getArguments().slice(1)); },
                                SendMobileApplink: function(MobileNumber, CheckCode, CountryCode,Rel) { return this.invoke("SendMobileApplink", { "MobileNumber": MobileNumber, "CheckCode": CheckCode, "CountryCode": CountryCode ,"Rel":Rel}, this.SendMobileApplink.getArguments().slice(4)); },
                                url: UserObjectURL
                            }
              )
);
Bloc.ObjectModel.UserObject = new Bloc.ObjectModel.UserObjectClass();



//Event
var EventURL = siteURL + "Bloc.ObjectModel.EventModel,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.EventClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.EventClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetEventSubCategoryByCategoryID: function(CategoryID) { return this.invoke("GetEventSubCategoryByCategoryID", { "CategoryID": CategoryID }, this.GetEventSubCategoryByCategoryID.getArguments().slice(1)); },
                                GetGuestListByEventID: function(EventID, UserID, Key, ResponseType) { return this.invoke("GetGuestListByEventID", { "EventID": EventID, "UserID": UserID, "Key": Key, "ResponseType": ResponseType }, this.GetGuestListByEventID.getArguments().slice(4)); },
                                AddGuestToEvent: function(EventID, UserID, Key, GuestID, ApplicationID, WebServer) { return this.invoke("AddGuestToEvent", { "EventID": EventID, "UserID": UserID, "Key": Key, "GuestID": GuestID, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.AddGuestToEvent.getArguments().slice(6)); },
                                RemoveGuest: function(EventID, UserID, Key, GuestID) { return this.invoke("RemoveGuest", { "EventID": EventID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.RemoveGuest.getArguments().slice(4)); },
                                MarkAdmin: function(EventID, UserID, Key, GuestID) { return this.invoke("MarkAdmin", { "EventID": EventID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.MarkAdmin.getArguments().slice(4)); },
                                RemoveAdmin: function(EventID, UserID, Key, GuestID) { return this.invoke("RemoveAdmin", { "EventID": EventID, "UserID": UserID, "Key": Key, "GuestID": GuestID }, this.RemoveAdmin.getArguments().slice(4)); },
                                DeleteEventBoard: function(BoardID, UserID, Key) { return this.invoke("DeleteEventBoard", { "BoardID": BoardID, "UserID": UserID, "Key": Key }, this.DeleteEventBoard.getArguments().slice(3)); },
                                ResponseEvent: function(EventID, UserID, Key, ResponseType) { return this.invoke("ResponseEvent", { "EventID": EventID, "UserID": UserID, "Key": Key, "ResponseType": ResponseType }, this.ResponseEvent.getArguments().slice(4)); },
                                DeleteEvent: function(EventID, UserID, Key, Reason, ApplicationID, WebServer) { return this.invoke("DeleteEvent", { "EventID": EventID, "UserID": UserID, "Key": Key, "Reason": Reason, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.DeleteEvent.getArguments().slice(6)); },
                                GetEventListByWhereInHomePage: function(SearchText, ApplicationID, OrderBy, Assort, EntryStart, Limit) { return this.invoke("GetEventListByWhereInHomePage", { "SearchText": SearchText, "ApplicationID": ApplicationID, "OrderBy": OrderBy, "Assort": Assort, "EntryStart": EntryStart, "Limit": Limit }, this.GetEventListByWhereInHomePage.getArguments().slice(6)); },
                                GetEvents: function(ApplicationID, UserID, Type, CountryID, StateID, EntStart, Limit) { return this.invoke("GetEvents", { "ApplicationID": ApplicationID, "UserID": UserID, "Type": Type, "CountryID": CountryID, "StateID": StateID, "EntStart": EntStart, "Limit": Limit }, this.GetEvents.getArguments().slice(7)); },
                                GetEventsForHood: function(ApplicationID, Limit, StateID, CountyID, AreaID) { return this.invoke("GetEventsForHood", { "ApplicationID": ApplicationID, "Limit": Limit, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.GetEventsForHood.getArguments().slice(5)); },
                                GetEventByUserIDInProfile: function(Type, UserID, Limit) { return this.invoke("GetEventByUserIDInProfile", { "Type": Type, "UserID": UserID, "Limit": Limit }, this.GetEventByUserIDInProfile.getArguments().slice(3)); },
                                SearchEventByEventNameFromLINQ: function (ApplicationID, EventName, GroupIDs) { return this.invoke("SearchEventByEventNameFromLINQ", { "ApplicationID": ApplicationID, "EventName": EventName, "GroupIDs": GroupIDs }, this.SearchEventByEventNameFromLINQ.getArguments().slice(3)); },
                                GetMemberCountForInviteMore: function (SiteID, EventID, Gender, FromAge, ToAge, Country, State) { return this.invoke("GetMemberCountForInviteMore", { "SiteID": SiteID, "EventID": EventID, "Gender": Gender, "FromAge": FromAge, "ToAge": ToAge, "Country": Country, "State": State }, this.GetMemberCountForInviteMore.getArguments().slice(7)); },
                                DeleteEventTicket: function (UserID, Key, PriceID) { return this.invoke("DeleteEventTicket", { "UserID": UserID, "Key": Key, "PriceID": PriceID }, this.DeleteEventTicket.getArguments().slice(3)); },

                                url: EventURL
                            }
              )
);
Bloc.ObjectModel.Events = new Bloc.ObjectModel.EventClass();

//activity
var ActivityURL = siteURL + "Bloc.ObjectModel.UserActivityObject,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.ActivityClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.ActivityClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
//                                GetAllActivityInProfile: function(UserID) { return this.invoke("GetAllActivityInProfile", { "UserID": UserID }, this.GetAllActivityInProfile.getArguments().slice(1)); },
//                                GetAllActivityInActivity: function(UserID, Key, ForFriend, ForClassmates, ForNear, Friend, Guestbook, School, Gallery, Blog, ProfileEdit, Forum, Event) { return this.invoke("GetAllActivityInActivity", { "UserID": UserID, "Key": Key, "ForFriend": ForFriend, "ForClassmates": ForClassmates, "ForNear": ForNear, "Friend": Friend, "Guestbook": Guestbook, "School": School, "Gallery": Gallery, "Blog": Blog, "ProfileEdit": ProfileEdit, "Forum": Forum, "Event": Event }, this.GetAllActivityInActivity.getArguments().slice(13)); },
//                                GetAllActivityInActivityFromCache: function(UserID, ForFriend, ForClassmates, ForNear, Friend, Guestbook, School, Gallery, Blog, ProfileEdit, Forum, Event) { return this.invoke("GetAllActivityInActivityFromCache", { "UserID": UserID, "ForFriend": ForFriend, "ForClassmates": ForClassmates, "ForNear": ForNear, "Friend": Friend, "Guestbook": Guestbook, "School": School, "Gallery": Gallery, "Blog": Blog, "ProfileEdit": ProfileEdit, "Forum": Forum, "Event": Event }, this.GetAllActivityInActivityFromCache.getArguments().slice(12)); },
//                                GetAllActivityForHood: function(Limit, ApplicationID, StateID, CountyID, AreaID) { return this.invoke("GetAllActivityForHood", { "Limit": Limit, "ApplicationID": ApplicationID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.GetAllActivityForHood.getArguments().slice(5)); },
                                PostActivityReply: function (UserID, Key, UniqueGuid, Reply, ApplicationID, WebServer) { return this.invoke("PostActivityReply", { "UserID": UserID, "Key": Key, "UniqueGuid": UniqueGuid, "Reply": Reply, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.PostActivityReply.getArguments().slice(6)); },
                                DeleteActivityReply: function (UserID, Key, ReplyID) { return this.invoke("DeleteActivityReply", { "UserID": UserID, "Key": Key, "ReplyID": ReplyID }, this.DeleteActivityReply.getArguments().slice(3)); },
                                DeleteActivity: function (UserID, Key, ActivityID) { return this.invoke("DeleteActivity", { "UserID": UserID, "Key": Key, "ActivityID": ActivityID }, this.DeleteActivity.getArguments().slice(3)); },
                                url: ActivityURL
                            }
              )
);
Bloc.ObjectModel.Activities = new Bloc.ObjectModel.ActivityClass();


//Bubble
var BubbleURL = siteURL + "Bloc.ObjectModel.BubblesModel,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.BubbleClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.BubbleClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                AddBubblesComment: function(UserID, Key, Messages) { return this.invoke("AddBubblesComment", { "UserID": UserID, "Key": Key, "Messages": Messages }, this.AddBubblesComment.getArguments().slice(3)); },
                                GetBubblesCommentByType: function(UserID, Type, EntStart, Limit, ApplicationID, ForMobile, SiteID,GroupID) { return this.invoke("GetBubblesCommentByType", { "UserID": UserID, "Type": Type, "EntStart": EntStart, "Limit": Limit, "ApplicationID": ApplicationID, "ForMobile": ForMobile, "SiteID": SiteID ,"GroupID":GroupID}, this.GetBubblesCommentByType.getArguments().slice(8)); },
                                AddBubbleFavorite: function(UserID, Key, BubbleID) { return this.invoke("AddBubbleFavorite", { "UserID": UserID, "Key": Key, "BubbleID": BubbleID }, this.AddBubbleFavorite.getArguments().slice(3)); },
                                DeleteBubbleFavorite: function(UserID, Key, BubbleID) { return this.invoke("DeleteBubbleFavorite", { "UserID": UserID, "Key": Key, "BubbleID": BubbleID }, this.DeleteBubbleFavorite.getArguments().slice(3)); },
                                DeleteBubble: function(UserID, Key, BubbleID) { return this.invoke("DeleteBubble", { "UserID": UserID, "Key": Key, "BubbleID": BubbleID }, this.DeleteBubble.getArguments().slice(3)); },
                                PostBubbleReply: function(UserID, Key, BubbleID, Reply, PostInGuestBook, ApplicationID, WebServer) { return this.invoke("PostBubbleReply", { "UserID": UserID, "Key": Key, "BubbleID": BubbleID, "Reply": Reply, "PostInGuestBook": PostInGuestBook, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.PostBubbleReply.getArguments().slice(7)); },
                                DeleteBubbleReply: function(UserID, Key, ReplyID) { return this.invoke("DeleteBubbleReply", { "UserID": UserID, "Key": Key, "ReplyID": ReplyID }, this.DeleteBubbleReply.getArguments().slice(3)); },
                                url: BubbleURL
                            }
              )
);
Bloc.ObjectModel.BubblesModel = new Bloc.ObjectModel.BubbleClass();

//hood
var HoodURL = siteURL + "Bloc.ObjectModel.Hood,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.HoodClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.HoodClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                OpenCloseContent: function(UserID, Type, Option) { return this.invoke("OpenCloseContent", { "UserID": UserID, "Type": Type, "Option": Option }, this.OpenCloseContent.getArguments().slice(3)); },
                                GetPollQuestion: function(UserID) { return this.invoke("GetPollQuestion", { "UserID": UserID }, this.GetPollQuestion.getArguments().slice(1)); },
                                GetStats: function(ApplicationID, StateID, CountyID, AreaID) { return this.invoke("GetStats", { "ApplicationID": ApplicationID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.GetStats.getArguments().slice(4)); },
                                AnswerPollQuestion: function(PollID, OptionID, UserID, Key) { return this.invoke("AnswerPollQuestion", { "PollID": PollID, "OptionID": OptionID, "UserID": UserID, "Key": Key }, this.AnswerPollQuestion.getArguments().slice(4)); },
                                GetUserCount: function(StateID, CountyID, AreaID) { return this.invoke("GetUserCount", { "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.GetUserCount.getArguments().slice(3)); },
                                url: HoodURL
                            }
              )
);
Bloc.ObjectModel.Hood = new Bloc.ObjectModel.HoodClass();

//photo
//hood
var PhotoURL = siteURL + "Bloc.ObjectModel.Photos,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.PhotoClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.PhotoClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                CreateNameTag: function(UserID, Key, PhotoID, OwnerID, TagUserID, TagUserName, X1, Y1, ApplicationID, WebServer) { return this.invoke("CreateNameTag", { "UserID": UserID, "Key": Key, "PhotoID": PhotoID, "OwnerID": OwnerID, "TagUserID": TagUserID, "TagUserName": TagUserName, "X1": X1, "Y1": Y1, "ApplicationID": ApplicationID, "WebServer": WebServer }, this.CreateNameTag.getArguments().slice(10)); },
                                DeleteNameTag: function(UserID, Key, TagID) { return this.invoke("DeleteNameTag", { "UserID": UserID, "Key": Key, "TagID": TagID }, this.DeleteNameTag.getArguments().slice(3)); },
                                AddGeoTag: function(UserID, Key, PhotoID, Tag) { return this.invoke("AddGeoTag", { "UserID": UserID, "Key": Key, "PhotoID": PhotoID, "Tag": Tag }, this.AddGeoTag.getArguments().slice(4)); },
                                DeleteGeoTag: function(UserID, Key, TagID) { return this.invoke("DeleteGeoTag", { "UserID": UserID, "Key": Key, "TagID": TagID }, this.DeleteGeoTag.getArguments().slice(3)); },
                                SaveCaption: function(UserID, Key, OwnerID, Caption) { return this.invoke("SaveCaption", { "UserID": UserID, "Key": Key, "OwnerID": OwnerID, "Caption": Caption }, this.SaveCaption.getArguments().slice(4)); },
                                UpdateCover: function(UserID, Key, OwnerID) { return this.invoke("UpdateCover", { "UserID": UserID, "Key": Key, "OwnerID": OwnerID }, this.UpdateCover.getArguments().slice(3)); },
                                GetPhotosByAlbumIDAndOwnerID: function(Type, OwnerID, AlbumID, EntStart, Limit) { return this.invoke("GetPhotosByAlbumIDAndOwnerID", { "Type": Type, "OwnerID": OwnerID, "AlbumID": AlbumID, "EntStart": EntStart, "Limit": Limit }, this.GetPhotosByAlbumIDAndOwnerID.getArguments().slice(5)); },
                                PostPhotoOwnerComment: function (UserID, Key, OwnerID, Comment, ApplicationID) { return this.invoke("PostPhotoOwnerComment", { "UserID": UserID, "Key": Key, "OwnerID": OwnerID, "Comment": Comment, "ApplicationID": ApplicationID }, this.PostPhotoOwnerComment.getArguments().slice(5)); },
                                GetPagePhotosByOwnerID: function(OwnerID, EntStart, Limit) { return this.invoke("GetPagePhotosByOwnerID", { "OwnerID": OwnerID, "EntStart": EntStart, "Limit": Limit }, this.GetPagePhotosByOwnerID.getArguments().slice(3)); },
                                DeletePhotoComment: function(UserID, Key, CommentID) { return this.invoke("DeletePhotoComment", { "UserID": UserID, "Key": Key, "CommentID": CommentID }, this.DeletePhotoComment.getArguments().slice(3)); },
                                GetPhotosOwnersAllByAlbumID: function(Type, OwnerID, AlbumID, EntStart, Limit) { return this.invoke("GetPhotosOwnersAllByAlbumID", { "Type": Type, "OwnerID": OwnerID, "AlbumID": AlbumID, "EntStart": EntStart, "Limit": Limit }, this.GetPhotosOwnersAllByAlbumID.getArguments().slice(5)); },
                                EditAlbumName: function(UserID, Key, AlbumID, AlbumName) { return this.invoke("EditAlbumName", { "UserID": UserID, "Key": Key, "AlbumID": AlbumID, "AlbumName": AlbumName }, this.EditAlbumName.getArguments().slice(4)); },
                                MovePhotosToNewAlbum: function(UserID, Key, OldAlbumID, AlbumID) { return this.invoke("MovePhotosToNewAlbum", { "UserID": UserID, "Key": Key, "OldAlbumID": OldAlbumID, "AlbumID": AlbumID }, this.MovePhotosToNewAlbum.getArguments().slice(4)); },
                                DeleteAllPhotosInAlbumID: function(UserID, Key, AlbumID) { return this.invoke("DeleteAllPhotosInAlbumID", { "UserID": UserID, "Key": Key, "AlbumID": AlbumID }, this.DeleteAllPhotosInAlbumID.getArguments().slice(3)); },
                                DeletePhoto: function(UserID, Key, OwnerID) { return this.invoke("DeletePhoto", { "UserID": UserID, "Key": Key, "OwnerID": OwnerID }, this.DeletePhoto.getArguments().slice(3)); },
                                MovePhotoToAlbum: function(UserID, Key, OwnerID, AlbumID) { return this.invoke("MovePhotoToAlbum", { "UserID": UserID, "Key": Key, "OwnerID": OwnerID, "AlbumID": AlbumID }, this.MovePhotoToAlbum.getArguments().slice(4)); },
                                AddPhotoView: function(UserID, Key, PhotoID) { return this.invoke("AddPhotoView", { "UserID": UserID, "Key": Key, "PhotoID": PhotoID }, this.AddPhotoView.getArguments().slice(3)); },
                                GetTaggedPhotosByUserID: function(UserID, EntStart, Limit) { return this.invoke("GetTaggedPhotosByUserID", { "UserID": UserID, "EntStart": EntStart, "Limit": Limit }, this.GetTaggedPhotosByUserID.getArguments().slice(3)); },
                                GetPageTaggedPhotosByOwnerID: function(OwnerID, UserID, EntStart, Limit) { return this.invoke("GetPageTaggedPhotosByOwnerID", { "OwnerID": OwnerID, "UserID": UserID, "EntStart": EntStart, "Limit": Limit }, this.GetPageTaggedPhotosByOwnerID.getArguments().slice(4)); },
                                GetPhotoAlbums: function(Type, OwnerID) { return this.invoke("GetPhotoAlbums", { "Type": Type, "OwnerID": OwnerID }, this.GetPhotoAlbums.getArguments().slice(2)); },
                                url: PhotoURL
                            }
              )
);
Bloc.ObjectModel.Photos = new Bloc.ObjectModel.PhotoClass();


//ads
var AdsURL = siteURL + "Bloc.ObjectModel.Adversting,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.AdsClass = function() { };

//Declaring 
Object.extend(Bloc.ObjectModel.AdsClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                GetAdversting: function(UserID, AdvType, SiteID, IP) { return this.invoke("GetAdversting", { "UserID": UserID, "AdvType": AdvType, "SiteID": SiteID, "IP": IP }, this.GetAdversting.getArguments().slice(4)); },
                                url: AdsURL
                            }
              )
);
Bloc.ObjectModel.Ads = new Bloc.ObjectModel.AdsClass();

//delivery
var DeliveryURL = siteURL + "Bloc.ObjectModel.DeliveryModel,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.DeliveryClass = function() { };

//Declaring
Object.extend(Bloc.ObjectModel.DeliveryClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                SearchRestaurant: function(CountryID, StateID, CountyID, AreaID) { return this.invoke("SearchRestaurant", { "CountryID": CountryID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID }, this.SearchRestaurant.getArguments().slice(4)); },
                                GetClientInfoByClientID: function(ClientID) { return this.invoke("GetClientInfoByClientID", { "ClientID": ClientID }, this.GetClientInfoByClientID.getArguments().slice(1)); },
                                GetProductsByCategoryIDAjax: function(CategoryID) { return this.invoke("GetProductsByCategoryIDAjax", { "CategoryID": CategoryID }, this.GetProductsByCategoryIDAjax.getArguments().slice(1)); },
                                GetGiftValue: function(ClientID, GiftCode) { return this.invoke("GetGiftValue", { "ClientID": ClientID, "GiftCode": GiftCode }, this.GetGiftValue.getArguments().slice(2)); },
                                GetMapPOEs: function(Type, X1, Y1, X2, Y2) { return this.invoke("GetMapPOEs", { "Type": Type, "X1": X1, "Y1": Y1, "X2": X2, "Y2": Y2 }, this.GetMapPOEs.getArguments().slice(5)); },
                                url: DeliveryURL
                            }
              )
);
Bloc.ObjectModel.Delivery = new Bloc.ObjectModel.DeliveryClass();


//market
var MarketURL = siteURL + "Bloc.ObjectModel.MarketModel,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.MarketClass = function() { };

//Declaring
Object.extend(Bloc.ObjectModel.MarketClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                SearchHouse: function(CountryID, StateID, CountyID, AreaID, Words, RentMin, RentMax, SizeMin, SizeMax, BedRooms, Limit, Entstart, OrderType) { return this.invoke("SearchHouse", { "CountryID": CountryID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID, "Words": Words, "RentMin": RentMin, "RentMax": RentMax, "SizeMin": SizeMin, "SizeMax": SizeMax, "BedRooms": BedRooms, "Limit": Limit, "Entstart": Entstart, "OrderType": OrderType }, this.SearchHouse.getArguments().slice(13)); },
                                SearchUnApprovedHouse: function(CountryID, StateID, CountyID, AreaID, Limit, Entstart) { return this.invoke("SearchUnApprovedHouse", { "CountryID": CountryID, "StateID": StateID, "CountyID": CountyID, "AreaID": AreaID, "Limit": Limit, "Entstart": Entstart }, this.SearchUnApprovedHouse.getArguments().slice(6)); },
                                GetJobSubCategories: function(categoryId) { return this.invoke("GetJobSubCategories", { "categoryId": categoryId }, this.GetJobSubCategories.getArguments().slice(1)); },
                                StartStopAd: function(UserID, Key, AdID) { return this.invoke("StartStopAd", { "UserID": UserID, "Key": Key, "AdID": AdID }, this.StartStopAd.getArguments().slice(3)); },
                                GetJobCategories: function() { return this.invoke("GetJobCategories", {}, this.GetJobCategories.getArguments().slice(0)); },
                                SearchJob: function(CategoryId, Words, Orders, SortType, PageNo) { return this.invoke("SearchJobPagingAjax", { "categoryId": CategoryId, "words": Words, "orders": Orders, "sortType": SortType, "pageNo": PageNo }, this.SearchJob.getArguments().slice(5)); },
                                url: MarketURL
                            }
              )
);
Bloc.ObjectModel.Market = new Bloc.ObjectModel.MarketClass();

//video
var VideoURL = siteURL + "Bloc.ObjectModel.VideoModel,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.VideoClass = function() { };

//Declaring
Object.extend(Bloc.ObjectModel.VideoClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                AddVideos: function(ApplicationID, SiteID, UserID, Embed, Thumbnail, Title, Description, Tags) { return this.invoke("AddVideos", { "ApplicationID": ApplicationID, "SiteID": SiteID, "UserID": UserID, "Embed": Embed, "Thumbnail": Thumbnail, "Title": Title, "Description": Description, "Tags": Tags }, this.AddVideos.getArguments().slice(8)); },
                                CheckVideosByEmbed: function(Embed) { return this.invoke("CheckVideosByEmbed", { "Embed": Embed }, this.CheckVideosByEmbed.getArguments().slice(1)); },
                                AddVideoToFavorite: function(UserID, Key, VideoID) { return this.invoke("AddVideoToFavorite", { "UserID": UserID, "Key": Key, "VideoID": VideoID }, this.AddVideoToFavorite.getArguments().slice(3)); },
                                RemoveFavorite: function(UserID, Key, VideoID) { return this.invoke("RemoveFavorite", { "UserID": UserID, "Key": Key, "VideoID": VideoID }, this.RemoveFavorite.getArguments().slice(3)); },
                                BlockVideo: function(UserID, Key, VideoID) { return this.invoke("BlockVideo", { "UserID": UserID, "Key": Key, "VideoID": VideoID }, this.BlockVideo.getArguments().slice(3)); },
                                UnBlockVideo: function(UserID, Key, BlockID) { return this.invoke("UnBlockVideo", { "UserID": UserID, "Key": Key, "BlockID": BlockID }, this.UnBlockVideo.getArguments().slice(3)); },
                                AddVideoToGroup: function(UserID, Key, GroupID, VideoID) { return this.invoke("AddVideoToGroup", { "UserID": UserID, "Key": Key, "GroupID": GroupID, "VideoID": VideoID }, this.AddVideoToGroup.getArguments().slice(4)); },
                                AddVideoToPlayList: function(UserID, Key, PlayListID, VideoID) { return this.invoke("AddVideoToPlayList", { "UserID": UserID, "Key": Key, "PlayListID": PlayListID, "VideoID": VideoID }, this.AddVideoToPlayList.getArguments().slice(4)); },
                                ReportVideo: function(UserID, Key, VideoID, Category) { return this.invoke("ReportVideo", { "UserID": UserID, "Key": Key, "VideoID": VideoID, "Category": Category }, this.ReportVideo.getArguments().slice(4)); },
                                CommentVideo: function(UserID, Key, VideoID, Comment) { return this.invoke("CommentVideo", { "UserID": UserID, "Key": Key, "VideoID": VideoID, "Comment": Comment }, this.CommentVideo.getArguments().slice(4)); },
                                GetVideoComment: function(VideoID, EntStart, Limit) { return this.invoke("GetVideoComment", { "VideoID": VideoID, "EntStart": EntStart, "Limit": Limit }, this.GetVideoComment.getArguments().slice(3)); },
                                GetVideosByVideoName: function(SiteID, UserID, Name, EntStart, Limit, SortBy, SortTime) { return this.invoke("GetVideosByVideoName", { "SiteID": SiteID, "UserID": UserID, "Name": Name, "EntStart": EntStart, "Limit": Limit, "SortBy": SortBy, "SortTime": SortTime }, this.GetVideosByVideoName.getArguments().slice(7)); },
                                GetFavoriteVideosByUserID: function(UserID, EntStart, Limit) { return this.invoke("GetFavoriteVideosByUserID", { "UserID": UserID, "EntStart": EntStart, "Limit": Limit }, this.GetFavoriteVideosByUserID.getArguments().slice(3)); },
                                DeletePlayList: function(UserID, Key, PlayListID) { return this.invoke("DeletePlayList", { "UserID": UserID, "Key": Key, "PlayListID": PlayListID }, this.DeletePlayList.getArguments().slice(3)); },
                                DeleteFromPlayList: function(UserID, Key, PlayID) { return this.invoke("DeleteFromPlayList", { "UserID": UserID, "Key": Key, "PlayID": PlayID }, this.DeleteFromPlayList.getArguments().slice(3)); },
                                GetVideoInfoByEmbed: function(Embed, UserID) { return this.invoke("GetVideoInfoByEmbed", { "Embed": Embed, "UserID": UserID }, this.GetVideoInfoByEmbed.getArguments().slice(2)); },
                                GetRelatedVideos: function(KeyWords, VideoSrc) { return this.invoke("GetRelatedVideos", { "KeyWords": KeyWords, "VideoSrc": VideoSrc }, this.GetRelatedVideos.getArguments().slice(2)); },
                                GetVideoInfoByVideoID: function(videoid, videotype) { return this.invoke("GetVideoInfoByVideoID", { "videoid": videoid, "videotype": videotype }, this.GetVideoInfoByVideoID.getArguments().slice(2)); },
                                
                                url: VideoURL
                            }
              )
);
Bloc.ObjectModel.Video = new Bloc.ObjectModel.VideoClass();

//video
var WebshopURL = siteURL + "Bloc.ObjectModel.WebShop,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.WebShopClass = function() { };

//Declaring
Object.extend(Bloc.ObjectModel.WebShopClass.prototype,
              Object.extend(new BlocAjax.AjaxClass(),
                            {
                                AddProductToShoppingcart: function(SiteID, UserID, Key, ShoppingcartID, ProductID) { return this.invoke("AddProductToShoppingcart", { "SiteID": SiteID, "UserID": UserID, "Key": Key, "ShoppingcartID": ShoppingcartID, "ProductID": ProductID}, this.AddProductToShoppingcart.getArguments().slice(5)); },
                                RemoveProductFromShoppingcart: function(SiteID, UserID, Key, ShoppingcartID, ProductID) { return this.invoke("RemoveProductFromShoppingcart", { "SiteID": SiteID, "UserID": UserID, "Key": Key, "ShoppingcartID": ShoppingcartID, "ProductID": ProductID }, this.RemoveProductFromShoppingcart.getArguments().slice(5)); },
                                url: WebshopURL
                            }
              )
);
                            Bloc.ObjectModel.WebShop = new Bloc.ObjectModel.WebShopClass();

//Site
var SiteURL = siteURL + "Bloc.ObjectModel.Sites,Bloc.ObjectModel.ashx";

Bloc.ObjectModel.SiteClass = function() { };

//Declaring
Object.extend(Bloc.ObjectModel.SiteClass.prototype,
Object.extend(new BlocAjax.AjaxClass(),
{
    AddSitePageView: function (SiteID) { return this.invoke("AddSitePageView", { "SiteID": SiteID }, this.AddSitePageView.getArguments().slice(1)); },
    GetPhoneBrands: function (BrandID) { return this.invoke("GetPhoneBrands", { "BrandID": BrandID }, this.GetPhoneBrands.getArguments().slice(1)); },
    url: SiteURL
}
)
);
Bloc.ObjectModel.Site = new Bloc.ObjectModel.SiteClass();
