function generateSections() {
	var html = '';

	html += generateStyle();

	html += '<div id="gt-wrapper" style="align:center; left-margin:125px; padding-left:125px;">';
	html += '  <table style="width:650px; border:thin solid #CCCC99;">';
	html += '    <tr width="100%"><td width="100%">';
	html += '      <div id="gt-header" class="gt-header"></div> ';
	html += '    </td></tr>';
	html += '    <tr class="gt-body"><td>';
	html += '      <div id="gt-body" class="gt-body"></div> ';
	html += '    </td></tr>';
	html += '    <tr><td style="align:center;">';
	html += '      <div id="gt-footer" class="gt-footer"></div> ';
	html += '    </td></tr>';
	html += '  </table>';
	html += '</div>';
	return html;
}

function generateRainforestSavedInHeader() {

    var html = "";

    html += '<div style="border-width: 1px; border-style: solid; border-color: #C11B17; text-align: center; margin-left: 2px; margin-right: 2px; margin-top: 5px; margin-bottom: 2px; font-size: 11px; color: #000000; background-color: #FFF68F; padding-top: 2px; padding-bottom: 2px;">';
    html += '<a target="_blank" href="http://apps.facebook.com/causes/hall_of_fame/2979">';
    html += '"59,098,167 Sq ft Saved - August 2008 donation made!"';
    html += '</a>';
    html += '</div>';

	return html;
}

function generateHeader() {

    var html = "";

    html += '<table width="100%">';
    html += '  <tr width="100%">';
    html += '    <td width="55%" align="center">';
	html +=        generateRainforestSavedInHeader();
    html += '    </td>';
    html += '    <td width="45%">';
    html += '      <div style="text-align: right; padding-right: 10px; padding-top: 2px; color: #006633; font-size:12; font-color: #006633;">';
    if(_USER_TYPE != 6) {
        html += '          <a target="_blank" href="http://lilgreenpatch.com/discussion-forum/"  style="color: #006633;">Discuss</a>&nbsp;';
    }
    html += '          <a href="javascript:void(0); onClickUpdates();"  style="color: #006633;">Updates</a>&nbsp;';
    html += '      </div>';
    html += '    </td>';
    html += '  </tr>';
    html += '</table>';

    html += "<table width=\"100%\" align=\"center\">";
    html += "  <tr width=\"100%\" align=\"left\">";
    html += "    <td width=\"32%\" align=\"left\">";
    html += "      <div class=\"squareFeetCounterText\">";
    html += "        Personal Rainforest Saved <sup><b>*</b></sup>:";
    html += "      </div>";
    html += "    </td>";
    html += "    <td width=\"18%\" align=\"right\">";
    html += "      <div id=\"personalSqftCounter\" class=\"squareFeetCounter\">";
    html +=	"         Updating..";
    html += "      </div>";
    html += "    </td>";
    html += "    <td width=\"25%\" align=\"center\">";
    html += "    </td>";
    html += "    <td width=\"15%\" align=\"left\">";
    html += "      <div class=\"squareFeetCounterText\">";
    html += "        GreenBucks :";
    html += "      </div>";
    html += "    </td>";
    html += "    <td width=\"10%\" align=\"right\">";
    html += "      <div id=\"personalGreenBucksCounter\" class=\"squareFeetCounter\">";
    html += "       Updating.. ";
    html += "      </div>";
    html += "    </td>";
    html += "  </tr>";
    html += "</table>";

    html += "<table width=\"100%\" align=\"center\">";
    html += "  <tr width=\"100%\" align=\"left\">";
    html += "    <td width=\"100%\" align=\"left\">";
    html += "      <div id=\"headerAdBanner\" style=\"width: 100%; height:70px; padding-left:20px; align:center; text-align: center;\">";
	//    html +=  ' <a href="' + _BASE_URL + 'fb/greentrees/badge/slideshow/slideshow_landing.php?userId=$user&src=1" target="_top"> ';
	//    html += ' <img  src="http://greenpatch.s3.amazonaws.com/slideshow-banner.jpg" ';
	//    html += ' border="0" hspace="0" vspace="0"></img> ';
	//    html += ' </a> ';
    html += '      </div>';
    html += "    </td>";
    html += "  </tr>";
    html += "  <tr width=\"100%\" align=\"left\">";
    html += "    <td width=\"100%\" align=\"left\">";
    html += '      <div id="userMessage" class="stdmessage stdmessageline1" style="width: 100%; height:40px; padding-left:20px; align:center; text-align: center; visibility:hidden;"/>';
    html += "    </td>";
    html += "  </tr>";
    html += "  <tr width=\"100%\" align=\"left\">";
    html += "    <td width=\"100%\" align=\"left\">";
	html += generateTabs(/* activeTab */ 0);
    html += "    </td>";
    html += "  </tr>";
    html += "</table>";
	html += '<ul/>';
	
	//alert (html);
    return html;
}

