mainApp.factory('Image',[ '$http', 'Identity', function($http, Identity){

	var data={};
	data.images=null;


	var parseUploadImageAnswer=function(response, failedToSendRequest){

		// Defined return object
		var requestParserResult={};
		requestParserResult.status=1;
		requestParserResult.failReason=null;

		
		if (typeof response.data.Images !== 'undefined') {
			// Set status code
			requestParserResult.status=0;
			data.images=response.data.Images;

		}
		else if(failedToSendRequest){
			requestParserResult.failReason="Failed to send request";
		}
		else{
			requestParserResult.failReason="Error";
		}
		return requestParserResult;
	};


	var getImages=function(callback){

		var result=$http.post('../server/index.php',
							  $.param({"token" : Identity.getToken(), "task" : "image", 'action':'listImage'}));  

		// Wait and handle the response
        result.then(function (response){
			callback(parseUploadImageAnswer(response, false));
        },function(response){
			callback(parseUploadImageAnswer(response, true));
        });

		
	};

	var uploadImage=function(fileToUpload, callback) {
		var form_data = new FormData();                  
		form_data.append('file', fileToUpload);
		console.log(fileToUpload)
		form_data.append("task" , "image")
		form_data.append("token" , Identity.getToken())
		form_data.append('action',"uploadImage")
		form_data.append('id','6564')
		form_data.append('file_name', fileToUpload.name);

		$.ajax({
		url: "../server/index.php", // Url to which the request is send
		type: "POST",             // Type of request to be send, called as method
		data: form_data, // Data sent to server, a set of key/value pairs (i.e. form fields and values)
		file_name:fileToUpload.name,
		token : Identity.getToken(),
		task : "image",
		action:'uploadImage',
		id:'6564',
		contentType: false,       // The content type used when sending data to the server.
		cache: false,             // To unable request pages to be cached
		processData:false,        // To send DOMDocument or non processed data file it is set to false
		success: function(data)   // A function to be called if request succeeds
			{
				alert("success")
			}
		});

		//var result=$http.post('../server/index.php',
			//				  $.param({"token" : Identity.getToken(), "task" : "image", 'action':'uploadImage', 'file_name':form_data, 'id':'6564'}));  

		// Wait and handle the response
     /*   result.then(function (response){
			callback(parseUploadImageAnswer(response, false));
        },function(response){
			callback(parseUploadImageAnswer(response, true));
        });*/


		  
	}


	var getData=function(response){
		return data;
	};
		
	// Return services objects
	return {
		getImages:getImages,
		getData:getData,
		uploadImage:uploadImage
	};

	
}]);