var $panel = "";
var $emptyPanel = "";
var $absolutePath = "";	
var $objHolder = new Object();
function $GetProfileSummary(ID){
    ///<summary>Get user profile summary</summary>
    ///<param name="ID" type="string">The $GetProfileSummary ID as a string.</param>
    $objHolder["ID"] = ID;
    if(typeof($objHolder["Profile Summary " + ID]) == 'undefined' || $objHolder["Profile Summary " + ID]["ID"] != ID){  
        UserID = ID;
        GameSpace.UI.WebService.UserProfile.GetProfileSummary(UserID, $OnCompleteProfileSummary, $OnTimeOut, $OnError);
    }
    else{
        $OnCompleteProfileSummary($objHolder["Profile Summary " + $objHolder["ID"]]);
    }
    return false;
}

function $OnCompleteProfileSummary(args){ 
    $objHolder["Profile Summary " + $objHolder["ID"]] = args;    
    document.getElementById($emptyPanel).innerHTML = $objHolder["Profile Summary " + $objHolder["ID"]]["Profile Summary"];    
    return false;
}

function $LoadContents(id, loading, myCase){        
    document.getElementById($emptyPanel).innerHTML = loading;   
    switch(myCase){
        case "Profile Summary":
            $GetProfileSummary(id);
            break;
        case "Armory Summary":
            $GetArmoryProfile(id);
            break;
    }    
}

function $ShowProfilePanel(obj, id, x, y, myCase){
    myCase = !(myCase) ? "Profile Summary" : myCase;
    loading = "<div style='text-align: center; width: 100%'>Loading...<br><img id='waiting' src='"+$absolutePath+"/App/images/AJAXindicators/activity.gif'><br><br><div>"
    $LoadContents(id, loading, myCase);
    $MoveTo(obj, "profilePanel", x, y);
}

function $MoveTo(obj, cname, x, y){
    var moveObj = document.getElementById($panel);
    moveObj.className = cname;    
    MAXX.Util.MoveToCoordinate(obj,moveObj,x,y);    
    $ShowHidePanel(true);
}

function $HidePanel(){
    $ShowHidePanel(false);
}

function $ShowHidePanel(isShow){
    document.getElementById($panel).style.display = isShow ? 'block' : 'none';
}

function $Vote(ItemID){
    if(ItemID == ""){
        alert("Please select for vote.");
        return false;
    }
    GameSpace.UI.WebService.UserProfile.VoteMe(ItemID, $OnVote, $OnTimeOut, $OnError);
    return false;
}

function $OnVote(args){      
    for (var row in args){
        switch(args[row]['Result']){
            case "-1":
                alert("You need to login to vote.");
                break;
            case "0":
                VoteMe();
                break;
            case "1":
                alert("You had already voted!");
                break;
        }        
    } 
    return false;
}

// get armory profile
$URL = "";
function $GetArmoryProfile(ID){
    $objHolder["ID"] = ID;
    URL = $URL;
    if(typeof($objHolder["Armory Summary " + ID]) == 'undefined' || Trim($objHolder["Armory Summary " + ID]["Armory"]) == ""){
        GameSpace.UI.WebService.UserProfile.GetArmoryProfile(URL, ID, $OnArmoryProfile, $OnTimeOut, $OnError);
    }
    else{
        $OnArmoryProfile($objHolder["Armory Summary " + ID]);
    }
    return false;
}

function $OnArmoryProfile(args){
    $objHolder["Armory Summary " + $objHolder["ID"]] = args;  
    document.getElementById($emptyPanel).innerHTML = args["BeginTable"] + args["Armory"] + args["EndTable"] + args["DivSpacer"];  
    return false;
}

function $PopulateArmoryProfile(ID){
    document.getElementById($pl_myWOWaccountBody).innerHTML = $objHolder["Armory Summary " + ID]["Armory"];    
    document.getElementById($ArmoryID).value = $objHolder["Armory Summary " + ID]["ID"];    
    
    document.getElementById($GuildPanel).innerHTML = $objHolder["Armory Summary " + ID]["CharacterGuild"];    
    document.getElementById($lbl_guild).innerHTML = $objHolder["Armory Summary " + ID]["Guild"]; 
    document.getElementById($GuildNameHiddenField).value = $objHolder["Armory Summary " + ID]["Guild"];    
    
    return false;
}






function $GetArmoryRealm(Region){
    GameSpace.UI.WebService.UserProfile.GetArmoryRealm(Region, $OnArmoryRealm, $OnTimeOut, $OnError);
    return false;
}

function $OnArmoryRealm(args){    
    PopulateArmoryRealm(args);
    return false;
}

function $OnTimeOut(args){       
    return false;
}

function $OnError(args){
    alert("Error calling service method.");
}