function updateGreenBucks(greenBucks) {
	if(greenBucks == -1) {
		// Perform actual send plant back on the server using PHP
		if(_VIEWER == null) {
			return;
		}
		var url = _BASE_URL + "os/greentrees/app-main.php";
		url += "?userId=" + _VIEWER.getId(); // 250203460
		url += "&userType=" + _USER_TYPE;
		url += "&op=getGreenBucksInfo";
		url += "&uq=" + (new Date().getUTCMilliseconds());
		//alert("at B -> " +url );
		var params = {};
		params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
		params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
		gadgets.io.makeRequest(url, onGetGreenBucksInfoRequestComplete, params);
	}
	else {
		document.getElementById('personalGreenBucksCounter').innerHTML = greenBucks;
	    //gadgets.window.adjustHeight();
	}
}

function onGetGreenBucksInfoRequestComplete(obj) {
    if(checkMaintenanceMode(obj) == true) {
        return;
    }

	var greenBucks = obj.data.greenBucks;
	updateGreenBucks(greenBucks);
    var gaveDailyGreenBucks = obj.data.gaveDailyGreenBucks;
    if(gaveDailyGreenBucks == true) {
        var um = document.getElementById('userMessage');
        um.innerHTML = 'Congratulations! You earned 50 GreenBucks for logging in today.  Be sure to come back to (Lil) Green Patch again tomorrow to earn your daily GreenBucks.';
        //alert("Congratulations! You earned 50 GreenBucks for logging in today.  Be sure to come back to (Lil) Green Patch again tomorrow to earn your daily GreenBucks.");
        um.style["visibility"] = "visible";
        greenBucks = (greenBucks * 1) + 50;
        setTimeout("hideUserMessage();", 5000);
    }
    updateGreenBucks(greenBucks);
}

function hideUserMessage() {
    var um = document.getElementById('userMessage');
    um.style["visibility"] = "hidden";
}

function generateUpdate() {
	var html = '';
	html += '';
	return html;
}

function onClickUpdates() {
	var html = generateUpdate();
	document.getElementById('gt-body').innerHTML = html;
	gadgets.window.adjustHeight();
}

function generateTab(tabText, isActive, onClickFunc) {
	var html = '<li ';
	if (isActive == 1) {
		html += ' id="active" ';
	}

	html += ' ><a ';

	if (isActive == 1) {
		html += ' id="current" ';
	}

	html += ' ONCLICK="' + onClickFunc + '">' + tabText + '</a></li>';
	return html;
}

