blob: 3c8001645daab628e175b27a36977439c6edba6c [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<title>Photark Mobile</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/jquery.mobile-1.1.0.min.css" rel="stylesheet"
type="text/css" />
<link href="css/mobiscroll-2.0.full.min.css" rel="stylesheet"
type="text/css" />
<link href="css/photoswipe.css" rel="stylesheet"
type="text/css" />
<link href="css/jquery.mobile.simpledialog.css" rel="stylesheet"
type="text/css" />
<link href="css/custom.css" rel="stylesheet"
type="text/css" />
<style>
.more
{
text-align:right;
}
</style>
<script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="scripts/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" src="scripts/mobiscroll-2.0.full.min.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/cordova-1.8.0.js" ></script>
<script type="text/javascript" charset="utf-8" src="scripts/klass.min.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/code.photoswipe-3.0.5.min.js"></script>
<!--For Facebook Implementation Start-->
<script type="text/javascript" src="scripts/cdv-plugin-fb-connect.js"></script><!--Facebook Connect Plugin-->
<script type="text/javascript" src="scripts/facebook_js_sdk.js"></script><!--Facebook JS SDK-->
<script type="text/javascript" src="scripts/facebook.js"></script><!--Facebook Implementation-->
<!--For Facebook Implementation End-->
<script type="text/javascript" charset="utf-8" src="scripts/jquery.mobile.simpledialog2.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/contacts.js" ></script>
<script type="text/javascript" charset="utf-8" src="scripts/utils.js" ></script>
<script type="text/javascript" charset="utf-8" src="scripts/tagging.js" ></script>
<script type="text/javascript" charset="utf-8" src="scripts/dataAccess.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/search.js"></script>
<!--For Flickr Implementation Start-->
<script type="text/javascript" charset="utf-8" src="scripts/childbrowser.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/jquery.md5.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/sha1.js"></script>
<script type="text/javascript" charset="utf-8" src="scripts/flickr.js"></script>
<!--For Flickr Implementation End-->
<!--For Picasa Implementation Start-->
<script type="text/javascript" charset="utf-8" src="scripts/picasa.js"></script>
<!--For Picasa Implementation End-->
<script type="text/javascript" charset="utf-8" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=true"></script>
<script type="text/javascript" charset="utf-8" src="scripts/geoLocation.js" ></script>
<script type="text/javascript" charset="utf-8" src="scripts/jquery.ui.map.js"></script>
<!-- <script type="text/javascript" charset="utf-8" src="scripts/jquery.ui.map.services.js"></script> -->
<script type="text/javascript" charset="utf-8" src="scripts/MapView.js"></script>
<script type="text/javascript">
var pictureSource;
// picture source
var destinationType;
// sets the format of returned value
var windowWidth;
var windowHeight;
var tagObjects;
var tagObjectsSaved;
// Wait for device
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
checkNetwork();
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
getContacts();
$('#ContactsPage li a').live('click', function() {
var name = $(this).text();
onContactsClick(name);
});
getLocation();
openDB();
//Screen orientation changed
$(window).bind( 'orientationchange', function(e){
if ($.event.special.orientationchange.orientation() == "portrait") {
adjustScreenLayout();
} else {
adjustScreenLayout();
}
});
adjustScreenLayout();
//To handle menu button clicks
document.addEventListener("menubutton", onMenuClick, false);
//Auto complete feature of location
var options = {
types: ['(cities)'
]
};
if(google) {
var autocomplete = new google.maps.places.Autocomplete($("#editLocation")[0], options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
//console.log(place.address_components);
});
} else {
}
}
//Document ready function
$(function() {
// Handler for Date Picker
$('#editDate').scroller({
preset : 'date',
theme : 'default',
display : 'modal',
mode : 'scroller',
dateOrder : 'yymmdd',
dateFormat : "yy-mm-dd"
});
//Handler for time picker
$('#editTime').scroller({
preset : 'time',
theme : 'default',
display : 'modal',
mode : 'scroller'
});
$('#searchStartDate').scroller({
preset : 'date',
theme : 'default',
display : 'modal',
mode : 'scroller',
dateOrder : 'yymmdd',
dateFormat : "yy-mm-dd"
});
$('#searchEndDate').scroller({
preset : 'date',
theme : 'default',
display : 'modal',
mode : 'scroller',
dateOrder : 'yymmdd',
dateFormat : "yy-mm-dd"
});
$("#tagPicture").click(function(e) {
e.preventDefault();
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
showDialog(e,x,y) ;
})
$("#tagPicture").css({
'position': 'relative'
});
});
function onPhotoDataSuccess(imageData) {
var largeImage = document.getElementById('largeImage');
largeImage.style.display = 'block';
largeImage.src = "data:image/jpeg;base64," + imageData;
}
function onPhotoURISuccess(imageURI) {
$("#metadata").html("");
var largeImage = document.getElementById('largeImage');
largeImage.style.display = 'block';
largeImage.src = imageURI;
$('#imageInfoButton').show();
$('#photoTagButton').show();
$('#homeButton').show();
$('#deleteButton').show();
$('#editDataButton').show();
$('#captureButton').hide();
$('#galleryButton').hide();
$('#webAlbumButton').hide();
$('#searchButton').hide();
$('#toolbar_message').hide();
$('#helpButton').hide();
$('#toolbar').listview("create");
uri= imageURI;
window.resolveLocalFileSystemURI(imageURI, onFileEntryComplete, isFail);
displayTagImage(imageURI) ;
tagObjects=new Array();
$('#largeImage').css({
// Using jQuery CSS we write the $width variable we previously specified as a pixel value. We use max-width incase the image is smaller than our viewport it won't scale it larger. Don't forget to set height to auto or else it will squish your photos.
'max-width' : windowWidth , 'height' : 'auto'
});
tagObjectsSaved=new Array();
viewData(imageURI);
$('#largeImage').click(function() { fullScreen(largeImage.src); });
}
function photoCaptureSuccess (uri) {
onPhotoURISuccess(uri);
clearMetadata();
date=getCurrentDate();
time=getCurrentTime();
updateDB();
$.mobile.changePage("#ConfirmLocation");
}
function onFileEntryComplete(fileEntry) {
fileEntry.file(successFile, isFail);
fileEntry.getMetadata(successMetadata, isFail);
}
function successMetadata(metadata) {
$("#metadata").append("<p> LastModified:" + metadata.modificationTime + "</p> ");
}
function successFile(file) {
$("#metadata").append("<p> Size:" + file.size + "bytes </p> <p> Type:" + file.type + " </p>");
}
function isFail() {
alert("Error Occured");
}
function capturePhoto() {
// Take picture using device camera and retrieve image
navigator.camera.getPicture(photoCaptureSuccess, onFail, {
destinationType : navigator.camera.DestinationType.FILE_URI,
quality : 50
});
}
function getPhoto(source) {
// Retrieve image file location from specified source
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality : 50,
destinationType : destinationType.FILE_URI,
sourceType : source
});
}
function onFail(message) {
alert('Failed because: ' + message);
}
function editDateOnClick(parent) {
parent.scroller('show');
}
function editTimeOnClick(parent) {
$('#editTime').scroller('show');
}
function save() {
nickname = $("#nickName").val();
date = $("#editDate").val();
time = $("#editTime").val();
loc= $("#editLocation").val();
people=$("#editPeople").val().split(",");
description=$("#editDiscription").val();
if(loc!=""){
adressToCoordinate(loc);
}
updateDB();
}
//This method load existing metadata to edit metadata page on page load
$('#EditMetadata').live('pageshow', function () {
$("#nickName").val(getNickname());
$("#editDate").val(getDate());
$("#editTime").val(getTime());
$("#editLocation").val(getLocation());
$("#editDiscription").val(getDescription());
var people=getPeople();
var s="";
for (var i=0; i < people.length; i++) {
s=s+people[i]+',';
};
$("#editPeople").val(s);
});
$('#photoTag').live('pageshow', function () {
markTags(tagObjectsSaved);
});
function clearMetadata(){
$("#nickName").val("Not defined");
$("#editDate").val("");
$("#editTime").val("");
$("#editLocation").val("");
$("#editDiscription").val("");
$("#editPeople").val("");
}
function onMenuClick(){
$.mobile.changePage("#optionMenu");
}
</script>
</head>
<body>
<!-- Page Start-->
<div id="main" data-role="page" data-theme="a">
<!-- Page Header Start -->
<div data-role="header" data-position="fixed">
<h1>PhotArc Mobile</h1>
</div>
<!-- Page Header End -->
<!-- Page Body Start -->
<div id="a" data-role="content" align="justify">
<ul id="mainMenu" data-role="listview" data-theme="a" data-inset="false">
<img id="largeImage"
src="images/home.png" />
<li data-icon="arrow-r" id="captureButton">
<a href="#" onclick="capturePhoto()">Capture Photo</a>
</li>
<li data-icon="arrow-r" id="galleryButton">
<a href="#" onclick="getPhoto(pictureSource.PHOTOLIBRARY)">From Gallery</a>
</li>
<li data-icon="arrow-r" id="webAlbumButton">
<a href="#webAlbum">Web Album</a>
</li>
<li data-icon="arrow-r" id="searchButton">
<a href="#search_photoes">Search</a>
</li>
<li id="imageInfoButton" data-icon="arrow-r" style="display: none">
<a href="#imageInfo" data-rel="dialog" >Image Info</a>
</li>
<li id="photoTagButton" data-icon="arrow-r" style="display: none">
<a href="#photoTag">View tags</a>
</li>
<li id="editDataButton" data-icon="arrow-r" style="display: none">
<a href="#EditMetadata">Edit image data</a>
</li>
<li id="deleteButton" data-icon="arrow-r" style="display: none" data-rel="dialog">
<a href="#ConfirmDelete">Delete Photo</a>
</li>
</ul>
<!-- This is not visible
Used to store the uri for photoswipe -->
<div id="slideshow" style="display: none;">
<ul id="Gallery">
<!-- To be added dynamically -->
</ul>
</div>
</div>
<!-- Page Body End -->
<!-- Page Footer Start -->
<div data-role="footer" data-position="fixed">
<div id="toolbar_icons" style="text-align: center" >
<a href="#" id="homeButton" data-role="button" data-icon="home" style="display: none" onclick="onHomeButtonClicked()">Home</a>
<a href="#" id="helpButton" data-role="button" data-icon="info" >Help</a>
</div>
</div>
<!-- Page Footer End -->
</div>
<!-- Edit metadata page -->
<div id="EditMetadata" data-role="page">
<div data-role="header" data-position="fixed">
<h1>Edit Metadata</h1>
</div>
<!-- Form Content -->
<div data-role="content">
<div data-role="fieldcontain">
<label for="name"> Photo nick name: </label>
<input type="text"
id="nickName" value="" />
</div>
<div data-role="fieldcontain">
<label for="name"> Date: </label>
<input type="text" name="name"
id="editDate" value="" onclick='editDateOnClick($("#editDate"))' />
</div>
<div data-role="fieldcontain">
<label for="name"> Time: </label>
<input type="text" name="name"
id="editTime" value="" onclick='editTimeOnClick($("#editTime"))' />
</div>
<div data-role="fieldcontain">
<label for="textarea"> Location </label>
<input type="text" name="searchbox" id="editLocation" value="" />
</div>
<div data-role="fieldcontain">
<label for="textarea"> People: </label>
<textarea cols="40" rows="8" name="textarea" id="editPeople"></textarea>
<a href="#ContactsPage" data-role="button" data-theme="a" data-mini="true">Browse</a>
</div>
<div data-role="fieldcontain">
<label for="textarea"> Discription </label>
<textarea cols="40" rows="8" name="textarea" id="editDiscription"></textarea>
</div>
</div>
<div data-role="footer" data-position="fixed" style="text-align: center">
<a href="index.html" data-icon="check" onclick="save()">Save</a>
<a href="index.html" data-icon="delete">Cancel</a>
</div>
</div>
<!-- Page End -->
<!-- Contacts List Page-->
<div id="ContactsPage" data-role="page">
<div data-role="header">
<h1>Contacts</h1>
</div>
<div data-role="content">
<ul id="allContacts" data-role="listview" data-filter="true" data-inset="true">
</ul>
</div>
</div>
<!-- Page End -->
<!-- Confirm Delete Dialog-->
<div id="ConfirmDelete" data-role="page">
<div data-role="header">
<h1>Confirm Delete</h1>
</div>
<div data-role="content">
<p>
Are you sure you want to delete this photo?
</p>
<a href="index.html"
data-role="button" onclick="deleteFile()"
data-theme="b">Delete</a>
<a href="index.html"
data-role="button"
data-theme="b">Cancel</a>
</div>
</div>
<!-- Page End -->
<!-- User's Web Album -->
<div id="webAlbum" data-role="page">
<!-- Page Header Start -->
<div data-role="header" data-position="fixed">
<h1>PhotArc Mobile</h1>
</div>
<!-- Page Header End -->
<!-- Content Start-->
<!--Facebook Start-->
<div data-role="fieldcontain" class="switch">
<fieldset data-role="controlgroup">
<label for="facebookSwitch">Facebook</label>
<select name="facebookSwitch" id="facebookSwitch" data-theme="a" data-role="slider" data-mini="true">
<option value="off" selected="true">
Off
</option>
<option value="on">
On
</option>
</select>
</fieldset>
</div>
<div id="facebook"></div>
<!--Facebook End-->
<hr />
<!--Picasa Begin-->
<div data-role="fieldcontain" class="switch">
<fieldset data-role="controlgroup">
<label for="picasaSwitch">Picasa</label>
<select name="picasaSwitch" id="picasaSwitch" data-theme="a" data-role="slider" data-mini="true">
<option value="off" selected="true">
Off
</option>
<option value="on">
On
</option>
</select>
</fieldset>
</div>
<div id="picasa"></div>
<hr />
<!--Picasa End-->
<!--Flickr Begin-->
<div data-role="fieldcontain" class="switch">
<fieldset data-role="controlgroup">
<label for="flickrSwitch">Flickr</label>
<select name="flickrSwitch" id="flickrSwitch" data-theme="a" data-role="slider" data-mini="true">
<option value="off" selected="true">
Off
</option>
<option value="on">
On
</option>
</select>
</fieldset>
</div>
<div id="flickr"></div>
<!--Flickr End-->
<!-- Content End -->
<!-- Page Footer Start -->
<div data-role="footer" data-position="fixed" >
<div id="toolbar_message" style="text-align: center">
<a href="#" data-role="button" data-icon="search">Search</a>
</div>
<div id="toolbar_icons" style="display: none;text-align: center" >
<a href="#EditMetadata" data-role="button" data-icon="plus" data-transition="flip">Edit Metadata</a>
<a href="#" data-role="button" data-icon="search">Search</a>
<a href="#ConfirmDelete" data-role="button" data-icon="delete" data-rel="dialog" data-transition="pop">Delete</a>
</div>
</div>
<!-- Page Footer End -->
</div>
<!-- Search page -->
<div id="search_photoes" data-role="page">
<div data-role="header" data-position="fixed">
<h1>Search Photos</h1>
</div>
<div data-role="content">
<div data-role="fieldcontain">
<label for="search"> Enter name: </label>
<input type="text" name="search" id="searchName" value="" />
</div>
<p>
Date:
</p>
<div data-role="fieldcontain">
<label for="search">From:</label>
<input type="text" name="search" id="searchStartDate" value="" onclick='editDateOnClick($("#searchStartDate"))'/>
<label for="search">To:</label>
<input type="text" name="search" id="searchEndDate" value="" onclick='editDateOnClick($("#searchEndDate"))'/>
</div>
<div data-role="fieldcontain">
<label for="search"> Enter location: </label>
<input type="text" name="search" id="searchLocation" value="" />
</div>
<div data-role="fieldcontain">
<label for="textarea"> People: </label>
<textarea cols="40" rows="8" name="textarea" id="searchPeople"></textarea>
<a href="#ContactsPage" data-role="button" data-theme="a" data-mini="true">Browse</a>
</div>
</div>
<div data-role="footer" data-position="fixed" style="text-align: center">
<a href="#"
data-role="button" data-mini="true" data-icon="search" onclick='doSearch()'>Search</a>
<a href="#"
data-role="button" data-rel="dialog" data-transition="pop" data-icon="grid" onclick="getPhoto(pictureSource.PHOTOLIBRARY)">Shaw all</a>
<a href="index.html"
data-role="button" data-mini="true"
data-icon="back">Cancel</a>
</div>
</div>
<!-- Page End -->
<!-- Search Results page-->
<div id="searchResults" data-role="page">
<div data-role="header">
<h1>Results</h1>
</div>
<div data-role="content">
<div class="ui-grid-a" id="resultGallery" style="padding=5px !important">
<!-- To be added dinamically -->
</div>
</div>
</div>
<!-- Page End -->
<!-- Image Info page-->
<div id="imageInfo" data-role="page">
<div data-role="header">
<h1>Image Info</h1>
</div>
<div data-role="content">
<div id="metadata">
<p>Capture or open a photo to view data.</p>
</div>
<div id="infoControlls">
<a href="#mapView"
data-role="button" data-mini="true" data-icon="star" onclick=''>Show in Map</a>
</div>
</div>
</div>
<!-- Page End -->
<!-- Confirm Location Dialog-->
<div id="ConfirmLocation" data-role="dialog">
<div data-role="header">
<h1>Add location.</h1>
</div>
<div data-role="content">
<p>
Do you want to add current location to this photo?
</p>
<a href="#"
data-role="button" onclick="addLocation()"
data-theme="b">Yes</a>
<a href="index.html"
data-role="button"
data-theme="b">No</a>
</div>
</div>
<!-- Page End -->
<!-- Map View-->
<div id="mapView" data-role="page">
<div data-role="header">
<a href="index.html" data-icon="delete">Back</a>
<h1>Map View</h1>
</div>
<div data-role="content">
<div class="item rounded dark">
<div id="map_canvas" align="center"></div>
</div>
</div>
</div>
<!-- Page End -->
<!-- options menu page-->
<div id="optionMenu" data-role="dialog">
<div data-role="header">
<h1>Menu</h1>
</div>
<div data-role="content">
<div id="options">
<a href="#"
data-role="button" data-mini="false" data-icon="grid" onclick='viewAllImages()'>View all photos</a>
<a href="#mapView"
data-role="button" data-mini="false" data-icon="grid" onclick=''>View all in map</a>
<a href="#help"
data-role="button" data-mini="false" data-icon="info" onclick=''>Help</a>
<a href="#"
data-role="button" data-mini="false" data-icon="back" onclick='navigator.app.exitApp()'>Exit</a>
</div>
</div>
</div>
<!-- Page End -->
<!-- photo tag page-->
<div id="photoTag" data-role="page" data-add-back-btn="true" data-theme="a">
<div data-role="header" >
<h1>Tag Photo</h1>
</div>
<div data-role="content">
<div id="tagPicture">
<img id="tagImage"/>
</div>
<a href="#" id="enableTaggingButton"
data-role="button" data-mini="false" data-icon="grid" onclick='enableTagging()'>Enable Tagging</a>
<a href="#" id="saveTagsButton"
data-role="button" data-mini="false" data-icon="grid" style="display: none" onclick='saveTags()'>Save tags</a>
<a href="#" id="clearTagsButton"
data-role="button" data-mini="false" data-icon="delete" style="display: none" onclick='clearTags()'>Clear tags</a>
<a href="#" id="cancelTaggingButton"
data-role="button" data-mini="false" data-icon="grid" style="display: none" onclick='enableTagging()'>Cancel</a>
</div>
</div>
<!-- Page End -->
</body>
</html>