var _STATE = null;

function greenpatch_default() {
    appmain_tabclicked(1/* Green Patch */);
    var state = (typeof(arguments[0]) == 'undefined') ? null :  arguments[0];

    // remaining stuff
    var xmlHttp = appmain_getXmlHttp();
    url = _LGP_BASE_URL + "greenpatch.php?op=default";

    if(state != null) {
        for(i in state) {
            if(i != "userId" && state[i] != null) {
                var str = state[i];
                url += "&" + i + "=" + state[i];
            }
        }
    }
    
    //alert(url);
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=function() {
        if(xmlHttp.readyState == 4) {
            var json = eval('(' + xmlHttp.responseText + ')');
            var redirected = appmain_redirectIfRequired(json, "flow/greenpatch");
            if(redirected == false) {
                _STATE = json.state;
                // clear previous action
                _STATE.patchAction = "";
                document.getElementById("gt-body").innerHTML = json.html;
                eval(json.js_functions);
                appmain_updateCoins(json.coins);
            }
        }
    };
    xmlHttp.send(null);
    greenpatch_updateRightPanel();
    _STATE = null;
}

function greenpatch_updateRightPanel() {
    // remaining stuff
    var xmlHttp = appmain_getXmlHttp();
    url = _LGP_BASE_URL + "greenpatch.php?op=topgreenies_global";
    //alert(url);
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=function() {
        if(xmlHttp.readyState == 4) {
            var json = eval('(' + xmlHttp.responseText + ')');
            var redirected = appmain_redirectIfRequired(json, "flow/greenpatch");
            if(redirected == false) {
                //alert(json.html);
                document.getElementById("gt-rightpanel").innerHTML = json.html;
            }
        }
    };
    xmlHttp.send(null);
}

function buyClicked() {
    store_default();
}

function useClicked() {
	_STATE.patchAction = "use";
    patchActionClicked();
}

function patchActionClicked() {
	_STATE.patchState = "PATCHSTATE_TENDED";
	if (_STATE.nextFriendId != null) {
	}
    else {
        _STATE.patchOwnerId = null;
    //    _STATE.patchState = "PATCHSTATE_DONE";
    }
    greenpatch_default(_STATE);
}

function visitPatchClicked() {
    _STATE.patchOwnerId = _STATE.nextFriendId;
    _STATE.patchState = _STATE.patchOwnerId == null ? "PATCHSTATE_DONE" : "PATCHSTATE_ISSUE";
    greenpatch_default(_STATE);
}

function visitFriendsPatchClicked(helperId) {
    if(_STATE == null) {
        _STATE = new Array();
    }
    _STATE.patchOwnerId = helperId;
    _STATE.patchState = _STATE.patchOwnerId == null ? "PATCHSTATE_DONE" : "PATCHSTATE_ISSUE";
    greenpatch_default(_STATE);
}

function skipPatchClicked() {
	if (_STATE.nextFriendId != null) {
        //alert("next friend id is not null " + _STATE.nextFriendId);
        _STATE.patchOwnerId = _STATE.nextFriendId;
	    _STATE.patchState = "PATCHSTATE_ISSUE";
	}
    else {
        //alert("next friend id is null ");
        _STATE.patchOwnerId = null;
        _STATE.patchState = "PATCHSTATE_DONE";
    }
    greenpatch_default(_STATE);
}
