// ========== REQUEST ====================================================================================================
var OS_USER_TYPE = "myspace";
var SERVER_URL = "http://www.easysurveymaker.com/surveymaker/";
var SERVICE_URL = SERVER_URL+"SurveyService";
var GIFT_URL = "http://funpuzzle.teaseplay.com/giftmanager/";
var GIFT_SERVICE_URL = GIFT_URL+"GiftService";
var DOMAIN_SERVICE_URL = SERVER_URL+"DomainService";
var MAKER_URL = "http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=101193";
var QUIZ_MAKER_URL="http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=115528";
var KINKY_URL="http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=114311";
var TEST_MAKER_URL = "http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=116330"
var KINKY_ID=2479;
var IMG_URL = SERVER_URL+"img/";
var SURVEY_IMG_URL = "http://www.easysurveymaker.com/surveymaker/uploadedImgs/";
var USER_COUNT = 10;
var GIFT_COUNT = 10;
var PAGE_GIFT;
var RECEIVERS_COUNT = 15;
var COMMUNITY_COUNT = 16;
var APP_COUNT = 15;
var Request = new Object();
var user;
var userId=null, userThumbnail, userName, userProfile, userAge, userGender,userCountry, userCity,userRegion, userPostalCode;
var ownerName, ownerId, ownerAge, ownerGender;
var friendsData;
var allContent;
var container;
var errorDiv;
var contId;
var isIE = window.ActiveXObject ? true : false;
var isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
var isAdmin = false;
var active;
var recently;
var creative;
var popularPlayers;
var giftGivers;
var sfriends = new Array();
var msgTypes = ["", "", "Kiss", "Hug", "Wink", "Beer", "Flower", "Ice-cream", "Smile"];
var imgNames = ["", "", "sendKiss", "sendHug", "sendWink", "sendBeer", "sendFlower", "sendIcecream", "sendSmile"];
var getMakerUrl=function(){
	var makerUrl=surveyType==SURVEY_TYPE_SURVEY?MAKER_URL:QUIZ_MAKER_URL;
	if(typeof surveyId!='undefined'&& surveyId==KINKY_ID)
	{
		makerUrl=KINKY_URL;
	}
	return makerUrl;
}
var NOT_TYPE_KISS = 2;
var NOT_TYPE_HUG = 3;
var NOT_TYPE_WINK = 4;
var NOT_TYPE_BEER = 5;
var NOT_TYPE_FLOWER = 6;
var NOT_TYPE_ICECREAM = 7;
var NOT_TYPE_SMILE = 8;
var STATUS_TIME = 900000;
var osContainer;
var selectAllBool = true;
var AD_SOCIAL_MEDIA_ID = 1;
var AD_CUBICS_ID = 2;
var AD_TATTO_ID = 3;
var AD_MAKER_ID = 4;
var AD_SURVEY_ID = 5;
var AD_ADTURNS1_ID = 6;
var AD_ADTURNS2_ID = 7;
var AD_SURVEY_LINK_TO_SUPER_ID = 8;
var AD_ADTURNS3_ID = 9;
var AD_SOCIAL_MEDIA_SUPER_ID = 10;
var AD_SURVEY_FOR_SUPER_ID = 11;
var AD_CUBICS_SUPER_ID = 12;
var AD_ADTURNS1_SUPER_ID = 13;
var AD_TATTO_SUPER_ID = 14;
var AD_PORTAL_ID = 15;
var AD_PORTAL_SUPER_ID = 16;
var AD_GAME_ID = 17;
var AD_GAME_SUPER_ID = 18;
var AD_GOOGLE_ID = 19;
var AD_GOOGLE_SUPER_ID = 20;
var AD_ROCKYOU_ID = 21;
var AD_ROCKYOU_SUPER_ID = 22;
var AD_ROTATED_ADTURNS = 23;
var AD_ROTATED_ADTURNS_SUPER_ID = 24;

var GENDER_MALE = 0;
var GENDER_FEMALE = 1;

var IS_APPROVED = false;

var SURVEY_TYPE_SURVEY = 1;
var SURVEY_TYPE_QUIZZ = 2;

var APP_NAME = "";
var APP_NAMES = "";

var MAIN_DATA = undefined;
var V_LIBRARY_OS_CONTAINER = opensocial.Container.get();
var MS_OS_TOKEN = MyOpenSpace.MySpaceContainer.OSToken;
var frList = new ViewerFriendsList();
var ALLSIZE = frList.allSize;
var PAGE_FRIEND = 1;
var minPage = 1;
var maxPage = 9;
var m_callback;
var f_callback;

var allowedCities =
	[ "atlanta", "Baltimore", "Chicago", "Cincinnati", "Cleveland", "Columbus", "Dallas", "denver", 
	"Fort Worth", "Fresno", "houston", "Indianapolis", "Jacksonville", "Los Angeles", "Louisville", "Miami", 
	"New York", "Newark", "Oklahoma City", "Orlando", "Philadelphia", "Phoenix", "Pittsburgh", "portland", 
	"Richmond", "Riverside", "Rochester", "sacramento", "San Antonio", "San Diego", "San Jose", "Seattle", 
	"springfield", "Tampa", "Washington", "Wichita", "Wilmington"
	];

var isCityFromAllowedList = function(city){
	for (var i=0;i<allowedCities.length;i++){
		if (city == allowedCities[i])
			return true;
	}
	return false;
}

var resizer = opensocial.Container.get();

Request.sendPOST = function(url, data, responseHandler) {
	var os_params = {};
	os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	os_params[gadgets.io.RequestParameters.POST_DATA] = data;
	// gadgets.io.encodeValues(data) data should be object not astring
	gadgets.io.makeRequest(url, responseHandler, os_params);
}
Request.sendGET = function(url, responseHandler) {
	var os_params = {};
	os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
	os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, responseHandler, os_params);
}
var selectedTab = "";
var selectTab = function(tabName){
	var tabDivs = $("tabContainer").getElementsByTagName("td");	
	for (var i=0;i<tabDivs.length;i++){
		if (tabDivs[i].getAttribute("name") == tabName){
			tabDivs[i].className = "selected";
		}else{
			tabDivs[i].className = "";
		}
	}
	selectedTab = tabName;
	if (tabName == "home" && typeof newDesign != 'undefined' && newDesign) {
		APP_COUNT=10;
		RECEIVERS_COUNT=6;
	}else{
		APP_COUNT=15;
		RECEIVERS_COUNT=15;
	}
}
var showLoading = function(){
	container.innerHTML = "<div class=loading>Loading...</div>";
	showError("");
}
var $ = function(id){
	return document.getElementById(id);
}

var roundToDecimals = function(v, decimals, noCommas) { 
     if (decimals == null)
         decimals = 2;
     var x = Math.pow(10, decimals);
     var s = String(Math.round(v * x) / x); 
     var p = s.indexOf('.');
     if (p < 0) {
         p = s.length;
         s += '.';
     }
     for (var i = s.length - p - 1; i < decimals; i++)
         s += '0';
     if (noCommas == true) // Treats null as false.
         return s;
     var arr    = s.replace('-', '').split('.');
     var result = [];
     var first  = true;
     while (arr[0].length > 0) { // LHS of decimal point.
         if (!first)
             result.unshift(',');
         result.unshift(arr[0].slice(-3));
         arr[0] = arr[0].slice(0, -3);
         first = false;
     }
     if (decimals > 0) {
         result.push('.');
         var first = true;
         while (arr[1].length > 0) { // RHS of decimal point.
             if (!first)
                 result.push(',');
             result.push(arr[1].slice(0, 3));
             arr[1] = arr[1].slice(3);
             first = false;
         }
     }
     if (v < 0)
         return '-' + result.join('');
     return result.join('');
}
////////////////////////////////////////////// SURVEYS // //////////////////////////////////////////////////
var recentlyCreatedPage = 0;
var popularPage = 0;
var todayPage = 0;
var recentlyTakenPage = 0;
var activePage = 0;
var creativePage = 0;


function applyAds(adDiv, adHolderDiv){
    var adTop = document.getElementById(adDiv);
        adTop.parentNode.removeChild(adTop);
    var adHolder = document.getElementById(adHolderDiv);
        adHolder.appendChild(adTop);
        adTop.style.display='block';
}


var applyMiddleAd = function(from, to){

	if(document.getElementById(from)){
		var middleAdText = document.getElementById(from).innerHTML;
		if(document.getElementById(to)) document.getElementById(to).innerHTML = middleAdText;
	}else{
		var adStr = '<iframe frameborder="0" src = "http://adturns.com/ad.php?c=67" width="728" height="90" border="0" style="border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>';
		if(document.getElementById(to)) document.getElementById(to).innerHTML = adStr;
	}
}

/*
	var applyMiddleAd = function(from, to){
	    var adDivMiddle = document.getElementById("adDivMiddle");
	    var divs = adDivMiddle.getElementsByTagName("div");
	    for(var j=0; j<divs.length; j++){
	    	var childDiv = divs[j].getElementsByTagName("div");
	    	 for(var i=0; i<childDiv.length; i++){
	    		 var id = childDiv[i].getAttribute("id");
	    		 if(id != null)
	    		 if(id.indexOf("sr")>=0){
	    			if(childDiv[i].hasChildNodes){
	                     setTimeout("copyMiddleAd('"+from+"','"+to+"')",2000);
			    	 }else{
			    	     setTimeout("applyMiddleAd('"+from+"','"+to+"')",1000);
			    	 }
	    	     }
	    	
	           }
	   }
	}
	
	var copyMiddleAd= function(from, to){	
		var adDivMiddle =  document.getElementById(from);
		if(adDivMiddle){
			var middleAdText = adDivMiddle.innerHTML;
			
			document.getElementById(to).innerHTML = middleAdText;
		}else{
			var adStr = '<iframe frameborder="0" src = "http://adturns.com/ad.php?c=67" width="728" height="90" border="0" style="border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>';
			if(document.getElementById(to))
				document.getElementById(to).innerHTML = adStr;
		}
	}
*/
var getPublicSurveys = function(){
	selectTab("public");
	var str = 
			  "<div  class=title>Search Survey "+
			  " <input id='textsearch' type='text'> "+
			  " <input id='search' type='button' value='Search' onclick='req_surveybytitle(1)'></div>"+
			  "<div style='border: 1px solid #d8deee' id='searchsurvey'></div>"+	
			  "<table><tr><td></td></tr></table>"+	
			  "<div class=title>Active Today</div>"+
			  "<div class=content id='today'><div class=loading>Loading...</div></div>"+
			  '<div id="ad3" style="height:90px; weight:728px;overflow:hidden;">'+
			  // getAd(3)+
			  '</div>'+
			   "<div class=title>Just Taken</div>"+
			  "<div class=content id='just_taken'><div class=loading>Loading...</div></div>"+	
			  '<div id="ad4" style="height:90px; weight:728px;overflow:hidden;">'+
			  // getAd(4)+
			  '</div>'+
			  "<div class=title>Most Popular</div>"+
			  "<div class=content id='popular'><div class=loading>Loading...</div></div>"+
			  '<div id="ad5" style="height:90px; weight:728px;overflow:hidden;">'+
			  // getAd(5)+
			  '</div>'+
			  "<div class=title>Just Created</div>"+
			  "<div class=content id='just_created'><div class=loading>Loading...</div></div>";
	container.innerHTML = str;
	
	
	recentlyCreatedPage = 1;
    popularPage = 1;
    todayPage = 1;
	Request.sendGET(SERVICE_URL+"/allSurveys/1/"+APP_COUNT, resp_getPublicSurveys);
	Request.sendGET(SERVICE_URL+"/getRecentlyTaken/111", resp_getRecently);
	
	setTimeout('applyMiddleAd("adMiddle", "ad3"),10000');
	setTimeout('applyMiddleAd("adMiddle", "ad4"),12000');
	setTimeout('applyMiddleAd("adMiddle", "ad5"),14000');
// setTimeout("sr_gof()", 7000);
}