function generateTabs(activeTab) {
	var html = "";
	var nav = document.getElementById('navcontainer');

	if(nav == null) {
		html += ' <div id="navcontainer"> ';
	}
	html += ' <ul id="navlist"> ';
	
	html += generateTab('Send Plants',    (activeTab == 0) ? 1 : 0, 'onTabClick(0);');  
	html += generateTab('Green Patch',    (activeTab == 1) ? 1 : 0, 'onTabClick(1);');  

	//		html += generateTab('Marketplace',    (activeTab == 2) ? 1 : 0, 'onTabClick(2);');  
	html += generateTab('Store',          (activeTab == 3) ? 1 : 0, 'onTabClick(3);');  
			html += generateTab('Top Greenies',   (activeTab == 4) ? 1 : 0, 'onTabClick(4);');  
	//		html += generateTab('Arcade',         (activeTab == 5) ? 1 : 0, 'onTabClick(5);');  
	//		html += generateTab('Greenies',       (activeTab == 6) ? 1 : 0, 'onTabClick(6);');  
	html += generateTab('FAQ',            (activeTab == 2) ? 1 : 0, 'onTabClick(2);');  

	html += ' </ul> ';

	if(nav == null) {
		html += ' </div> ';
	}

	return html;
}

function generateFooter() {
	
	var html = '<BR/>';
    html += '<div style="border-width: 1px; border-style: solid; border-color: #C11B17; text-align: center; margin-left: 90px; margin-right: 90px; margin-top: 5px; margin-bottom: 2px; font-size: 11px; color: #555555; background-color: #ffffff;">';
    html += '* : Our sponsors contribute money to save the Rainforests as you use this application';
    html += '</div>';

	return html;
}

function onTabClick(tab) {
	
    //alert("in onTabClick " + tab);

	//alert ("tab " + tab + "clicked");
	var html = generateTabs(/* activeTab */ tab);
	document.getElementById('navcontainer').innerHTML = html;
	//gadgets.window.adjustHeight();
	
	switch(tab) {
	case 0:
		html = generateSendPlantBody();
		break;
	case 1:
        _STATE = null;
		html = generateGreenPatchBody();
		break;
	case 2:
		html = generateFAQ();
		break;
	case 3:
		html = generateStoreBody();
		break;
	case 4:
		html = generateTopGreeniesBody();
		break;

		/*
	case 2:
		html = generateMarketplaceBody();
				break;
		case 5:
				html = generateArcadeBody();
				break;
		case 6:
				html = generateGreeniesBody();
				break;
*/
	}
	
	document.getElementById('gt-body').innerHTML = html;
	gadgets.window.adjustHeight();
}

//function generateSendPlantBody() {
//		return 'Coming soon -- Send Plant functionality';
//		
//}


function generateMarketplaceBody() {
	return 'Coming soon -- Marketplace functionality';
}

function generateArcadeBody() {
	return 'Coming soon -- Arcade functionality';
}

function generateGreeniesBody() {
	return 'Coming soon -- Greenies functionality';
}

function generateAdBanner() {

	var adUrl = 'http://ad110.myofferpal.com/'+ _OFFERPAL_CODE_GB + '/ibanner.action?snuid=' + _VIEWER.getId();
	var html = '';
	html += '<iframe src="' + adUrl + '"';
	html += ' width="100%" height="60px" align="center" frameborder="0">';
	html += '</iframe>';
	return html;
}

function updateHeaderInfo() {

	//alert ('AA');
	if(_VIEWER == null) {
		//alert ('B');
		return 'waiting to load viewer object';
	}
	
	var html = generateAdBanner();
	var adNode = document.getElementById('headerAdBanner');
	
	if(adNode != null) {
		adNode.innerHTML = html;
		//gadgets.window.adjustHeight();
	}

	updateSqft(-1);
}

