var SERVER_URL = "http://gt.doflirt.com/myspace/graphic/frames_love/";
var IMG_URL = SERVER_URL + "images/";
var FRAME_URL = SERVER_URL + "frames/";
var FRAME_THUMB_URL = SERVER_URL + "frames_thumb/";
var APP_NAME = "Make Your Love Photo Frames";
APP_SOCIAL_ID = "138493";
var SWF_NAME = "http://cache01-widget01.myspacecdn.com/1/l_3d936cf5d375a1b98971272c52671f25.swf";
var Request = new Object();
var user;
var userId = null, userName, userThumbnail, userProfile;
var canvas_url = "http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=138493";
var sendingImage = "";
var FRAMES_LENGTH = 50;
var SELECTED_FRAME_URL = "";
var	BACKGROUND_URL = "";
var friend_selector = null;
var isInvitation = true;
var sending_img = "";
var consumer_key = "http://www.myspace.com/473744797";
var consumer_secret = "c98b9a2c9091497ea4da25fe77da569f";

function getUser() {
	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.HAS_APP,
			 opensocial.Person.Field.THUMBNAIL_URL];
     
	req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER, paramViewer), "viewer");
	req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER, paramViewer), "owner");
	req.send(resp_getUser);
}

function resp_getUser(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);
        hasApp		= user.getField(opensocial.Person.Field.HAS_APP);

        fillHTML();
        var url = "http://adturns.com/channelStatistics.php?act_own=32&socialType=myspace&appId=love_frames&userId="+userId+"&channel=canvas";
    	Request.sendGET(url, "", "");
    }catch(ex){
    	showMask();
    	//console.log(ex);
    }
}

function showMask(){
	 var bodyMask = document.createElement("div");
	 bodyMask.onclick = function(ev){
	  if (window.event) ev = window.event;
	  ev.cancelBubble = true;
	  return false;
	 }
	 document.body.appendChild(bodyMask);
	 
	 var wizardBox = document.createElement("div");
	 wizardBox.innerHTML = 
	 "<center><img src='"+IMG_URL+"arrow_jump.gif'></center>"+
	 "<div style='border: 3px solid #8E361C; padding:13px'>"+
	 "Add / Install this App to start using <b> "+APP_NAME+".</b></div>";
	 document.body.appendChild(wizardBox);
}

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.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 postTo_ = function(title, body, receiver, notType, ptCallback){
	try{
	 var params = {};
	 params[opensocial.Message.Field.TITLE] = title;
	 // specify a message type of bulletin
	 params[opensocial.Message.Field.TYPE] = opensocial.Message.Type[notType];
	 var message = opensocial.newMessage(body, params);
	 // initiate requestSendMessage
	 opensocial.requestSendMessage(receiver, message, ptCallback);
	} catch(ex) {
		console.log(ex);
	}
}

//----------------------------------- get photo albums and photos ---------------------------- //

picImage = function() {
	var os = opensocial.Container.get();
	var dataReqObj = os.newDataRequest();
	var param = {};
	var ownerPhotosOnlyKey = 'optkeygetPhotosOWNER';
	
	dataReqObj.add(os.newFetchAlbumsRequest(opensocial.IdSpec.PersonId.OWNER, param), ownerPhotosOnlyKey);//opensocial.DataRequest.PersonId.OWNER
	dataReqObj.send(function(dataResponse) {
		
		if (dataResponse.hadError()) {
			if(dataResponse.get("optkeygetPhotosOWNER").getErrorCode() == opensocial.ResponseItem.Error.UNAUTHORIZED) {
			opensocial.requestPermission(["accesstopublicvideosphotos"], "Because we need your photos!", checkPhotoPermissionResponse);
			}
		} else {
			var ownerAlbums = dataResponse.get(ownerPhotosOnlyKey).getData();
			var dataReqObj2 = os.newDataRequest();
			
			var picsStr='<table width="100%" border="0" cellpadding="0" cellspacing="0"> <tbody><tr>';
			var sayac=0;
			ownerAlbums.each(function(al){
				var album_id = al.ALBUM_ID;
				var param = {};
				picsStr += '<td align="center">'+
								'<a onclick="albumSelect('+al.ALBUM_ID+');" href="#">'+
									'<img class="album_cover" src="'+al.DEFAULT_IMAGE+'" border="0" />'+
								'</a><br>'+
								'<div class="text">'+ al.TITLE+'</div>'+
								'<div>'+
									'<div class="text">('+(al.PHOTO_COUNT)+' photos)</div>'+
								'</div>'+
							'</td>';
					sayac++;
				if (is_int(sayac/3)) {
					picsStr += '<tr><td><br /></td><td><br /></td><td></td></tr><tr>';
				}
				
			});
			picsStr += '</tbody></table>';
	
			_$("photo_container").innerHTML=picsStr;
		}
	});
};

albumSelect = function(album_id) {
	_$("photo_container").innerHTML='<center><b class="text">Loading photo(s).</b></center><br>';
	
	var os = opensocial.Container.get();
	var dataReqObj = os.newDataRequest();
	var ownerPhotosOnlyKey = 'optkeygetPhotosOWNER';
	var param = {};
	param[MyOpenSpace.DataRequest.PhotoRequestFields.ALBUM_ID] = album_id;
	dataReqObj.add(os.newFetchPhotosRequest(opensocial.IdSpec.PersonId.VIEWER, param), ownerPhotosOnlyKey);
	dataReqObj.send(picsDataLoadCallback);
};

function picsDataLoadCallback(dataResponse){
	var picsStr='<table width="100%" border="0" cellpadding="0" cellspacing="5">'+
					'<tbody>'+
						'<tr>'+
							'<td colspan="4" style="cursor: pointer;" align="left" onclick="picImage()" class="text">'+
								'Back To Albums!'+
							'</td>'+
						'</tr>'+
						'<tr>';
	var ownerPhotosOnlyKey = 'optkeygetPhotosOWNER';
	ownerPhotos = dataResponse.get(ownerPhotosOnlyKey).getData();
	var i=1;
	ownerPhotos.each(function(ownerPhotos){
			var imgUrl = ownerPhotos.getField(MyOpenSpace.Photo.Field.IMAGE_URI);
			var photoId = ownerPhotos.getField(MyOpenSpace.Photo.Field.PHOTO_ID);
			limgUrl = imgUrl.replace("_l", "_s"); // hack to get small image uri from large
			limgUrl = limgUrl.replace("l_", "s_");
			if ('undefined' != typeof(imgUrl) && imgUrl != '') {
				picsStr += '<td class="photo_cell" valign="middle" align="center">'+
								'<a  href="#">'+
									"<div class='img-shadow'>"+
										'<img onclick="selectPhoto(\''+imgUrl+'\', '+photoId+');"  id="'+photoId+'" class="user_img" src="'+limgUrl+'" border="0" />'+
									"</div>"+
								'</a>'+
							'</td>';
			
				if (is_int(i/4)) {
						picsStr+= '<tr class="metadata_row"><td><br /></td><td><br /></td><td></td></tr><tr class="photo_row">';
				}
				i++;
			}
		});
		picsStr += '</tbody></table>';
		_$("photo_container").innerHTML=picsStr;
}