var resp_getPublicSurveys =  function(response){
	if (selectedTab != "public") return;
	var data = response.data;
	var str = getSurveysHTML(data.recently, "req_getRecentlyCreatedSurveys", "recentSrv1", null, 2);
	$("just_created").innerHTML = "<div id=recentSrv1>"+str+"</div>";
	var str = getSurveysHTML(data.popular, "req_getPopularSurveys", "popularSrv1", null, 2);
	$("popular").innerHTML = "<div id=popularSrv1>"+str+"</div>";
	var str = getSurveysHTML(data.today, "req_getTodaySurveys", "todaySrv1", null, 2);
	$("today").innerHTML = "<div id=todaySrv1>"+str+"</div>";
	selectTab("public");
	gadgets.window.adjustHeight();	
}

var resp_getRecently = function(response){
	var str = "<table width=100%>";
	var taken = response.data.recently.users;
	var colCount=3;
	var obj;
// if(typeof newDesign!='undefined'&&newDesign)
// colCount=2;
	for (var i=0;i<taken.length;i++){
		obj = taken[i];
		var link = (surveyType == SURVEY_TYPE_QUIZZ ? QUIZ_MAKER_URL : MAKER_URL)+"&appParams=%7B%22surveyId%22%3A"+obj.id+"%7D";
		// var link = surveyType == SURVEY_TYPE_QUIZZ ?
		// QUIZ_MAKER_URL+"&appParams=%7B%22surveyId%22%3A"+obj.id+"%7D" :
		// obj.url;
		// var link = obj.url;
		var target = "target=_blank";
		if (isSuperApp || link == null || link.indexOf("null")>0){
			link = "javascript:loadSurvey("+obj.id+")";
			target = "";
		}
		if (i % colCount == 0) str+= "<tr>";
		str += "<td width=30%>"+
					"<table><tr>"+
						"<td class='img' class='smallImg'>"+
							(obj.user.thumbnail ? "<a href='' ><img class=smallImg src='"+obj.user.thumbnail+"' /></a>" : "&nbsp;" ) +
						"</td>"+
						"<td>"+
							"<div><a "+target+" href='"+link+"' >"+obj.title+"</a>"+
							"<div>User: <a target='_blank' title='"+obj.user.name+"' href='"+obj.user.profile+"' >"+obj.user.name.substring(0,40)+"</a><div>"+
						"</td>"+
					"</tr></table>"+
				"</td>";
		if (i % colCount == colCount-1) str+= "</tr>";
	}
	str += "</table>";
	$("just_taken").innerHTML = "<div>"+str+"</div>";
	gadgets.window.adjustHeight();	
}

var req_getRecentlyCreatedSurveys = function(nextPage){
	if ($("recentSrv"+nextPage)){
		$("recentSrv"+nextPage).style.display = "";
		$("recentSrv"+(nextPage-1)).style.display = "none";
	}else{
		$("recentSrv"+recentlyCreatedPage).style.display = "none";
		recentlyCreatedPage++;
		$("just_created").innerHTML += "<div id=recentSrv"+recentlyCreatedPage+">Loading...</div>";
		Request.sendGET(SERVICE_URL+"/recentlyCreatedSurveys/"+recentlyCreatedPage+"/"+APP_COUNT, resp_getRecentlyCreatedSurveys);
	}
}

var req_getPopularSurveys = function(nextPage){
	if ($("popularSrv"+nextPage)){
		$("popularSrv"+nextPage).style.display = "";
		$("popularSrv"+(nextPage-1)).style.display = "none";
	}else{
		$("popularSrv"+popularPage).style.display = "none";
		popularPage++;
		$("popular").innerHTML += "<div id=popularSrv"+popularPage+">Loading...</div>";
		Request.sendGET(SERVICE_URL+"/popularSurveys/"+popularPage+"/"+APP_COUNT, resp_getPopularSurveys);
	}
}

var req_getTodaySurveys = function(nextPage){
	if ($("todaySrv"+nextPage)){
		$("todaySrv"+nextPage).style.display = "";
		$("todaySrv"+(nextPage-1)).style.display = "none";
	}else{
		$("todaySrv"+todayPage).style.display = "none";
		todayPage++;
		$("today").innerHTML += "<div id=todaySrv"+todayPage+">Loading...</div>";
		Request.sendGET(SERVICE_URL+"/todaySurveys/"+todayPage+"/"+APP_COUNT, resp_getTodaySurveys);
	}
}

var resp_getRecentlyCreatedSurveys = function(response){
	var data = response.data;
	var prevId = recentlyCreatedPage>1 ? "recentSrv"+(recentlyCreatedPage-1) : null;
	var str = getSurveysHTML(data, "req_getRecentlyCreatedSurveys", "recentSrv"+recentlyCreatedPage, prevId, recentlyCreatedPage+1);
	$("recentSrv"+recentlyCreatedPage).innerHTML = str;
}

var resp_getPopularSurveys = function(response){
	var colCount = 3;
	if (selectedTab == "home" && typeof newDesign != 'undefined' && newDesign) {
		colCount = 2;
	}
	var data = response.data;
	var prevId = popularPage>1 ? "popularSrv"+(popularPage-1) : null;
	var str = getSurveysHTML(data, "req_getPopularSurveys", "popularSrv"+popularPage, prevId, popularPage+1, colCount);
	$("popularSrv"+popularPage).innerHTML = str;
}

var resp_getTodaySurveys = function(response){
	var data = response.data;
	var prevId = todayPage>1 ? "todaySrv"+(todayPage-1) : null;
	var str = getSurveysHTML(data, "req_getTodaySurveys", "todaySrv"+todayPage, prevId, todayPage+1);
	$("todaySrv"+todayPage).innerHTML = str;
}

var getSurveysHTML = function(data, handler, curId, prevId, nextPage, colCount){
	if(typeof colCount=='undefined' || colCount==null){
		colCount=3;
	}
	var srv;
	var str = "<table width=100%>";
	var surveys = data.surveys;
	var creator, date, male;
	for (var i=0;i<surveys.length;i++){
		srv = surveys[i];
		if (i % colCount == 0) str+= "<tr>";
		male = Math.round(srv.male*100/srv.popularity);
		var link = (surveyType == SURVEY_TYPE_QUIZZ ? QUIZ_MAKER_URL : MAKER_URL)+"&appParams=%7B%22surveyId%22%3A"+srv.id+"%7D";
		// var link = surveyType == SURVEY_TYPE_QUIZZ ?
		// QUIZ_MAKER_URL+"&appParams=%7B%22surveyId%22%3A"+srv.id+"%7D" :
		// srv.url;
		// var link = srv.url;
		var target = "target=_blank";
		if (isSuperApp || link == null || link.indexOf("null")>0 || link.indexOf("myspace.com")<0){
			link = "javascript:loadSurvey("+srv.id+")";
			target = "";
		}
		str += "<td width=33%>"+
					"<table><tr>"+
						"<td class='img' class='smallImg'>"+
							"<a "+target+" href='"+link+"' ><img class=smallImg src='"+SURVEY_IMG_URL+srv.imgUrl+"' /></a>"+
						"</td>"+
						"<td>"+
							"<div><a "+target+" href='"+link+"' >"+srv.title+"</a></div><br>";
							if (handler == "req_getRecentlyCreatedSurveys"){
							str+=
							"<div title='"+srv.creatorName+"' >Author: <span style='color:#3B5998'>"+srv.creatorName.substr(0,30)+"</span></div>";
							}else if (srv.popularity){
							str+=
							"<div>Taken: <span style='color:#3B5998'>"+srv.popularity+"</span><div>";
							}
						str+=
						"</td>"+	
					"</tr></table>"+
				"</td>";
		if (i % colCount == colCount-1) str+= "</tr>";
	}
	if (data.available || prevId){
		str += "<tr><td colspan=3 align=right>";
					if (prevId)
					str+=
					"<a href='javascript:prevPage(\""+curId+"\" , \""+prevId+"\")' style='margin-right: 10px;'>Previous</a>";
					if (data.available)
					str+=
					"<a href='javascript:"+handler+"("+nextPage+")' style='margin-right: 10px;'>Next</a>"+
				"</td></tr>";
	}
	str += "</table>";
	return str;
}