function updateSqft(sqft) {
    if(sqft == -1) {
	    // Perform actual send plant back on the server using PHP
	    var url = _BASE_URL + "os/greentrees/app-main.php";
	    url += "?userId=" + _VIEWER.getId(); // 250203460
	    url += "&userType=" + _USER_TYPE;
	    url += "&op=headerInfo";
	    url += "&uq=" + (new Date().getUTCMilliseconds());
	    //alert("at B -> " +url );
	    var params = {};
	    params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
	    params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	    gadgets.io.makeRequest(url, onHeaderInfoRequestComplete, params);
    }
    else {
	    //alert ('sqft -> ' + sqft);
	    //alert ('current sqft = ' + document.getElementById('personalSqftCounter').innerHTML);
	    var domele = document.getElementById('personalSqftCounter');
	    if(domele != null) {
		    domele.innerHTML = sqft + ' sqft';
	        //gadgets.window.adjustHeight();
	    }    
    }
}

function onHeaderInfoRequestComplete(obj) {
    if(checkMaintenanceMode(obj) == true) {
        return;
    }

	var sqft = obj.data.sqft;
    updateSqft(sqft);
}

function acceptInvitesAndShowTab() {
}

function initAppUI() {
	
    //alert ("In initAppUI");

	//gadgets.window.adjustHeight(5000);

	var html;
	html = generateSections();
	document.write(html);

	html = generateHeader();
	document.getElementById("gt-header").innerHTML = html;
	
	// Initiate a backend request to get and update header info
	//updateHeaderInfo(); 

	html = generateFooter();
	document.getElementById("gt-footer").innerHTML = html;
	//gadgets.window.adjustHeight();
	//onTabClick(0);
}


function onFriendsInitializeComplete() {

	//alert ("in onFriendsInitializeComplete");

	updateHeaderInfo();
	updateGreenBucks(-1);
	//alert ("after updateHeaderInfo");

	//alert('after update header info');

	var gotoTab = 0;
	_PATCH_OWNER_ID = null;

	// Accept all plant invites to my patch
	acceptPlantInvite(-1);

	//alert('after acceptPlantInvite');

	//alert ('checking for additional params...');
	//check for additional parameters sent to application
	var inviteId = gadgets.views.getParams().inviteId;
	var patchOwnerId = gadgets.views.getParams().patchOwnerId;

	if (patchOwnerId != null && patchOwnerId != "") {
		_PATCH_OWNER_ID = patchOwnerId;
		//gotoTab = 1;
	}
	
	//		if (inviteId != null && inviteId != "") {
	//				//alert ('found params...');
	//				acceptPlantInvite(inviteId);
	//		}
	//		else {
	//				onTabClick(0);
	//		}

	//alert ("goint to tab " + gotoTab);
	onTabClick(gotoTab);
}


function replaceGTTags(html) {

	var newHtml = html;
	//newHtml = replaceGTFirstNameTag(newHtml);
	newHtml = replaceTag(newHtml, "firstname");
	newHtml = replaceTag(newHtml, "image");
	return newHtml;
}

function replaceTag(html, gtTag) {
	var GT_FIRSTNAME_TAG_START = '<gt:' + gtTag + '>';
	var GT_FIRSTNAME_TAG_END = '</gt:' + gtTag + '>';
	var newHtml = html;
    //	return html;

	while (true) {
		var tagStart = newHtml.indexOf(GT_FIRSTNAME_TAG_START);

		//alert ("start = " + tagStart);

		if(tagStart == -1) {
			break;
		}
		var tagEnd = newHtml.indexOf(GT_FIRSTNAME_TAG_END);
	
		var htmlLeft = newHtml.substring(0, tagStart);
		var htmlRight = newHtml.substring(tagEnd + (GT_FIRSTNAME_TAG_END.length * 1));
		var tag = newHtml.substring(tagStart  + (GT_FIRSTNAME_TAG_START.length * 1),  tagEnd);
		
		//alert ("left = " + htmlLeft);
		//alert ("right = " + htmlRight);
		//alert ("tag = " + tag);
		
		var person = getPerson(tag);
        var replaceString = "";

        switch(gtTag) {
        case "firstname":
		    replaceString = person == null ? 'unknown' : person.getDisplayName();
            break;
        case "image":
            replaceString = person == null ? "" : person.getField(opensocial.Person.Field.THUMBNAIL_URL);
            break;
        }

		newHtml = htmlLeft + ' ' + replaceString + ' ' + htmlRight;
		//alert ("newhtml = " + newHtml);
	}

	return newHtml;
}


