
function Profile() {}

Profile.fav_str = "";
Profile.map_servers = "";

//*********************************
// Favorite methods.
//*********************************
Profile.addFav = function(map_id, uid, gid) {
         if(map_id == "") return;
         if(uid == "") return;
         if(gid == "") return;
         
         var reg = ".*" + map_id + "\\[([0-9:|]*)\\].*";
         var fav_uid_gid = this.fav_str.replace(new RegExp(reg, "i"), "$1");

         if(fav_uid_gid == this.fav_str) {
                 this.fav_str += map_id + "[" + uid + ":" + gid + "|]";
         } else {
                 if(fav_uid_gid.replace(new RegExp(".*(" + uid + ":" + gid + ").*"), "$1") == fav_uid_gid) {
                          reg = map_id + "\\[([0-9:|]*)\\]";
                          fav_uid_gid += uid + ":" + gid + "|";
                          this.fav_str = this.fav_str.replace(new RegExp(reg, "i"), map_id + "[" + fav_uid_gid + "]");
                 }
         }
};

Profile.delFav = function(map_id, uid, gid) {
         if(map_id == "") return;
         if(uid == "") return;
         if(gid == "") return;

         var reg = ".*" + map_id + "\\[([0-9:|]*)\\].*";
         var fav_uid_gid = this.fav_str.replace(new RegExp(reg, "i"), "$1");

         if(fav_uid_gid != this.fav_str) {
                 reg = "(.*" + map_id + "\\[[0-9:|]*)" + uid + ":" + gid + "\\|([0-9:|]*\\].*)";
                 this.fav_str = this.fav_str.replace(new RegExp(reg, "i"), "$1$2");
         }
};

Profile.getFav = function(map_id) {
         var arr = [];
         if(map_id + "" == "") return;
         
         var reg = ".*" + map_id + "\\[([0-9:|]*)\\].*";
         var fav_uid_gid = this.fav_str.replace(new RegExp(reg, "i"), "$1");

         if(fav_uid_gid != this.fav_str) {
                 arr = fav_uid_gid.split('|');
                 arr.length = arr.length - 1;
         }

         return arr;
};

//*********************************
// Map server methods.
//*********************************
Profile.getMapServer = function(map_id) {
         var ret = "";
         if(map_id + "" == "") return;

         var reg = ".*" + map_id + "\\[([\\w/\\\\\\.:]*)\\].*";
         var map_link = this.map_servers.replace(new RegExp(reg, "i"), "$1");

         if(map_link != this.map_servers)
                 ret = map_link;

         return ret;
};

Profile.addMapServer = function(map_id, link) {
         if(map_id == "") return;
         if(link == "") return;

         var reg = ".*" + map_id + "\\[([\\w/\\\\\\.:]*)\\].*";
         var map_link = this.map_servers.replace(new RegExp(reg, "i"), "$1");
         
         if(map_link == this.map_servers) {
                 this.map_servers += map_id + "[" + link + "]";
         } else {
                 reg = map_id + "\\[([\\w/\\\\\\.:]*)\\]";
                 this.map_servers = this.map_servers.replace(new RegExp(reg, "i"), map_id + "[" + link + "]");
         }
};

Profile.delMapServer = function(map_id) {
         if(map_id == "") return;

         var reg = ".*" + map_id + "\\[([\\w/\\\\\\.:]*)\\].*";
         var map_link = this.map_servers.replace(new RegExp(reg, "i"), "$1");

         if(map_link != this.map_servers) {
                 reg = map_id + "\\[([\\w/\\\\\\.:]*)\\]";
                 this.map_servers = this.map_servers.replace(new RegExp(reg, "i"), "");
         }
};