var prevPage = function(curId, prevId){
	try{
		$(curId).style.display = "none";
		$(prevId).style.display = "";
	}catch(e){}
}
//////////////////////////////////////// USERS // ///////////////////////////////////////////
var getUsers = function(){
	selectTab("users");
	showLoading();
	var str = "<div class=title>Most Creative</div>"+
			  "<div class=usrcontent><div id='creative'><div class=loading>Loading...</div></div></div>"+
			  '<div id="ad3"  style="height:90px; weight:728px;overflow:hidden;"></div>'+
			  // '<div >'+getAd(3)+'</div>'+
			  "<div class=title>Generous Giftgivers</div>"+
			  "<div class=usrcontent ><div id='giftGivers'><div class=loading>Loading...</div></div></div>"+
			  '<div id="ad4"  style="height:90px; weight:728px;overflow:hidden;"></div>'+
			  // '<div >'+getAd(4)+'</div>'+
	          "<div class=title>Recently Taken</div>"+
			  "<div class=usrcontent ><div id='just_taken'><div class=loading>Loading...</div></div></div>"+
			  '<div id="ad5"  style="height:90px; weight:728px;overflow:hidden;"></div>'+
			  // '<div >'+getAd(5)+'</div>'+
			   "<div class=title>Most Popular Giftreceivers</div>"+
			  "<div class=usrcontent ><div id='popularPlayers'><div class=loading>Loading...</div></div></div>";		
	container.innerHTML = str;
	activePage = 1;
	creativePage = 1;
	Request.sendGET(SERVICE_URL+"/bestUsers/"+USER_COUNT, resp_getBestUsers);
	Request.sendGET(SERVICE_URL+"/allUsers/"+USER_COUNT, resp_getUsers);
	
	
	setTimeout('applyMiddleAd("adMiddle", "ad3"),10000');
    setTimeout('applyMiddleAd("adMiddle", "ad4"),12000');
    setTimeout('applyMiddleAd("adMiddle", "ad5"),14000');

}

var resp_getBestUsers = function(response){
    var popularPlayersData = response.data.popularPlayers;
	var giftGiversData = response.data.giftGivers;
    popularPlayers = new Paging("popularPlayers", popularPlayersData.users.length,SERVICE_URL+"/popularplayers/"+USER_COUNT, popularPlayersData, "popularPlayers");
	giftGivers = new Paging("giftGivers", giftGiversData.users.length, SERVICE_URL+"/giftGivers/"+USER_COUNT, giftGiversData, "giftGivers");	
	gadgets.window.adjustHeight();
}

var resp_getUsers = function(response){
    //var activeData = response.data.active;
	var recentlyData = response.data.recently;
	var creativeData = response.data.creative;
	
	// active = new Paging("active", activeData.users.length,
	// SERVICE_URL+"/activeUsers/"+USER_COUNT+(surveyId==1 ? "" : "/"+surveyId),
	// activeData, "active");
	recently = new Paging("recently", recentlyData.users.length, "", recentlyData, "just_taken");	
	creative = new Paging("creative", creativeData.users.length, SERVICE_URL+"/creativeUsers/"+USER_COUNT, creativeData, "creative");		
	gadgets.window.adjustHeight();
	
}
var osVersion = "0.7";
var user = null;
function getUser() {
	 
    if(typeof surveyId == "undefined" || surveyId == null || surveyId == "null") surveyId = 1;
	if(typeof opensocial.Activity.MediaItem!='undefined'){
		getUser_os7();
	}else{
		getUser_os8();
	}

};

function getUser_os8(){
    osVersion = "0.8";
	osContainer = opensocial.Container.get();
	var req = opensocial.newDataRequest();
   
	var paramViewer = {};
	paramViewer[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] =
			[opensocial.Person.Field.PROFILE_URL,
			 opensocial.Person.Field.NAME,
			 opensocial.Person.Field.THUMBNAIL_URL,
			 opensocial.Person.Field.GENDER];
     
	req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER, paramViewer), "viewer");
    // req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER,
	// paramViewer), "owner");
	req.send(resp_getUser_os8);
	
	checkPromotion();
}
function getUser_os7(){
	osVersion = "0.7";
	osContainer = opensocial.Container.get();
    var req = opensocial.newDataRequest();
    var paramViewer = {};
    paramViewer[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] =
    [MyOpenSpace.Person.Field.COUNTRY,
     MyOpenSpace.Person.Field.CITY,
     MyOpenSpace.Person.Field.POSTALCODE,
     MyOpenSpace.Person.Field.REGION, 
     MyOpenSpace.Person.Field.THUMBNAIL_URL, 
     MyOpenSpace.Person.Field.NAME, 
     MyOpenSpace.Person.Field.AGE,
     MyOpenSpace.Person.Field.GENDER,
     MyOpenSpace.Person.Field.PROFILE_URL];
     
     var paramOwner = {};
     paramOwner[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] =
    [MyOpenSpace.Person.Field.NAME, 
     MyOpenSpace.Person.Field.AGE,
     MyOpenSpace.Person.Field.GENDER];
     
    req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER, paramViewer), "viewer");
    req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER, paramOwner), "owner");
    req.send(resp_getUser_os7);
    
    checkPromotion();
}

function resp_getUser_os7(data) {

	var msg = null;
	try{
	  	user = data.get("viewer").getData(); 
		// if(osVersion == "0.7"){
		  	userId = user.getId();
			userName 	= user.getField(opensocial.Person.Field.NAME);
		// }else if(osVersion == "0.8"){
		// userId = user.getField(opensocial.Person.Field.ID);
		// userId = parseInt(userId.substring(userId.lastIndexOf(":")+1));
		// userName =
		// user.getField(opensocial.Person.Field.NAME).fields_.unstructured;
		// }
		userCountry = user.getField(MyOpenSpace.Person.Field.COUNTRY)== "undefined" ? "" : user.getField(MyOpenSpace.Person.Field.COUNTRY);
		userCity = user.getField(MyOpenSpace.Person.Field.CITY)== "undefined" ? "" :user.getField(MyOpenSpace.Person.Field.CITY);
		userRegion = user.getField(MyOpenSpace.Person.Field.REGION)== "undefined" ? "" :user.getField(MyOpenSpace.Person.Field.REGION);
		userPostalCode = user.getField(MyOpenSpace.Person.Field.POSTALCODE)== "undefined" ? "" : user.getField(MyOpenSpace.Person.Field.POSTALCODE);
		userThumbnail = user.getField(opensocial.Person.Field.THUMBNAIL_URL)== "undefined" ? "" :user.getField(opensocial.Person.Field.THUMBNAIL_URL);
		userProfile = user.getField(opensocial.Person.Field.PROFILE_URL)== "undefined" ? "" :user.getField(opensocial.Person.Field.PROFILE_URL);
		userAge = user.getField(MyOpenSpace.Person.Field.AGE);
		userGender = user.getField(MyOpenSpace.Person.Field.GENDER);
		
		var owner = data.get("owner").getData(); 

		// if(osVersion == "0.7"){
			ownerId =   owner.getId();
			ownerName = owner.getField(opensocial.Person.Field.NAME);
		// }else if(osVersion == "0.8"){
		// ownerId = owner.getField(opensocial.Person.Field.ID);
		// ownerId = parseInt(userId.substring(ownerId.lastIndexOf(":")+1));
		// ownerName =
		// owner.getField(opensocial.Person.Field.NAME).fields_.unstructured;
		// }
		ownerAge = owner.getField(MyOpenSpace.Person.Field.AGE);
		ownerGender = owner.getField(MyOpenSpace.Person.Field.GENDER);
		ownerGender = ownerGender=="Female" ? 1 : 0;
		userGender = userGender=="Female" ? 1 : 0;
		if (userAge<14){
			userAge = 0;
		}else if (userAge<17){
			userAge = 1;
		}else if (userAge<20){
			userAge = 2;
		}else if (userAge<26){
			userAge = 3;
		}else if (userAge<35){
			userAge = 4;
		}else if (userAge<46){
			userAge = 5;
		}else{
			userAge = 6;
		}
		if(typeof ownerGender == "undefined") ownerGender = 1;
	}catch(ex){
		if (surveyId != 1){
			msg = "To load the \""+surveyTitle+"\" survey you should add this application. Click on the link above.";
		}else if (surveyType == SURVEY_TYPE_QUIZZ){
			msg = "Install the amazing Quizzes app. Lots of quizzes in one place, also ability to create your own quizzes!!! Click on the link above.";
		}else if (surveyType == SURVEY_TYPE_SURVEY){
			msg = "Install the amazing Surveys app. Lots of surveys in one place, also ability to create your own surveys!!! Click on the link above.";
		}
	}
	if (userId == null){
		if (msg == null){
			msg = "User authorization failed. Check if you are logged in and refresh the page.";
		}
		try{
			hideMakerTabs(msg);
		}catch(e){
			hideTabs(msg);
		}
	}else{
        saveUser(); 
		isAdmin = userId == 330343129;
		try{
			initMaker();
			
		}catch(e){
			init();
		}
	}
	
}

function resp_getUser_os8(data){
	try{

	 user = data.get("viewer").getData();
     userId = user.getField(opensocial.Person.Field.ID);
     userId = parseInt(userId.substring(userId.lastIndexOf(":")+1));
    	
     userThumbnail 	= user.getField(opensocial.Person.Field.THUMBNAIL_URL);
     userProfile 	= user.getField(opensocial.Person.Field.PROFILE_URL);
     userName 		= user.getField(opensocial.Person.Field.NAME).fields_.unstructured;
     userGender     = user.getField(opensocial.Person.Field.GENDER);
     userGender = userGender=="Female" ? 1 : 0;
		if (userAge<14){
			userAge = 0;
		}else if (userAge<17){
			userAge = 1;
		}else if (userAge<20){
			userAge = 2;
		}else if (userAge<26){
			userAge = 3;
		}else if (userAge<35){
			userAge = 4;
		}else if (userAge<46){
			userAge = 5;
		}else{
			userAge = 6;
		}
	}catch(ex){
		if (surveyId != 1){
			msg = "To load the \""+surveyTitle+"\" survey you should add this application. Click on the link above.";
		}else if (surveyType == SURVEY_TYPE_QUIZZ){
			msg = "Install the amazing Quizzes app. Lots of quizzes in one place, also ability to create your own quizzes!!! Click on the link above.";
		}else if (surveyType == SURVEY_TYPE_SURVEY){
			msg = "Install the amazing Surveys app. Lots of surveys in one place, also ability to create your own surveys!!! Click on the link above.";
		}
	}
	if (userId == null){
		if (msg == null){
			msg = "User authorization failed. Check if you are logged in and refresh the page.";
		}
		try{
			hideMakerTabs(msg);
		}catch(e){
			hideTabs(msg);
		}
	}else{
		saveUser(); 
		isAdmin = userId == 330343129;
		try{
			initMaker();
		}catch(e){
			init();
		}
	}
}
var saveUser = function (){
	
	var data="query=addUser&"+getUserPostData();
	if(!OS_USER_TYPE) OS_USER_TYPE = "myspace";
	if(!surveyType)  surveyType = 1;
	data+="&surveyId="+surveyId+"&surveyType="+surveyType;
	Request.sendPOST(SERVICE_URL, data, doNothing);
	
}