//function replaceGTFirstNameTag(html) {
//	var GT_FIRSTNAME_TAG_START = '<gt:firstname>';
//	var GT_FIRSTNAME_TAG_END = '</gt:firstname>';
//	var newHtml = html;
////	return html;
//
//	while (true) {
//		var tagStart = newHtml.indexOf(GT_FIRSTNAME_TAG_START);
//
//		//alert ("start = " + tagStart);
//
//		if(tagStart == -1) {
//			break;
//		}
//		var tagEnd = newHtml.indexOf(GT_FIRSTNAME_TAG_END);
//	
//		var htmlLeft = newHtml.substring(0, tagStart);
//		var htmlRight = newHtml.substring(tagEnd + (GT_FIRSTNAME_TAG_END.length * 1));
//		var tag = newHtml.substring(tagStart  + (GT_FIRSTNAME_TAG_START.length * 1),  tagEnd);
//		
//		//alert ("left = " + htmlLeft);
//		//alert ("right = " + htmlRight);
//		//alert ("tag = " + tag);
//		
//		var person = getPerson(tag);
//        
//		var name = person == null ? 'unknown' : person.getDisplayName();
//
//		newHtml = htmlLeft + ' ' + name + ' ' + htmlRight;
//
//		//alert ("newhtml = " + newHtml);
//	}
//
//	return newHtml;
//}

function generateOffersPage() {

	var adUrl = 'http://pub.myofferpal.com/'+ _OFFERPAL_CODE_GB + '/showoffers.action?snuid=' + _VIEWER.getId();
	var html = '';
	html += '<iframe src="' + adUrl + '"';
	html += ' width="100%" height="2100px" align="center" frameborder="0">';
	html += '</iframe>';
	return html;
}


function generateCanvasForNonUser() {

    var html = "";

    html += '<div id="install-app-box" style="visibility:hidden;">';
    html += '        <img style="top:0px;left:175px;position:absolute; z-index:1200;" src="http://greenpatch.s3.amazonaws.com/myspace-install-app-arrow.gif" /><br />';
    html += '    <div id="overlay_text_box" style="position: absolute; top: 120px; left: 80px; width: 400px; height: 100px; border: 5px solid #4E9258; background-color: #FFFFFF; z-index:1200; overflow: auto; padding: 20px; text-align: center;" >';
    html += '        <span style="font-family:Verdana;arial;sans-serif;font-size:20px;"><span style="font-family:Verdana;arial;sans-serif;font-size:20px;font-weight:bold;">Add / Install this Application</span> to start saving the Rainforest!</span>';
    html += '    </div>';
    html += '</div>  ';

    html += '<div id="myspace-about-img" style="margin-left:75px;">';
    html += '<img src="http://greenpatch.s3.amazonaws.com/myspace-about.gif" ';
    html += '</div>';
    html += '<div style="text-align: center; font-weight: normal; font-variant: small-caps; font-size: 20px; text-transform: none; ';
    html += '     color: &#035;006600; padding-left: 15px; padding-right: 15px;"> <br /> ';
    html += 'Help fight Global Warming! Together, We can make a Difference! <br />';
    html += '</div><br /> <br />';
    html += '<div style="text-align: left; font-weight: normal; font-family:Verdana,Arial,Helvetica, sans-serif; font-size: 12px; ';
    html += '     color: &#035;000000; padding-left: 15px; padding-right: 15px;"> <br /> ';
    html += 'By planting fruit with your friends you can help us all make the world a greener place!  As well, we will shortly ';
    html += 'be launching some fun gaming features to constantly keep you entertained while doing good!<br /><br />';
    html += 'Our sponsors contribute money to save the Rainforests as you use this application.  After expenses we will donate ';
    html += 'revenue to funding a portfolio of reforestation projects.  Thanks for joining us in this mission!  ';
    html += 'We hope you have fun!<br /><br />';
    html += 'The most recent donation was made June 1st, 2008 to the <b> Adopt An Acre </b>';
    html += 'program of the Nature Conservancy. <br/><br/> ';
    html += 'The (Lil) Green Patch community, working together, was able to save 29,259,567 Sqft of Rainforest so far!  ';
    html += 'We are very excited about our progress and are confident we can make an even larger impact in the future!<br /><br />';
    html += '</div>';
    
    setTimeout("showInstallAppBox();", 5000);

    return html;
}

function showInstallAppBox() {
    var imgDiv = document.getElementById("myspace-about-img");
    var instBox = document.getElementById("install-app-box");
    
    imgDiv.style["opacity"] = "0.50";
        instBox.style["visibility"] = "visible";
}

function generateMaintenanceHtml(userName) {

    var html = '';
    
    html += '<h1 style="font-family:\'Comic Sans MS\', Verdana; color:#006600">Under Maintenance</h1> ';
    html += ' ';
    html += '<table width="100%" align="center"> ';
    html += '  <tr width="100%" align="center"> ';
    html += '    <td width="50%" align="center"> ';
    html += '      <div style="  text-align: center;  font-weight: normal;  font-variant: small-caps;  font-size: 18px;  text-transform: none;  padding-top: 0px;  padding-bottom: 0px;  padding-left: 10px;  padding-right: 10px;  color: #006600;"> ';
    html += '        Help fight Global Warming! Together, We can make a Difference. ';
    html += '      </div> ';
    html += '    </td> ';
    html += '    <td width="8%" align="center"> ';
    html += '      <img src="http://greenpatch.s3.amazonaws.com/earth.png"/> ';
    html += '    </td> ';
    html += '    <td width="30%" align="center"> ';
    html += '      <div style="  font-size: 16px;  font-family: "sans-serif";  text-align: right;  color: #006600;  margin-right: 2px;" class="squareFeetCounter">Thanks for all your support ' + userName + ' ! ';
    html += '    </td> ';
    html += '  </tr> ';
    html += '</table> ';
    html += ' ';
    html += '<div style="border-top: 0px; border-left: 0px; border-right: 0px; border-bottom: 1px solid #BEBEBE; text-align: center; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; font-size: 11px;"> ';
    html += '</div> ';
    html += ' ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += ' ';
    html += '<div style="  border-width: 0px;  margin-left: 10px;  margin-right: 10px;  margin-top: 10px;  margin-bottom: 20px;  text-align: center;  font-weight: normal;  font-size: 20px;  text-transform: none;  color: #006600;  font-family:\'Comic Sans MS\', verdana;" > ';
    html += '  The (Lil) Green Patches are going through a growth spurt and need to be hidden from the sun (how embarrasssing!).  They\'ll be back up again shortly to drink in your TLC! ';
    html += '</div> ';
    html += ' ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    html += '<br/> ';
    
    return html;
}

function checkMaintenanceMode(obj) {

    for (key in obj.data) {
        if(key == "isInMaintenanceMode") {
            if (obj.data.isInMaintenanceMode == true) {
                var html = generateMaintenanceHtml(_VIEWER.getDisplayName());
                document.write(html)
		        gadgets.window.adjustHeight();
                return true;
            }
        }
    }   
    return false;
}

function log(message, logLevel) {
	var url = _BASE_URL + "os/greentrees/app-main.php";
	url += "?userId=" + _VIEWER.getId(); // 250203460
	url += "&userType=" + _USER_TYPE;
	url += "&op=logMessage";
	url += "&message=message";
	url += "&logLevel=logLevel";
	url += "&uq=" + (new Date().getUTCMilliseconds());
	//alert("at B -> " +url );
	var params = {};
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, null, params);
}