var getUserPostData = function(){
	var str = "userName="+encodeURIComponent(userName)+
			  "&thumbnail="+encodeURIComponent(userThumbnail)+
			  "&country="+encodeURIComponent(userCountry)+
			  "&city="+encodeURIComponent(userCity)+
			  "&region="+encodeURIComponent(userRegion)+
	    	  "&postalCode="+encodeURIComponent(userPostalCode)+
    		  "&profile="+encodeURIComponent(userProfile)+
    		  "&age="+encodeURIComponent(userAge)+
    		  "&gender="+encodeURIComponent(userGender)+
	    	  "&userId="+userId;
	return str;
}

var mailFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var getFriendById = function(id){
	var friends = friendsData.get("friends").getData().asArray();
	for (var i=0;i<friends.length;i++){
		if (friends[i].getId() == id) return friends[i];		
	}
}
	
var removePopUp = function(ev){
	var div = $("popUpCont");
   	var ev = (ev) ? ev : window.event;
	var target = ev.srcElement || ev.target;
    if(div.innerHTML != "" && target.name != "popup"){
       div.innerHTML = "";
       document.onclick = null;
  	}
}

var curPage = 1;
var page = 1;

var sendMsgToUser = function(msgType, obj, id, containerId){
	var count = 1;
	var handler;
	var infoCell = $(containerId+"_info");
	
	var resp_sendMsg = function(response){
		try{
			obj.onlclick = handler;
			var div = $("popUpCont");
			div.innerHTML = "";
	        document.onclick = null;
	        infoCell.innerHTML = "";
	    }catch(e){
	    	;
	    }
	}
		
	if (containerId == "friend"){
		var friend = getFriendById(id);
		var content = "Hey "+friend.getField(opensocial.Person.Field.NAME)+"<br>"+
		"<b>Take this "+msgTypes[msgType]+" from me</b><br>"+
		"<img src='"+IMG_URL+msgTypes[msgType]+".jpg' >"+
		"<b>You are suuuper awesome person!!!</b><br<br>"+
		"Connections are great....but boys and girls are better. "+
		"Take the <a href='"+surveyURL+"'>"+surveyTitle+"</a> to see new people that answered "+
		"similar to me, and make some new friends in the process.<br>"+
		"<a href='"+surveyURL+"'><img src='"+surveyImgUrl+"'></a>";
		postTo_("Take this gift from me :)", content, friend, "COMMENTS", resp_sendMsg);
		
	}else{
		var data = "query=sendMsg&userId="+userId+"&surveyId="+surveyId+"&msgType="+msgType+"&userIds="+id;
		if (count>0 && userId != null){
			infoCell.innerHTML = "Sending...";
			Request.sendPOST(SERVICE_URL, data, resp_sendMsg);
		}
	}
}

var selectAll = function(checked, id){
	var page = $(id).getAttribute("curPage");
	var checkboxes = $(id+"_"+page).getElementsByTagName("input");
	for(var i=0;i<checkboxes.length;i++){
	   checkboxes[i].checked = checked;
	}
}

var sendMsg = function(msgType, obj, containerId){
	var userIds = "";
	var count = 0;
	var handler;
	var infoCell = $(containerId+"_info");
	var resp_sendMsg = function(response){
		obj.onlclick = handler;
		infoCell.innerHTML = "";
	}
	var pg = $(containerId).getAttribute("curPage");
	var inputs = $(containerId+"_"+pg).getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		if (inputs[i].checked == true){
			userIds += inputs[i].id+",";
			count++;
		}
	}
	userIds = userIds.substring(0, userIds.length-1);
	var data = "query=sendMsg&userId="+userId+"&surveyId="+surveyId+"&msgType="+msgType+"&userIds="+userIds;
	if (count>0 && userId != null){
		infoCell.innerHTML = "Sending...";
		Request.sendPOST(SERVICE_URL, data, resp_sendMsg);
	}
}

var getNotifications = function(id, obj, containerId){
    document.onclick = this.removePopUp; 
   	var top_ = findPosY(obj);
   	var left_ = findPosX(obj);
   	
   	var str = "<table background='"+IMG_URL+"panelBackground.png'><tr>"+
	                "<td  class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_SMILE+",this,"+id+", \""+containerId+"\")'>"+
	                   "<img name='popup' src='"+IMG_URL+"smile.png'/>"+
	                "</td>"+
	                "<td  class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_WINK+",this,"+id+", \""+containerId+"\")'>"+
	                   "<img name='popup' src='"+IMG_URL+"wink.png' />"+
	                "</td>"+
	                "<td class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_HUG+",this,"+id+", \""+containerId+"\")'>"+
	                   "<img name='popup' src='"+IMG_URL+"hug.png' />"+
	                "</td>"+
	                "<td class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_KISS+",this,"+id+", \""+containerId+"\")'>"+
	                   "<img name='popup' src='"+IMG_URL+"kiss.png' />"+
	                "</td></tr></table>"+
	           "<table background='"+IMG_URL+"panelBackground.png'><tr>"+
	                "<td><img name='popup' src='"+IMG_URL+"smile.png' /><img name='popup' src='"+IMG_URL+"topslaq.png' /></td>"+
	           "</tr></table>";
	          
   	var div = $("popUpCont");
   	div.style.top = top_ -30 + "px";
   	div.style.left = left_ + "px";
   	div.innerHTML = str;
}

var getGifts= function(id, obj, containerId ){
    document.onclick = this.removePopUp;
	var top_ = findPosY(obj);
   	var left_ = findPosX(obj);        
	var str =  "<table background='"+IMG_URL+"panelBackground.png'><tr>"+
                    "<td ><img name='popup' src='"+IMG_URL+"beer.png'/><img src='"+IMG_URL+"bottomslaq.png'/></td>"+
                 "</tr></table>"+
                 "<table background='"+IMG_URL+"panelBackground.png'><tr>"+
                   "<td  class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_BEER+",this,"+id+", \""+containerId+"\")'>"+
                   "<img name='popup' src='"+IMG_URL+"beer.png'/></td>"+
                 "<td class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_FLOWER+",this,"+id+", \""+containerId+"\")'>"+
                   "<img  name='popup' src='"+IMG_URL+"flower.png'/></td>"+
                 "<td class='tdPadding' onclick='sendMsgToUser("+NOT_TYPE_ICECREAM+",this,"+id+", \""+containerId+"\")'>"+
                   "<img name='popup' src='"+IMG_URL+"icecream.png'/></td>"+
                 "</tr></table>";
    var div = $("popUpCont");
    div.style.top = top_  + "px";
    div.style.left = left_ + "px";
    div.innerHTML = str;
}	
///////////////////////////////////////////////Paging// ///////////////////////////////////////////

var Paging = function(objGlobalName, total, requestUrl, firstData, containerId, postData,colCount,smileColCount){
	if(typeof colCount=='undefined' || colCount==null){
		colCount=5;
	}
	if(typeof smileColCount=='undefined' || smileColCount==null){
		smileColCount=7;
	}
	var page = 1;
	var curPage = 1;
	var cont = $(containerId);
	var self = this;
	var sendCont, infoCell, checkBox;
	
	this.prev = function(){
		$(containerId+"_"+curPage).style.display = "none";
		$(containerId+"_"+(curPage-1)).style.display = "";
		curPage--;
		$(containerId).setAttribute("curPage", curPage);
	}
		
	this.next = function(){
		var nextPage = curPage + 1;
		if ($(containerId+"_"+nextPage)){
			$(containerId+"_"+nextPage).style.display = "";
			$(containerId+"_"+(nextPage-1)).style.display = "none";
		}else{
			var height = $(containerId+"_"+page).offsetHeight;
			$(containerId+"_"+page).style.display = "none";
			page++;
			$(containerId).innerHTML += "<div id="+containerId+"_"+page+"><div class=loading style='height:"+height+"px;'>Loading...</div></div>";
			if (postData){
				var data = postData+"&page="+page+"&userCount="+USER_COUNT;
				Request.sendPOST(requestUrl, data, this.resp_next);
			}else{
				Request.sendGET(requestUrl+"/"+page, this.resp_next);
			}
		}
		curPage++;
		$(containerId).setAttribute("curPage", curPage);
	}
	
	this.resp_next = function(response){
		var data = null;
		if (postData){
			data = response.data;
		}else{
			var users = response.data.users ? response.data.users : response.data;
			var avail = response.data.available ? response.data.available : ((total - page*USER_COUNT) > 0);
            data = {users: users, available: avail};
		}
		var str = self.getUsersHTML(data);
		$(containerId+"_"+page).innerHTML = str;
	}
	
	this.getUsersHTML = function(data){
		var str = "<table class=matchUser>";
		var users = data.users;
		var usr, limit;
		var label = null;
		switch(objGlobalName){
			case "likeMePaging": limit = LIKEME_USER_COUNT; break;
			case "recently": limit = 10; break;
			case "popularPlayers": label = "Received";limit = RECEIVERS_COUNT; break;
			case "giftGivers": label = "Sent"; limit = RECEIVERS_COUNT; break;
			case "creative": label = "Created"; limit = USER_COUNT; break;
			default: limit = USER_COUNT; break;
		}
		var index = -1;
		var limit = limit > total ? total : limit;
		for (var i=0; i<users.length && i<limit; i++){
		    usr = users[i].user ? users[i].user : users[i];
		    if (usr.name == null) {
				continue;
			}else{
				index++;
			}
		    if (index % colCount == 0 ) str+= "<tr>";
			str += "<td name=userCell width=20% class='userBox'>"+
				   "<table  valign=top width=100%><tr><td width=1px></td>";
	        str += "<td class=smallFont title='"+usr.name+"'><span id='name"+usr.id+"'>"+usr.name.substring(0,22)+"</span>";
	        str += "&nbsp <input type=checkbox checked=true name='checkBox' id='"+usr.id+"' /></td></tr></table>";
            str += "<table><tr>"+    
			   		 "<td>"+
			   		 	"<a target='_blank' href='"+usr.profile+"'><img id='img"+usr.id+"' class=smallImg src='"+usr.thumbnail+"' /></a><br>"+
			   		 	// "<a href='javascript:postGossip(\""+usr.name+"\",
						// \""+usr.profile+"\", \""+usr.thumbnail+"\")'><img
						// src="+IMG_URL+"post_to_bulletin.png></a>"+
			   		 "</td>"+
					 "<td>"+
					    "<table><tr>"+
					       "<td id='getNot"+usr.id+"' onclick='getNotifications("+usr.id+",this, \""+containerId+"\")'><img name='popup' padding='center' src='"+IMG_URL+"selectBox.png' /></td>"+
					      "</tr><tr>"+
					         "<td id='getGift"+usr.id+"'><img name='popup' src='"+IMG_URL+"cupBox.png' onclick='getGifts("+usr.id+",this, \""+containerId+"\")' /></td>"+
					      "</tr>"+					      				      
					      	"<tr>"+
					        	"<td><img src='"+IMG_URL+"bulletin.gif' onclick='postGossip(\""+usr.name+"\", \""+usr.profile+"\", \""+usr.thumbnail+"\")' /></td>"+
					      	"</tr>"+
					    "</table>"+ 
					 "</td>"+  
			        "</tr></table>";
		   	if(objGlobalName == "recently"){
	        	var title = users[i].title.lentgth>25?users[i].title.substring(0,22)+"...":users[i].title;
	        	var link = (surveyType == SURVEY_TYPE_QUIZZ ? QUIZ_MAKER_URL : MAKER_URL)+"&appParams=%7B%22surveyId%22%3A"+users[i].id+"%7D";
	        	// var link = surveyType == SURVEY_TYPE_QUIZZ ?
				// QUIZ_MAKER_URL+"&appParams=%7B%22surveyId%22%3A"+users[i].id+"%7D"
				// : users[i].url;
				// var link = users[i].url;
				var target = "target=_blank";
				if (isSuperApp || link == null || link.indexOf("null")>0){
					link = "javascript:loadSurvey("+users[i].id+")";
					target = "";
				}
			 	str += "<table><tr><td title='"+title+"' id='title' class='lastLogin' width=100%><a "+target+" href="+link+">"+title+"</a></td></tr></table>";		
		  	}
	     	if(label != null){
				var best_receiver = users[i].count;
				str += "<table><tr><td  id='best_receiver' class='lastLogin' width=100%><div class='statistics'>"+label+": <text class='statistics'>"+users[i].count +"</text></td></tr></table>";		
			}
		    str += "</td>";
	       	if (index % colCount == colCount-1) str += "</tr>";
			
		}
		var prevPage = curPage - 1;
		if ((data.available || prevPage>0)&& objGlobalName != "recently"){
			str += "<tr><td colspan=5 align=right>";
						if (prevPage>0)
						str+=
						"<a href='javascript:"+objGlobalName+".prev"+"()' style='margin-right: 10px;'>Previous</a>";
						if (data.available)
						str+=
						"<a href='javascript:"+objGlobalName+".next"+"()' style='margin-right: 10px;'>Next</a>"+
					"</td></tr>";
		}
		str += "</table>";
		return str;
	}
	

	var str = "";
	var	send_str = "";
	if (total > 0){
		str = this.getUsersHTML(firstData);
		if(!$(containerId+"_pagingPart")){
			send_str = "<table class=sendMsgPanel id="+containerId+"_pagingPart >" +
							"<tbody id="+containerId+"_pagingPartTbody><tr>"+
								"<td nowrap>"+
									"<input type=checkbox checked onclick='selectAll(this.checked, \""+containerId+"\")' />Select all" +
								"</td></tr>";
			var msgcnt1 = -1;
			send_str +="<tr>";
						
			for (var type=2;type<msgTypes.length;type++){
				send_str += "<td><img type="+type+" class=sendButton src="+IMG_URL+imgNames[type]+".png onclick='sendMsg(\""+type+"\", this, \""+containerId+"\")' /></td>";
			}
			send_str +="<td><img src='"+IMG_URL+"specialGift.jpg' style='cursor: pointer' onclick='req_getGiftType(this, \""+containerId+"\")'></img></td>";	
			send_str += "</tr>"+
					"<tr><td colspan=2 class=msgSent id="+containerId+"_info ></td></tr>"+
				"</tbody>"+
			"</table>";
					
		}
	}
	
	cont.innerHTML = "<div id="+containerId+"_1>"+str+"</div>";
	$(containerId).setAttribute("curPage", 1);
	cont.parentNode.innerHTML += send_str;
	
	gadgets.window.adjustHeight();
}

var fillContainer = function(str){
	container.innerHTML = str;
	gadgets.window.adjustHeight();
}
var adjustHeight = function(mandatory){
	if (allContent.offsetHeight > 800 || mandatory){
		if(osVersion == "0.7") resizer.resizePanel(allContent.offsetHeight+200);
	}
}

var doNothing = function(response){}

var showError = function(str){
	if (str == ""){
		errorDiv.style.display = "none";
	}else{
		errorDiv.style.display = "";
		errorDiv.innerHTML = str;
	}
}

var refreshIframe = function(){
	for (var i=1;i<=10;i++){
		var ad = $("ad"+i);
		if (ad && ad.tagName == "IFRAME"){
			ad.src = ad.src;
		}
	}
}

var enableEmail = function(){
	Request.sendGET(SERVICE_URL+"/enableEmail/"+userId, resp_enableEmail);
} 

var resp_enableEmail = function(response){
	if (response.text == "ok"){
		$("enableMail").innerHTML = "Email enabled."
	}
}

var AD_LEFT_SIDE_MSGS = ["Play ", "Find your Match at ", "Pass ", "Find Friends on ", "1,000,000 profiles at "];
var AD_BUTTON_COLORS = ["#67A54B", "#47577B", "#FF6E4C", "#0066CC"];
var AD_BUTTON_MSGS = ["Add Application", "Continue", "Next", "Match!", "Play!"];

var getRandomElement = function(ar, limit){
	var limit = limit ? limit : ar.length; 
	return ar[Math.floor(Math.random()*(limit-1))];
}

var getAd = function(number){
	var adStr = "";
	var maxIndex = 0;
	var adId = AD_SOCIAL_MEDIA_ID;
	var rnd = Math.floor(Math.random()*100);
	var sum = 0;
	
	// overwrite
	if(false){
                adStr = '<iframe frameborder="0" src = "http://adturns.com/ad.php?c=67" width="728" height="90" border="0" style="border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>';
                return adStr;
    }
	
	if (!ADS_DATA) ADS_DATA = [];
	for (var i=0;i<ADS_DATA.length;i++){
		sum += ADS_DATA[i].percent;
		if (rnd <= sum) {
			adId = ADS_DATA[i].id;
			break;
		}
	}
	switch(adId){
		case AD_ROTATED_ADTURNS:
		case AD_ROTATED_ADTURNS_SUPER_ID:
			adStr = '<iframe frameborder="0" src = "http://adturns.com/ad.php?c=67" width="728" height="90" border="0" style="border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>';
			break;
		case AD_SOCIAL_MEDIA_ID:
		case AD_SOCIAL_MEDIA_SUPER_ID:
			adStr = '<iframe id=ad'+number+' src="http://ads.socialmedia.com/myspace/monetize.php?width=645&height=60&pubid=dbca0dcd5a282e3c790056cc68783379&bgcolor=FFFFFF&bordercolor=FFFFFF" border="0" width="645" height="60" name="socialmedia_ad" scrolling="no" frameborder="0"></iframe>';
			break;
		case AD_CUBICS_ID:
		case AD_CUBICS_SUPER_ID:
			adStr = '<iframe src="'+SERVER_URL+'cubics_ad.html" id=ad'+number+' style="border:0px;" width="665" height="75" scrolling="no" frameborder="0"></iframe>';
			break;
		case AD_TATTO_ID:
		case AD_TATTO_SUPER_ID:
			adStr = 
			'<!-- TattoMedia AdTag: SurveyMaker - 645x60 US CA AU NZ UK IE SE (645x60) -->'+
			'<iframe id=ad'+number+' scrolling="no" frameborder="0" marginheight="0" marginwidth="0" width="645" height="60" src="http://banner.tattomedia.com/adtag?source_id=1379&width=645&height=60"></iframe>'+
			'<!-- // End TattoMedia AdTag -->';
			break;
		case AD_ADTURNS1_ID:
		case AD_ADTURNS1_SUPER_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://adturns.com/ad.php?c=20" width="700" height="55" style="border: none; overflow: hidden" frameborder="0"></iframe>';
			break;
		case AD_ADTURNS2_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://adturns.com/ad.php?c=21" width="700" height="55" style="border: none; overflow: hidden"  frameborder="0"></iframe>';
			break;
		case AD_ADTURNS3_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://adturns.com/ad.php?c=37" width="700" height="55" style="border: none; overflow: hidden"  frameborder="0"></iframe>';
			break;
		case AD_SURVEY_LINK_TO_SUPER_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://www.easysurveymaker.com/surveymaker/showad.jsp?maker=true" width="700" height="67" style="border: none; overflow: hidden"  frameborder="0"></iframe>';
			break;
		case AD_GAME_ID:
		case AD_GAME_SUPER_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://mp.playgamesite.com/fungames/canvas_randomApps.jsp" width="750" height="90" style="border: none; overflow: hidden" frameborder="0"></iframe>';
			break;
		case AD_GOOGLE_ID:
		case AD_GOOGLE_SUPER_ID:
			//var rnd = Math.floor(Math.random()*10);
			// if (rnd < 5){
				adStr = 
				'<iframe id=ad'+number+' src="http://www.easysurveymaker.com/surveymaker/google_ad_new.html" width="475" height="65" style="border: none; overflow: hidden" frameborder="0"></iframe>';
			/*
			 * }else{ adStr = '<iframe id=ad'+number+'
			 * src="http://playgamesite.com/google_ad_srv.html" width="475"
			 * height="65" style="border: none; overflow: hidden"
			 * frameborder="0"></iframe>'; }
			 */
			break;
		case AD_ROCKYOU_ID:
		case AD_ROCKYOU_SUPER_ID:
			adStr = 
			'<iframe id=ad'+number+' src="http://www.easysurveymaker.com/surveymaker/rockyou_ad.html" width="750" height="92" style="border: none; overflow: hidden" frameborder="0"></iframe>';
			break;
		case AD_MAKER_ID:
		case AD_SURVEY_ID:
		case AD_SURVEY_FOR_SUPER_ID:
			var srv = adId == AD_MAKER_ID ? AD_SURVEYS[0] : getRandomElement(AD_SURVEYS);
			var msgIndex = Math.floor(Math.random()*(AD_LEFT_SIDE_MSGS.length-1));
			var isMaker = srv.url == MAKER_URL;
			var color = getRandomElement(AD_BUTTON_COLORS);
			var leftMsg = getRandomElement(AD_LEFT_SIDE_MSGS);
			if (leftMsg.indexOf("XXX") == 0){
				if (srv.popularity>1000){
					leftMsg = leftMsg.replace("XXX", srv.popularity);
				}else{
					leftMsg = AD_LEFT_SIDE_MSGS[1];
				}
			}
			var url = srv.url;
			if (adId == AD_PORTAL_SUPER_ID || adId == AD_PORTAL_ID){
				if (userkey && userkey != ""){
					url = "http://ilikequiz.com/?rh="+userkey+"&src=myspace&surveyId="+surveyId;
				}else{
					url = "http://ilikequiz.com/";
				}
			}
			adStr = 
			"<table width=670px><tr>"+
				"<td><a target=_blank href='"+url+"'><img width=60px height=60px src='"+SURVEY_IMG_URL+srv.imgUrl+"' /></a></td>"+
				"<td style='font-size:15px;'><a target=_blank href='"+url+"'><b>"+( isMaker ? "" : leftMsg )+"<span style='color:"+color+"'>"+srv.title+"</span></b></a></td>"+
				"<td><a target=_blank href='"+url+"'><span style='white-space:nowrap;text-align:center;padding:7px 25px;color:white;font-weight:bold;font-size:14px;background:"+color+"'> >> &nbsp;&nbsp;&nbsp;"+getRandomElement(AD_BUTTON_MSGS, 2)+"</span></a></td>"+
			"</tr></table>";
			break;
	}
	return adStr;
}

function preloadimages(){
  var myimages=new Array();
  for (i=0;i<preloadimages.arguments.length;i++){
	  myimages[i]=new Image();
	  myimages[i].src = IMG_URL + preloadimages.arguments[i];
  }
}

var findPosX = function(obj) {
	var curleft = 0;
	try{
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}
		} else if (obj.x) curleft += obj.x;
	}catch(ex){}
	return curleft;
}

var findPosY = function(obj) {
	var curtop = 0;
	try {
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		} else
		 if (obj.y) curtop += obj.y;
	}catch(ex){}
	return curtop;
}

var postTo_ = function(subject, content, receiver, postWhere, ptCallback){
	content += "<br><br><a href='"+getMakerUrl()+"'><img src="+IMG_URL+"play_surveys.png></a>";
	var postType = MyOpenSpace.PostTo.Targets[postWhere];
	var os_token = MyOpenSpace.MySpaceContainer.OSToken;
	var message = opensocial.newMessage(content);
	message.setField(opensocial.Message.Field.TITLE, subject);
	message.setField(opensocial.Message.Field.TYPE, postType);
	osContainer.postTo(os_token, message, receiver, ptCallback);
	
	req_channel_statistics(postWhere);
	Request.sendPOST(SERVICE_URL, "query="+_postWhere+"&surveyId="+surveyId, doNothing);
	
} 

var req_channel_statistics = function(channel){

     var appId_adturns  = APP_NAME;
     if(typeof surveyTitle!= "undefined")  appId_adturns += surveyTitle;
     if(isSuperApp)     appId_adturns = "Matchmaking SURVEYS!";
     
     // console.log("http://adturns.com/channelStatistics.php?act_own=32&socialType="+OS_USER_TYPE+"&appId="+appId_adturns+"&userId="+userId+"&channel="+channel);
     if(userId != null){
	   var url_adturns = "http://adturns.com/channelStatistics.php?act_own=32&socialType="+OS_USER_TYPE+"&appId="+appId_adturns+"&userId="+userId+"&channel="+channel;
	  Request.sendGET(url_adturns, doNothing); 
     }
}

var Invite = function(){
	var curPage = 1;
	var containerId = "friend";
	var receivedFriendsCount = 0;
	var friendsTotalCount = 0;
	var cellCount=6;
	
	return {
		prev: function(){
			$(containerId+"_"+curPage).style.display = "none";
			$(containerId+"_"+(curPage-1)).style.display = "";
			curPage--;
			$(containerId).setAttribute("curPage", curPage);
		},
			
		next: function(){
			var nextPage = curPage + 1;
			if ($(containerId+"_"+nextPage)){
				$(containerId+"_"+nextPage).style.display = "";
				$(containerId+"_"+(nextPage-1)).style.display = "none";
			}else{
				var height = $(containerId+"_"+curPage).offsetHeight;
				$(containerId+"_"+curPage).style.display = "none";
				$(containerId).innerHTML += "<div id="+containerId+"_"+nextPage+"><div class=loading style='height:"+height+"px;'>Loading...</div></div>";
				Invite.req_getFriends(nextPage);
			}
			curPage++;
			$(containerId).setAttribute("curPage", curPage);
		},
		
		req_getFriends: function(page){
			var req = opensocial.newDataRequest();
			MyOpenSpace.DefaultPageSize = cellCount*4;
			var params = {}; 
	   		params[opensocial.DataRequest.PeopleRequestFields.FIRST] = (page-1)*MyOpenSpace.DefaultPageSize;
			req.add(req.newFetchPeopleRequest("VIEWER_FRIENDS", params), "friends");
			req.send(Invite.resp_getFriends);
		},
		
		resp_getFriends: function(response){
			var friends = response.get("friends").getData().asArray();
			allFriends = allFriends.concat(friends);
			receivedFriendsCount += friends.length;
			friendsTotalCount = response.get('friends').getData().getTotalSize();
			var str = "<table width=100%>";
			for(var i=0; i<friends.length;i++) {
				if (i % cellCount == 0) str+= "<tr>";
				var friendId = friends[i].getField(opensocial.Person.Field.ID);
			    var name = friends[i].getField(opensocial.Person.Field.NAME);
			    var thumbnail = friends[i].getField(opensocial.Person.Field.THUMBNAIL_URL);
			    var profile = friends[i].getField(opensocial.Person.Field.PROFILE_URL);
			    str += "<td style='border:1px solid white' onmouseover='this.style.border=\"1px solid #cccccc\"' onmouseout='this.style.border=\"1px solid #ffffff\"' name=userCell width="+(100/cellCount)+"% >"+
							"<table valign=top width=100%>"+
								"<tr>"+
		        					"<td class=smallFont_ title='"+name+"'><div style='overflow:hidden;height:12px;width:70px;'>"+name+"</div></td>"+
			        				"<td style='display:none' align=right><input checked type=checkbox name='checkBox' id='"+friendId+"' /></td>"+
	           					"</tr>"+
	           					"<tr>"+    
									"<td><img style='cursor:pointer' onclick='inviteFriend("+friendId+")' class=smallImg src='"+thumbnail+"' /></td>"+
									 "<td><table>"+
								    	"<tr>"+
								    		"<td id='getNot"+friendId+"' onclick='getNotifications("+friendId+",this, \""+containerId+"\")'><img name='popup' padding='center' src='"+IMG_URL+"selectBox.png' /></td>"+
								      	"</tr>"+
								      	"<tr>"+
								        	"<td id='getGift"+friendId+"'><img name='popup' src='"+IMG_URL+"cupBox.png' onclick='getGifts("+friendId+",this, \""+containerId+"\")' /></td>"+
								      	"</tr>"+					      				      
								    "</table></td>"+ 
								"</tr>"+
							"</table>"+
						"</td>";
				if (i % cellCount == cellCount-1) str += "</tr>";
			}
			var available = receivedFriendsCount < friendsTotalCount;
			if (available || curPage>1){
				str += "<tr><td colspan="+cellCount+" align=right>";
							if (curPage>1)
							str+=
							"<a href='javascript:Invite.prev()' style='margin-right:10px;font-size:16px;font-weight:bold;'>Previous</a>";
							if (available)
							str+=
							"<a href='javascript:Invite.next()' style='margin-right:10px;font-size:16px;font-weight:bold;'>Next</a>"+
						"</td></tr>";
			}
			str += "</table>";
			$(containerId+"_"+curPage).innerHTML = str;
			gadgets.window.adjustHeight();
		},
		
		getSelectedFriends:  function(){
			var friends = [];
			var pg = $("friend").getAttribute("curPage");
			var inputs = $("friend_"+pg).getElementsByTagName("input");
			for (var i=0;i<inputs.length;i++){
				if (inputs[i].checked && inputs[i].getAttribute("hasTaken")!="true"){
					var id = inputs[i].id;
					if (id != 6221){
						friends[friends.length] = id;
					}
				}
			}
			return friends;
		},
		
		show: function(id, title, img){
			var cont = $(containerId);
			allFriends = [];
			curPage = 1;
			receivedFriendsCount = 0;
			friendsTotalCount = 0;
			var table = document.createElement("table");
			table.width="100%";
			var sendCont = document.createElement("tbody");
			/*
			 * var row = document.createElement("tr");
			 * sendCont.appendChild(row); var cell1 =
			 * document.createElement("td"); row.appendChild(cell1); checkBox =
			 * document.createElement("input"); checkBox.type = "checkbox";
			 * //checkBox.checked = "true"; checkBox.onclick = function(){
			 * selectAll(this.checked, containerId); }
			 * cell1.appendChild(checkBox); cell1.innerHTML("<b
			 * style='font-size:14px;'>Select all</b>"));
			 */
			var row2 = document.createElement("tr");
			sendCont.appendChild(row2);
			var cell2 = document.createElement("td");
			cell2.align = "center";
			row2.appendChild(cell2);
				
			var imgInvite = document.createElement("img");
			imgInvite.className = "sendButtonInvite";
			imgInvite.src = IMG_URL+"invite_green.png";
			imgInvite.onclick = function(){
				inviteAll(id, title, img);
			};
			
			cell2.appendChild(imgInvite);
			table.appendChild(sendCont);
			cont.parentNode.appendChild(table);
			
			cont.innerHTML = "<div id="+containerId+"_1></div>";
			cont.setAttribute("curPage", 1);
			
			Invite.req_getFriends(curPage);
		}
	};
}();

var inviteAll = function() {
	var friendIndex = 0;
	var friends = sfriends;
	var inviteAllCallback = function(result){
		var finished = true;
		if (result == MyOpenSpace.PostTo.Result.SUCCESS) {
			friendIndex++;
			if(friendIndex < friends.length){
				finished = false;
				inviteFriend(friends[friendIndex], inviteAllCallback);
			}
		}
	}
	
	if (friends.length > 0){
		inviteFriend(friends[friendIndex], inviteAllCallback);
	}
}
/*
var inviteFriend = function(id, callback){

			//(friends[friendIndex], inviteMessage, inviteAllCallback);
			var content = "Hey I just took this awesome survey called <a href='"+surveyURL+"'>"+surveyTitle+"</a>"+
			"  and you can too! Its simple and quick, and you can meet tons of people with similar (or the same!) answers."+
			"<br><br><a href='"+surveyURL+"'>"+surveyTitle+"</a><br><br>"+
			"<a href='"+surveyURL+"'><img src='"+surveyImgUrl+"'></a>";
			postTo_("OMG! Check this out!", content, getFriendById(id), "COMMENTS", callback);
		// }
	}*/
var inviteFriend = function(id, inviteAllCallback){
			opensocial.requestShareApp(id, inviteMessage, inviteAllCallback);
			req_channel_statistics("SHARE_APP");
}
var createButton = function(buttonText, onclickFunction){
	var str = "<span class=blueButton onclick=\""+onclickFunction+"\">"+buttonText+"</span>";
	return str;
}

var postGossip = function(name, profile, thumbnail){
	var content = "Hey, I just passed <a href='"+surveyURL+"'>"+surveyTitle+"</a>"+
		" and found <a href='"+profile+"'>"+name+"</a>"+
		"<br><br><a href='"+profile+"'><img src='"+thumbnail+"'></a><br>"+
		"What do you think? Hot or not?"+
		"<br><br><a href='"+surveyURL+"'>"+surveyTitle+"</a><br><br>"+
		"<a href='"+surveyURL+"'><img src='"+surveyImgUrl+"'></a>";
	postTo_(surveyTitle, content, user, "BULLETINS");
}


var m_viewerAllFriends = new Array();

function initFriend(){
	var div = document.createElement("div");
		div.id="mainFrame";
		$("friendList").appendChild(div);
		
		div.innerHTML = "Now Loading...";
	var l_params = gadgets.views.getParams();
		MAIN_DATA = new CentralData(createUI);
		// gadgets.window.adjustHeight();
}

function createUI(){
	var l_mainFrame = $("mainFrame");
	l_mainFrame.innerHTML = "";
	var l_nameArray = new Array();
	var l_callbackArray = new Array();
	l_callbackArray.push(sendHeartsCallback);
	new TabsDiv(l_mainFrame, l_callbackArray);
}
function sendHeartsCallback(a_contentDiv) {
	a_contentDiv.innerHTML = "";
	new SendHeartsDiv(a_contentDiv,"Send Invite",false,true,false,inviteAll);
}
function addEventWithParameter(a_obj, a_evType, a_fn, a_param){
    if (a_obj.addEventListener){
        a_obj.addEventListener(a_evType, function(){a_fn(a_param); return false;}, false);
        return true;
    } else if (a_obj.attachEvent){
        var l_r = a_obj.attachEvent("on"+a_evType, function(){a_fn(a_param); return false;});
        return l_r;
    } else {
        return false;
    }
}

function TabsDiv(a_parentDiv, a_tabsCallbacksArray){
	var m_parentDiv = a_parentDiv;
	var m_tabsCallbacksArray = a_tabsCallbacksArray;
	var m_curSelectedTabIndex = -1;

	var m_containerDiv = undefined;
	var m_contentDiv = undefined;

	this.createDiv = createDiv;
	if(m_parentDiv != undefined && m_parentDiv != null){
		createDiv(m_parentDiv);
	}

	function createDiv(_a_parentDiv){
		m_parentDiv = _a_parentDiv;
		m_containerDiv = document.createElement("div");
		// m_containerDiv.className = "tabs";
		m_contentDiv = document.createElement("div");
		// m_contentDiv.className = "tabContentFrame";
		m_contentDiv.id = "tabContentFrame";
		m_parentDiv.appendChild(m_contentDiv);
        var l_tabCallback = m_tabsCallbacksArray[0];
		l_tabCallback(m_contentDiv);
	}
}

function SendHeartsDiv(parentDiv,itemNameSingular,flagComment,flagInvite,flagMessage,handler) {
	var m_parentDiv = parentDiv;
	var m_selectedFriends = new Array();
	var m_flagComment = flagComment;
	var m_flagInvite = flagInvite;
	var m_flagMessage = flagMessage;
	var m_itemNameSingular = itemNameSingular;
	createDiv();
	
	function createDiv() {
		var sendHeartsBottom = document.createElement("div");
		sendHeartsBottom.className = "sendHeartsBottom";
		parentDiv.appendChild(sendHeartsBottom);
		
		tmpElement = document.createElement("div");
		tmpElement.id = "friendSelector"
		tmpElement.innerHTML = '<table width="100%"><tr><td><a id="selectAllfr" href="#">Select All</a></td><td align="center">|</td><td><a id="selectNone" href="#">Select None</a></td><td align="right" id="paging" width="75%"></td></tr></table>';
		sendHeartsBottom.appendChild(tmpElement);
		$("selectAllfr").onclick = function(){
										selectAllfriends();
									};
									
		$("selectNone").onclick = function(){
										selectNone();
								   };							
		var fsUl = document.createElement("ul");
		fsUl.id = "friends";
		sendHeartsBottom.appendChild(fsUl);
		
		var friends = MAIN_DATA.getViewerFriends();
		 friends.makeViewerFriendsList(
			function (friendsArray) {
				document.getElementById("friends").innerHTML = "";
				for(var i = 0; i<friendsArray.length; i++) {
					var fsLi = document.createElement("li");
					fsLi.id = friendsArray[i].getUserId();
					fsUl.appendChild(fsLi);
					var fsA = document.createElement("a");
					fsA.href = "#";
					fsLi.appendChild(fsA);
					
					var fsSpan = document.createElement("span");
					fsSpan.className = "square";
					fsA.appendChild(fsSpan);
					
					var img = document.createElement("img");
					img.src = friendsArray[i].getThumbnailUrl();
					fsSpan.appendChild(img);
					
					var tmpSpan = document.createElement("span");
					fsSpan.appendChild(tmpSpan);
					
					var fsStrong = document.createElement("span");
					fsStrong.innerHTML = friendsArray[i].getName();
					fsA.appendChild(fsStrong);
					
					addEventWithParameter(fsLi,'click',selectUser,friendsArray[i].getUserId());
				}
		});
		f_callback = m_callback;
		var buttonDiv = document.createElement("div");
		buttonDiv.className = "buttonFr";
		sendHeartsBottom.appendChild(buttonDiv);
		var buttonInput = document.createElement("input");
		buttonInput.className = "inputbutton request_form_submit";
		// buttonInput.type = "buttonFr";
		buttonInput.value = m_itemNameSingular;
		buttonInput.name = "send";
		buttonInput.id = "send";
		buttonDiv.appendChild(buttonInput);
		var tmpSpan = document.createElement("span");
		tmpSpan.style.margin = "0 0 0 20px";
		tmpSpan.innerHTML = '*Notify them by '; 
		
		if(m_flagComment){
			tmpSpan.innerHTML += '<img style="position:relative;top:8px;" src="'+IMG_URL+'comment_icon.gif" title="Send Comment"/>:Comment';
		}
		if(m_flagInvite){
			tmpSpan.innerHTML += '<img style="position:relative;top:8px;" src="'+IMG_URL+'invite_icon.gif" title="Send Invite"/>:Invite';
		}
		if(m_flagMessage){
			tmpSpan.innerHTML += '<img style="position:relative;top:8px;" src="'+IMG_URL+'comment_icon.gif" title="Send Message"/>:Message';
		}
		buttonDiv.appendChild(tmpSpan);
		
		addEventWithParameter(buttonInput,'click',sendRequest,'');
	}		
	 function selectNone() {
		MAIN_DATA.getViewerFriends().makeViewerFriendsList(
			function(friendsArray){
				for(var i = 0; i<friendsArray.length; i++) {
					var selectedLi = $(friendsArray[i].getUserId());
					if(selectedLi){
						selectedLi.className = "";
						m_selectedFriends[friendsArray[i].getUserId()] = false;
					
						var tmpSpan = document.getElementById(friendsArray[i].getUserId()).firstChild.firstChild.firstChild.nextSibling;
						tmpSpan.style.backgroundImage = "";
					}
				}
			});
	}
	
	function selectAllfriends() {
		MAIN_DATA.getViewerFriends().makeViewerFriendsList(
			function(friendsArray){
				for(var i = 0; i<friendsArray.length; i++) {
					var selectedLi = $(friendsArray[i].getUserId());
					if(selectedLi){
					
						selectedLi.className = "selected";
						// m_selectedFriends[friendsArray[i].getUserId()] =
						// friendsArray[i].getUserId();
					
						var tmpSpan = document.getElementById(friendsArray[i].getUserId()).firstChild.firstChild.firstChild.nextSibling;
						if (MAIN_DATA.getViewerFriends().isAppUser(friendsArray[i].getUserId()) == false) {
							tmpSpan.style.backgroundImage = "url("+SERVER_URL+"images/invite_icon.gif)";
						} else {
							tmpSpan.style.backgroundImage = "url("+SERVER_URL+"images/comment_icon.gif)";
						}
					}
				}
			});
	}
	
	function selectUser(userId) {
		var selectedLi = document.getElementById(userId);
		var tmpSpan = document.getElementById(userId).firstChild.firstChild.firstChild.nextSibling;
		
		if(selectedLi.className == "selected") {
			selectedLi.className = "";
			m_selectedFriends[userId] = false;
			tmpSpan.style.backgroundImage = "";
		} else {
			selectedLi.className = "selected";
			m_selectedFriends[userId] = userId;
			
			if (MAIN_DATA.getViewerFriends().isAppUser(userId) == false) {
				tmpSpan.style.backgroundImage = "url("+SERVER_URL+"images/invite_icon.gif)";
			} else {
				tmpSpan.style.backgroundImage = "url("+SERVER_URL+"images/comment_icon.gif)";
			}
		}
	}
	
	function sendRequest() {
		for(var i in m_selectedFriends ) {
			if(m_selectedFriends[i] != false) {
				sfriends.push(m_selectedFriends[i]);
			}
		}
			handler();
	}
}
function User(userData) {
	var m_userId = undefined;
    var m_name = undefined;
    var m_thumbnail_url = undefined;
    var m_profile_url = undefined;
    var m_age = undefined;
    var m_gender = undefined;
    this.getUserId = getUserId;
    this.getName = getName;
    this.getThumbnailUrl = getThumbnailUrl;
    this.getProfileUrl = getProfileUrl;
    this.getAge = getAge;
    this.getGender = getGender;
    
    createUser(userData);
    
    function createUser(userData) {
    	m_userId = userData.getField(opensocial.Person.Field.ID);
    	m_name = userData.getDisplayName();
    	m_age = userData.getField(opensocial.Person.Field.AGE);
    	m_gender = userData.getField(opensocial.Person.Field.GENDER);
    	m_thumbnail_url = userData.getField(opensocial.Person.Field.THUMBNAIL_URL);
    	m_profile_url = userData.getField(opensocial.Person.Field.PROFILE_URL);
    }

    function getUserId() { return m_userId; }
    function getName() { return m_name; }
    function getThumbnailUrl() { return m_thumbnail_url; }
    function getProfileUrl() { return m_profile_url; }
    function getAge() { return m_age; }
    function getGender() { return m_gender; }
}
var pagingFriend = function(page){
	PAGE_FRIEND = page;
	frList.getMoreUser(PAGE_FRIEND);
}
var pagingFriendNext = function(page){
	PAGE_FRIEND = page;

	if(parseInt(PAGE_FRIEND-parseInt(minPage+1))>0){
		minPage = parseInt(minPage+5);
		maxPage = parseInt(maxPage+5);
		PAGE_FRIEND = parseInt(minPage+1);
	}else{
		minPage = parseInt(minPage+1);
		maxPage = parseInt(maxPage+1);
	}
	
	frList.getMoreUser(PAGE_FRIEND);
}
var pagingFriendPrevious = function(page){
	PAGE_FRIEND = page;
	
	if(parseInt(page-4)>0){
		minPage = parseInt(minPage-5);
		maxPage = parseInt(minPage+8);
		PAGE_FRIEND = maxPage;
	}else{
		minPage = parseInt(minPage-1);
		maxPage = parseInt(minPage+8);
	}
	frList.getMoreUser(PAGE_FRIEND);
}
function ViewerFriendsList() {
 
    //var m_viewerAllFriends = new Array();
	var m_viewerAppFriends = {};	
	this.makeViewerFriendsList = makeViewerFriendsList;
	this.isAppUser = isAppUser;
	this.getAppFriends = getAppFriends;
	this.getFriend = getFriend;
    
	function makeViewerFriendsList(a_callback) {
		m_callback = a_callback;
		if(m_viewerAllFriends.length == 0) {
			this.getMoreUser();
		} else {
			m_callback(m_viewerAllFriends);	
		}
	}
	this.getMoreUser = function(page) {
		var l_req = opensocial.newDataRequest();
		
		var l_param = {};
		l_param[opensocial.DataRequest.PeopleRequestFields.FIRST] = 40*parseInt(page-1);
		l_param[opensocial.DataRequest.PeopleRequestFields.MAX] = 40;

		l_req.add(l_req.newFetchPeopleRequest('VIEWER_FRIENDS', l_param), 'viewerAllFriends');
        
		var l_param2 = {};
		l_param2[opensocial.DataRequest.PeopleRequestFields.FIRST] = 40*parseInt(page-1);
		l_param2[opensocial.DataRequest.PeopleRequestFields.MAX] = 40;
		// l_param2[opensocial.DataRequest.PeopleRequestFields.FILTER] =
		// opensocial.DataRequest.FilterType.HAS_APP;
        
		l_req.add(l_req.newFetchPeopleRequest('VIEWER_FRIENDS', l_param2), 'viewerAppFriends');
        l_req.send(onLoadMoreUsers);
	}
	function onLoadMoreUsers(response) {
	
			while(m_viewerAllFriends.length !=0){
				m_viewerAllFriends.shift();
			}
		var allUsers = response.get('viewerAllFriends').getData();
		allUsers.each(
			function(osUserData){ 
				m_viewerAllFriends.push(new User(osUserData)); 
			});
		var appUsers = response.get('viewerAppFriends').getData();
		appUsers.each(
			function(osUserData){ 
				m_viewerAppFriends[osUserData.getField(opensocial.Person.Field.ID)] = true;
			});
		 this.allSize = response.get('viewerAllFriends').getData().getTotalSize();
			ALLSIZE = this.allSize;
			var str = "<table><tr><td id='previous'></td>";
		var page = minPage;
		if(ALLSIZE / 40<10){
			maxPage = ALLSIZE / 40;
		}
		if(parseInt(maxPage-minPage)> 9){
			maxPage = 9;
		}
		if(ALLSIZE / 40 >1){
			for(var i = minPage;i <= maxPage;i++){
				if(page == 0){
					page++;
					continue;
				}
				if(PAGE_FRIEND == page){
					str += "<td width='10'><a href='javascript:pagingFriend("+page+")'><B>"+page+"</B></a></td>";
				}else{
					str += "<td width='10'><a href='javascript:pagingFriend("+page+")'>"+page+"</a></td>";
				}
				page++;
			}
			if(parseInt(PAGE_FRIEND+1) < ALLSIZE / 41){
				str += "<td><a href='javascript:pagingFriendNext("+parseInt(PAGE_FRIEND+1)+")'>Next</a></td>";
			}
		}
		str += "</tr></table>";
		$("paging").innerHTML = str;
		if(minPage == 0){
			minPage = 1;
		}
		if(PAGE_FRIEND > 1 && minPage!=0){
			$("previous").innerHTML = "<a href='javascript:pagingFriendPrevious("+parseInt(PAGE_FRIEND-1)+");'>Previous</a>";
		}
		var appSize = response.get('viewerAppFriends').getData().getTotalSize();
			f_callback(m_viewerAllFriends);
			
	}
	function isAppUser(userId) {
		if( m_viewerAppFriends[userId] ) {
			return true;
		} else {
			return false;
		}
	}
	function getAppFriends() {
		var ret_string = "";
		for(var i in m_viewerAppFriends ) {
			ret_string += '"'+i+'",'; 
		}
		return ret_string;
	}
	
	function getFriend(id) {
		for(var i=0; i<m_viewerAllFriends.length; i++) {
			if(m_viewerAllFriends[i].getUserId() == id){
				return m_viewerAllFriends[i];
			}
		}
		return false;
	}
}

function CentralData(finishInitialLoadCallback) {
	var m_finishInitialLoadCallback = finishInitialLoadCallback;
	
	var m_viewer = undefined;
	var m_owner = undefined;
	var m_viewerFriends = undefined;
	var m_viewerMS = undefined;
	
	this.getOwner = getOwner;
	this.getViewer = getViewer;
	this.getViewerMS = getViewerMS;
	this.getViewerFriends = getViewerFriends;
	createUsers();
	
	function createUsers() {
		var req = opensocial.newDataRequest();
		var param = {};
		param[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] =
			[opensocial.Person.Field.ID,
			 opensocial.Person.Field.NAME,
			 opensocial.Person.Field.THUMBNAIL_URL,
			 opensocial.Person.Field.AGE,
			 opensocial.Person.Field.GENDER ];

		req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER, param), 'owner');
		req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER, param), 'viewer');
        
		req.send(onLoadUsers);
	}
	
	function onLoadUsers(response) {
		m_owner = new User(response.get('owner').getData());
		m_viewer = new User(response.get('viewer').getData());

		m_viewerMS = response.get('viewer').getData();

		m_viewerFriends = new ViewerFriendsList();
		m_finishInitialLoadCallback();
	}
	
	function getOwner() { return m_owner; }
	function getViewer() { return m_viewer; }
	function getViewerMS() { return m_viewerMS; }
	function getViewerFriends() { return m_viewerFriends; }
}



var loadRecentUsers = function(){

	Request.sendGET(SERVICE_URL+"/recentUsers", resp_loadRecentUsers);
	
}
var resp_loadRecentUsers = function(response){
	var resp  = response;
}




var notify = function(){
	
	var body = "<a href='" + MAKER_URL + "'></a><br>"+
				"<a href='" + MAKER_URL + "'><img border='0'src='http://www.easysurveymaker.com/surveymaker/img/surveymania_64.png' /></a></br>";
    
	var params = {};
    params[opensocial.Message.Field.TITLE] = "Survey Mania";
    params[opensocial.Message.Field.TYPE] = opensocial.Message.Type.NOTIFICATION;
    var message = opensocial.newMessage(body, params);
    opensocial.requestSendMessage(490365727, message, doNothing);
    //opensocial.IdSpec.PersonId.VIEWER
}








////////////////////////start promotion
function checkPromotion(){
	// determine if app is installed
	var global_viewerId = 'non';
	if(opensocial.hasPermission(opensocial.Permission.VIEWER)) {
	global_viewerId = gadgets.views.getParams().viewerId;
	}
	
	
	var actionRedirect = gadgets.views.getParams()["goto"];
	var destination = gadgets.views.getParams()["appname"];
	var landingPage = gadgets.views.getParams()["landpage"];
	var channelName = "surveys";
	
	if(actionRedirect != null && actionRedirect .length > 0) {
	if(surveyId  != "undefined" && surveyId  != null ) channelName = "survey_"+surveyId ;
	var url = "http://adturns.com/channelStatistics.php?act_own=32&socialType=myspace&appId="+channelName+"&userId="+global_viewerId+"&channel=goto_"+destination;
	var os_params = {};
	os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
	os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, dummyResponseHandler, os_params);
	
	if(typeof landingPage == 'undefined' || landingPage==null){
	window.location = 'http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId='+actionRedirect;
	} else {
	window.location = 'http://www.myspace.com/'+actionRedirect;
	}
	}
};

function dummyResponseHandler(response){
//nothing here
}
////////////////////////end promotion