diff --git a/soundmap/api/soundmap.soinudroid.php b/soundmap/api/soundmap.soinudroid.php
new file mode 100644
index 0000000..e69de29
diff --git a/soundmap/api/soundmap.uploader.php b/soundmap/api/soundmap.uploader.php
new file mode 100644
index 0000000..a350ada
--- /dev/null
+++ b/soundmap/api/soundmap.uploader.php
@@ -0,0 +1,94 @@
+ $info['categoria'],
+ 'post_content' => $content,
+ 'post_status' => 'publish',
+ 'post_title' => $title,
+ 'post_type' => 'marker',
+ 'comment_status' => 'closed'
+ //'tags_input' => [ ', , <...>' ] //For tags.
+ );
+ $post_id=wp_insert_post($post_d);
+
+
+
+
+ update_post_meta($post_id, 'soundmap_marker_lat', $soundmark_lat);
+ update_post_meta($post_id, 'soundmap_marker_lng', $soundmark_lng);
+ update_post_meta($post_id, 'soundmap_marker_author', $soundmark_author);
+ update_post_meta($post_id, 'soundmap_marker_date', $soundmark_date);
+ update_post_meta($post_id, 'EMAIL', $soundmark_mail);
+
+
+ $files = $info['attachID'];
+ delete_post_meta($post_id, 'soundmap_attachments_id');
+ update_post_meta($post_id, 'soundmap_attachments_id', $files);
+ soundmap_attach_file($files, $post_id);
+
+ echo "ok";
+ die();
+
+}
+?>
\ No newline at end of file
diff --git a/soundmap/api/soundmap_tags.php b/soundmap/api/soundmap_tags.php
new file mode 100644
index 0000000..a7cd618
--- /dev/null
+++ b/soundmap/api/soundmap_tags.php
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+ ',$sep = ' ',$after = ' '){
+ global $post;
+ $marker_id = $post->ID;
+
+ if ($post->post_type != "marker")
+ return;
+
+ $author = get_post_meta($marker_id, 'soundmap_marker_author', TRUE);
+ $date = get_post_meta($marker_id, 'soundmap_marker_date', TRUE);
+ echo $pre;
+ echo $author;
+ echo $sep;
+ echo $date;
+ echo $after;
+
+}
+
+function get_marker_author($id){
+
+ return get_post_meta($id, 'soundmap_marker_author', TRUE);
+
+}
+
+
+function get_marker_date($id){
+
+ return get_post_meta($id, 'soundmap_marker_date', TRUE);
+
+}
+
+function the_player($marker_id){
+
+ $data = array();
+ $files = get_post_meta($marker_id, 'soundmap_attachments_id', FALSE);
+ foreach ($files as $key => $value){
+ $file = array();
+ $att = get_post($value);
+ $file['id'] = $value;
+ $file['fileURI'] = wp_get_attachment_url($value);
+ $file['filePath'] = get_attached_file($value);
+ $file['info'] = soundmap_get_id3info($file['filePath']);
+ $file['name'] = $att->post_name;
+ $data['m_files'][] = $file;
+ }
+ add_player_interface($data['m_files'], $marker_id);
+}
+
+
+function insert_upload_form($text){
+
+ if (function_exists("qtrans_init")){
+ //We are using multilanguage
+ global $q_config;
+ $lang=$q_config['language'];
+ $dir = WP_PLUGIN_URL . "/soundmap/modules/module.soundmap.upload.php?lang=$lang&TB_iframe=true&width=960&height=550";
+ }else{
+ $dir = WP_PLUGIN_URL . "/soundmap/modules/module.soundmap.upload.php?TB_iframe=true&width=960&height=550";
+ }
+ $t="";
+ $title=__("Add new recording","soundmap");
+ $t .="$text ";
+ echo $t;
+}
+
+function soundmap_rss_enclosure(){
+
+ $id = get_the_ID();
+
+ $files = get_post_meta($id, 'soundmap_attachments_id', FALSE);
+
+ foreach ( (array) $files as $key => $value) {
+
+ $fileURI= wp_get_attachment_url($value);
+ $info= soundmap_get_id3info($file['filePath']);
+ echo apply_filters('rss_enclosure', ' ' . "\n");
+
+ }
+}
+
+
+function add_player_interface($files, $id){
+
+ if(!is_array($files) || (count($files)==0))
+ return;
+
+ global $soundmap_Player;
+
+ $insert_content = $soundmap_Player->print_audio_content($files, $id);
+ echo $insert_content;
+
+}
\ No newline at end of file
diff --git a/soundmap/css/jplayer.blue.monday.css b/soundmap/css/jplayer.blue.monday.css
deleted file mode 100644
index 098fa19..0000000
--- a/soundmap/css/jplayer.blue.monday.css
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Skin for jPlayer Plugin (jQuery JavaScript Library)
- * http://www.happyworm.com/jquery/jplayer
- *
- * Skin Name: Blue Monday
- *
- * Copyright (c) 2010 Happyworm Ltd
- * Dual licensed under the MIT and GPL licenses.
- * - http://www.opensource.org/licenses/mit-license.php
- * - http://www.gnu.org/copyleft/gpl.html
- *
- * Author: Silvia Benvenuti
- * Skin Version: 3.0 (jPlayer 2.0.0)
- * Date: 20th December 2010
- */
-
-div.jp-audio,
-div.jp-video {
-
- /* Edit the font-size to counteract inherited font sizing.
- * Eg. 1.25em = 1 / 0.8em
- */
-
- font-size:1.25em;
-
- font-family:Verdana, Arial, sans-serif;
- line-height:1.6;
- color: #666;
-}
-div.jp-audio {
- width:420px;
-}
-div.jp-video-270p {
- width:480px;
-}
-div.jp-video-360p {
- width:640px;
-}
-div.jp-interface {
- position: relative;
- background-color:#eee;
- /* width:418px; */
- width:100%;
- border:1px solid #009be3;
-}
-div.jp-audio div.jp-type-single div.jp-interface {
- height:80px;
- border-bottom:none;
-}
-div.jp-audio div.jp-type-playlist div.jp-interface {
- height:80px;
-}
-div.jp-video div.jp-type-single div.jp-interface {
- height:60px;
- border-bottom:none;
-}
-div.jp-video div.jp-type-playlist div.jp-interface {
- height:60px;
-}
-div.jp-interface ul.jp-controls {
- list-style-type:none;
- padding:0;
- margin: 0;
-}
-div.jp-interface ul.jp-controls li {
- /* position: absolute; */
- display:inline;
-}
-div.jp-interface ul.jp-controls a {
- position: absolute;
- overflow:hidden;
- text-indent:-9999px;
-}
-a.jp-play,
-a.jp-pause {
- width:40px;
- height:40px;
- z-index:1;
-}
-div.jp-audio div.jp-type-single a.jp-play,
-div.jp-audio div.jp-type-single a.jp-pause {
- top:20px;
- left:40px;
-}
-div.jp-audio div.jp-type-playlist a.jp-play,
-div.jp-audio div.jp-type-playlist a.jp-pause {
- top:20px;
- left:48px;
-}
-div.jp-video a.jp-play,
-div.jp-video a.jp-pause {
- top:15px;
-}
-div.jp-video-270p div.jp-type-single a.jp-play,
-div.jp-video-270p div.jp-type-single a.jp-pause {
- left:195px;
-}
-div.jp-video-270p div.jp-type-playlist a.jp-play,
-div.jp-video-270p div.jp-type-playlist a.jp-pause {
- left:220px;
-}
-div.jp-video-360p div.jp-type-single a.jp-play,
-div.jp-video-360p div.jp-type-single a.jp-pause {
- left:275px;
-}
-div.jp-video-360p div.jp-type-playlist a.jp-play,
-div.jp-video-360p div.jp-type-playlist a.jp-pause {
- left:300px;
-}
-a.jp-play {
- background: url("../img/jplayer.blue.monday.jpg") 0 0 no-repeat;
-}
-a.jp-play:hover {
- background: url("../img/jplayer.blue.monday.jpg") -41px 0 no-repeat;
-}
-a.jp-pause {
- background: url("../img/jplayer.blue.monday.jpg") 0 -42px no-repeat;
- display: none;
-}
-a.jp-pause:hover {
- background: url("../img/jplayer.blue.monday.jpg") -41px -42px no-repeat;
-}
-div.jp-audio div.jp-type-single a.jp-stop {
- top:26px;
- left:90px;
-}
-div.jp-audio div.jp-type-playlist a.jp-stop {
- top:26px;
- left:126px;
-}
-div.jp-video a.jp-stop {
- top:21px;
-}
-div.jp-video-270p div.jp-type-single a.jp-stop {
- left:245px;
-}
-div.jp-video-270p div.jp-type-playlist a.jp-stop {
- left:298px;
-}
-div.jp-video-360p div.jp-type-single a.jp-stop {
- left:325px;
-}
-div.jp-video-360p div.jp-type-playlist a.jp-stop {
- left:378px;
-}
-a.jp-stop {
- background: url("../img/jplayer.blue.monday.jpg") 0 -83px no-repeat;
- width:28px;
- height:28px;
- z-index:1;
-}
-a.jp-stop:hover {
- background: url("../img/jplayer.blue.monday.jpg") -29px -83px no-repeat;
-}
-div.jp-audio div.jp-type-playlist a.jp-previous {
- left:20px;
- top:26px;
-}
-div.jp-video div.jp-type-playlist a.jp-previous {
- top:21px;
-}
-div.jp-video-270p div.jp-type-playlist a.jp-previous {
- left:192px;
-}
-div.jp-video-360p div.jp-type-playlist a.jp-previous {
- left:272px;
-}
-a.jp-previous {
- background: url("../img/jplayer.blue.monday.jpg") 0 -112px no-repeat;
- width:28px;
- height:28px;
-}
-a.jp-previous:hover {
- background: url("../img/jplayer.blue.monday.jpg") -29px -112px no-repeat;
-}
-div.jp-audio div.jp-type-playlist a.jp-next {
- left:88px;
- top:26px;
-}
-div.jp-video div.jp-type-playlist a.jp-next {
- top:21px;
-}
-div.jp-video-270p div.jp-type-playlist a.jp-next {
- left:260px;
-}
-div.jp-video-360p div.jp-type-playlist a.jp-next {
- left:340px;
-}
-a.jp-next {
- background: url("../img/jplayer.blue.monday.jpg") 0 -141px no-repeat;
- width:28px;
- height:28px;
-}
-a.jp-next:hover {
- background: url("../img/jplayer.blue.monday.jpg") -29px -141px no-repeat;
-}
-div.jp-progress {
- position: absolute;
- overflow:hidden;
- background-color: #ddd;
-}
-div.jp-audio div.jp-type-single div.jp-progress {
- top:32px;
- left:130px;
- width:122px;
- height:15px;
-}
-div.jp-audio div.jp-type-playlist div.jp-progress {
- top:32px;
- left:164px;
- width:122px;
- height:15px;
-}
-div.jp-video div.jp-progress {
- top:0px;
- left:0px;
- width:100%;
- height:10px;
-}
-div.jp-seek-bar {
- background: url("../img/jplayer.blue.monday.jpg") 0 -202px repeat-x;
- width:0px;
- /* height:15px; */
- height:100%;
- cursor: pointer;
-}
-div.jp-play-bar {
- background: url("../img/jplayer.blue.monday.jpg") 0 -218px repeat-x ;
- width:0px;
- /* height:15px; */
- height:100%;
-}
-
-/* The seeking class is added/removed inside jPlayer */
-div.jp-seeking-bg {
- background: url("../img/pbar-ani.gif");
-}
-
-a.jp-mute,
-a.jp-unmute {
- width:18px;
- height:15px;
-}
-div.jp-audio div.jp-type-single a.jp-mute,
-div.jp-audio div.jp-type-single a.jp-unmute {
- top:32px;
- left:274px;
-}
-div.jp-audio div.jp-type-playlist a.jp-mute,
-div.jp-audio div.jp-type-playlist a.jp-unmute {
- top:32px;
- left:296px;
-}
-div.jp-video a.jp-mute,
-div.jp-video a.jp-unmute {
- top:27px;
-}
-div.jp-video-270p div.jp-type-single a.jp-mute,
-div.jp-video-270p div.jp-type-single a.jp-unmute {
- left:304px;
-}
-div.jp-video-270p div.jp-type-playlist a.jp-unmute,
-div.jp-video-270p div.jp-type-playlist a.jp-mute {
- left:363px;
-}
-div.jp-video-360p div.jp-type-single a.jp-mute,
-div.jp-video-360p div.jp-type-single a.jp-unmute {
- left:384px;
-}
-div.jp-video-360p div.jp-type-playlist a.jp-mute,
-div.jp-video-360p div.jp-type-playlist a.jp-unmute {
- left:443px;
-}
-a.jp-mute {
- background: url("../img/jplayer.blue.monday.jpg") 0 -186px no-repeat;
-}
-a.jp-mute:hover {
- background: url("../img/jplayer.blue.monday.jpg") -19px -170px no-repeat;
-}
-a.jp-unmute {
- background: url("../img/jplayer.blue.monday.jpg") 0 -170px no-repeat;
- display: none;
-}
-a.jp-unmute:hover {
- background: url("../img/jplayer.blue.monday.jpg") -19px -186px no-repeat;
-}
-div.jp-volume-bar {
- position: absolute;
- overflow:hidden;
- background: url("../img/jplayer.blue.monday.jpg") 0 -250px repeat-x;
- width:46px;
- height:5px;
- cursor: pointer;
-}
-div.jp-audio div.jp-type-single div.jp-volume-bar {
- top:37px;
- left:302px;
-}
-div.jp-audio div.jp-type-playlist div.jp-volume-bar {
- top:37px;
- left:324px;
-}
-div.jp-video div.jp-volume-bar {
- top:32px;
-}
-div.jp-video-270p div.jp-type-single div.jp-volume-bar {
- left:332px;
-}
-div.jp-video-270p div.jp-type-playlist div.jp-volume-bar {
- left:391px;
-}
-div.jp-video-360p div.jp-type-single div.jp-volume-bar {
- left:412px;
-}
-div.jp-video-360p div.jp-type-playlist div.jp-volume-bar {
- left:471px;
-}
-div.jp-volume-bar-value {
- background: url("../img/jplayer.blue.monday.jpg") 0 -256px repeat-x;
- width:0px;
- height:5px;
-}
-div.jp-current-time,
-div.jp-duration {
- position: absolute;
- font-size:.64em;
- font-style:oblique;
-}
-div.jp-duration {
- text-align: right;
-}
-div.jp-audio div.jp-type-single div.jp-current-time,
-div.jp-audio div.jp-type-single div.jp-duration {
- top:49px;
- left:130px;
- width:122px;
-}
-div.jp-audio div.jp-type-playlist div.jp-current-time,
-div.jp-audio div.jp-type-playlist div.jp-duration {
- top:49px;
- left:164px;
- width:122px;
-}
-div.jp-video div.jp-current-time,
-div.jp-video div.jp-duration {
- top:10px;
- left:0px;
- width:98%;
- padding:0 1%;
-}
-div.jp-playlist {
- /* width:418px; */
- width:100%;
- background-color:#ccc;
- border:1px solid #009be3;
- border-top:none;
-}
-div.jp-playlist ul {
- list-style-type:none;
- margin:0;
- padding:0 20px;
- /* background-color:#ccc; */
- /* border:1px solid #009be3; */
- /* border-top:none; */
- /* width:378px; */
- font-size:.72em;
-}
-
-
-div.jp-type-single div.jp-playlist li {
- padding:5px 0 5px 20px;
- font-weight:bold;
-}
-div.jp-type-playlist div.jp-playlist li {
- padding:5px 0 4px 20px;
- border-bottom:1px solid #eee;
-}
-/*
-div.jp-video div.jp-playlist li {
- padding:5px 0 5px 20px;
- font-weight:bold;
-}
-*/
-div.jp-type-playlist div.jp-playlist li.jp-playlist-last {
- padding:5px 0 5px 20px;
- border-bottom:none;
-}
-div.jp-type-playlist div.jp-playlist li.jp-playlist-current {
- list-style-type:square;
- list-style-position:inside;
- padding-left:8px;
-}
-div.jp-type-playlist div.jp-playlist a {
- color: #666;
- text-decoration: none;
-}
-div.jp-type-playlist div.jp-playlist a:hover {
- color:#0d88c1;
-}
-div.jp-type-playlist div.jp-playlist a.jp-playlist-current {
- color:#0d88c1;
-}
-div.jp-type-playlist div.jp-playlist div.jp-free-media {
- display:inline;
- margin-left:20px;
-}
-
-div.jp-video div.jp-video-play {
- background: transparent url("../img/jplayer.blue.monday.video.play.png") no-repeat center;
- /* position: relative; */
- position: absolute;
- cursor:pointer;
- z-index:2;
-}
-div.jp-video div.jp-video-play:hover {
- background: transparent url("../img/jplayer.blue.monday.video.play.hover.png") no-repeat center;
-}
-div.jp-video-270p div.jp-video-play {
- top:-270px;
- width:480px;
- height:270px;
-}
-div.jp-video-360p div.jp-video-play {
- top:-360px;
- width:640px;
- height:360px;
-}
-
-div.jp-jplayer {
- width:0px;
- height:0px;
-}
-div.jp-video div.jp-jplayer {
- border:1px solid #009be3;
- border-bottom:none;
- z-index:1;
-}
-div.jp-video-270p div.jp-jplayer {
- width:480px;
- height:270px;
-}
-div.jp-video-360p div.jp-jplayer {
- width:640px;
- height:360px;
-}
-div.jp-jplayer {
- background-color: #000000;
-}
diff --git a/soundmap/css/jquery.plupload.queue.css b/soundmap/css/jquery.plupload.queue.css
deleted file mode 100644
index 1c9cb7d..0000000
--- a/soundmap/css/jquery.plupload.queue.css
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- Plupload
-------------------------------------------------------------------- */
-
-.plupload_button {
- display: -moz-inline-box; /* FF < 3*/
- display: inline-block;
- font: normal 12px sans-serif;
- text-decoration: none;
- color: #42454a;
- border: 1px solid #bababa;
- padding: 2px 8px 3px 20px;
- margin-right: 4px;
- background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center;
- outline: 0;
-
- /* Optional rounded corners for browsers that support it */
- -moz-border-radius: 3px;
- -khtml-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-
-.plupload_button:hover {
- color: #000;
- text-decoration: none;
-}
-
-.plupload_disabled, a.plupload_disabled:hover {
- color: #737373;
- border-color: #c5c5c5;
- background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center;
- cursor: default;
-}
-
-.plupload_add {
- background-position: -181px center;
-}
-
-.plupload_wrapper {
- font: normal 11px Verdana,sans-serif;
- width: 100%;
-}
-
-.plupload_container {
- background: url('../img/transp50.png');
- /*-moz-border-radius: 5px;*/
-}
-
-.plupload_container input {
- border: 1px solid #DDD;
- font: normal 11px Verdana,sans-serif;
- width: 98%;
-}
-
-.plupload_header {background: #2A2C2E url('../img/backgrounds.gif') repeat-x;}
-.plupload_header_content {
- background: url('../img/backgrounds.gif') no-repeat 0 -317px;
- min-height: 56px;
- padding-left: 60px;
- color: #FFF;
-}
-.plupload_header_title {
- font: normal 18px sans-serif;
- padding: 6px 0 3px;
-}
-.plupload_header_text {
- font: normal 12px sans-serif;
-}
-
-.plupload_filelist {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-
-.plupload_scroll .plupload_filelist {
- height: 185px;
- background: #F5F5F5;
- overflow-y: scroll;
-}
-
-.plupload_filelist li {
- padding: 10px 8px;
- background: #F5F5F5 url('../img/backgrounds.gif') repeat-x 0 -156px;
- border-bottom: 1px solid #DDD;
-}
-
-.plupload_filelist_header, .plupload_filelist_footer {
- background: #DFDFDF;
- padding: 8px 8px;
- color: #42454A;
-}
-.plupload_filelist_header {
- border-top: 1px solid #EEE;
- border-bottom: 1px solid #CDCDCD;
-}
-
-.plupload_filelist_footer {border-top: 1px solid #FFF; height: 40px; line-height: 25px; vertical-align: middle;}
-.plupload_file_name {float: left; overflow: hidden}
-.plupload_file_status {color: #777;}
-.plupload_file_status span {color: #42454A;}
-.plupload_file_size, .plupload_file_status, .plupload_progress {
- float: right;
- width: 80px;
-}
-.plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;}
-
-.plupload_filelist .plupload_file_name {width: 205px}
-
-.plupload_file_action {
- float: right;
- width: 16px;
- height: 16px;
- margin-left: 15px;
-}
-
-.plupload_file_action * {
- display: none;
- width: 16px;
- height: 16px;
-}
-
-li.plupload_uploading {background: #ECF3DC url('../img/backgrounds.gif') repeat-x 0 -238px;}
-li.plupload_done {color:#AAA}
-
-li.plupload_delete a {
- background: url('../img/delete.gif');
-}
-
-li.plupload_failed a {
- background: url('../img/error.gif');
- cursor: default;
-}
-
-li.plupload_done a {
- background: url('../img/done.gif');
- cursor: default;
-}
-
-.plupload_progress, .plupload_upload_status {
- display: none;
-}
-
-.plupload_progress_container {
- margin-top: 3px;
- border: 1px solid #CCC;
- background: #FFF;
- padding: 1px;
-}
-.plupload_progress_bar {
- width: 0px;
- height: 7px;
- background: #CDEB8B;
-}
-
-.plupload_scroll .plupload_filelist_header .plupload_file_action, .plupload_scroll .plupload_filelist_footer .plupload_file_action {
- margin-right: 17px;
-}
-
-/* Floats */
-
-.plupload_clear,.plupload_clearer {clear: both;}
-.plupload_clearer, .plupload_progress_bar {
- display: block;
- font-size: 0;
- line-height: 0;
-}
-
-li.plupload_droptext {
- background: transparent;
- text-align: center;
- vertical-align: middle;
- border: 0;
- line-height: 165px;
-}
diff --git a/soundmap/css/soundmap-admin.css b/soundmap/css/soundmap-admin.css
index 43b9ac7..111e705 100644
--- a/soundmap/css/soundmap-admin.css
+++ b/soundmap/css/soundmap-admin.css
@@ -5,3 +5,14 @@
#sound-att-table .soundmap-att-left{width:60%; padding-right:6px}
#sound-att-table tr {border-bottom:1px solid #666;}
#sound-att-table td {padding: 3px 0;}
+
+.uploadFileQueued{
+ height:36px;
+ margin:10px 0;
+}
+
+.filename{
+ position:relative;
+ margin-top:10px;
+ font-weight: bold;
+}
diff --git a/soundmap/img/backgrounds.gif b/soundmap/img/backgrounds.gif
deleted file mode 100644
index 39e33eb..0000000
Binary files a/soundmap/img/backgrounds.gif and /dev/null differ
diff --git a/soundmap/img/buttons-disabled.png b/soundmap/img/buttons-disabled.png
deleted file mode 100644
index afa11af..0000000
Binary files a/soundmap/img/buttons-disabled.png and /dev/null differ
diff --git a/soundmap/img/buttons.png b/soundmap/img/buttons.png
deleted file mode 100644
index 153e738..0000000
Binary files a/soundmap/img/buttons.png and /dev/null differ
diff --git a/soundmap/img/map_icons/marker.png b/soundmap/img/map_icons/marker.png
new file mode 100644
index 0000000..96378f9
Binary files /dev/null and b/soundmap/img/map_icons/marker.png differ
diff --git a/soundmap/img/map_icons/marker_shadow.png b/soundmap/img/map_icons/marker_shadow.png
new file mode 100644
index 0000000..ada8e36
Binary files /dev/null and b/soundmap/img/map_icons/marker_shadow.png differ
diff --git a/soundmap/img/pbar-ani.gif b/soundmap/img/pbar-ani.gif
deleted file mode 100644
index 0dfd45b..0000000
Binary files a/soundmap/img/pbar-ani.gif and /dev/null differ
diff --git a/soundmap/img/throbber.gif b/soundmap/img/throbber.gif
deleted file mode 100644
index 4ae8b16..0000000
Binary files a/soundmap/img/throbber.gif and /dev/null differ
diff --git a/soundmap/js/jquery.ui.map.full.min.js b/soundmap/js/jquery.ui.map.full.min.js
new file mode 100755
index 0000000..94e95f8
--- /dev/null
+++ b/soundmap/js/jquery.ui.map.full.min.js
@@ -0,0 +1,7 @@
+ /*!
+ * jQuery UI Google Map 3.0-alpha
+ * http://code.google.com/p/jquery-ui-map/
+ * Copyright (c) 2010 - 2011 Johan Säll Larsson
+ * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+ */
+ eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(3($){$.1p("1r.1I",{t:{D:(6.7)?l 6.7.Q(0.0,0.0):m,12:(6.7)?6.7.23.24:m,X:5},25:3(){2.t.D=2.E(2.t.D);k a=2.22;2.q=a.17(\'q\');2.w=[];k b=2.w[a.17(\'q\')]={9:l 6.7.21(a[0],2.t),A:[],u:[],s:[]};6.7.B.20(b.9,\'1Z\',3(){a.1i(\'1Y\',b.9)});8 $(b.9)},K:3(a,b){k c=2.4(\'9\');o.r(2.t,{\'D\':c.1U(),\'12\':c.1Q(),\'X\':c.1O()});j(a&&b){$.1d.I.K.1f(2,1g)};c.H(2.t)},1j:3(a){2.4(\'y\',l 6.7.1G()).r(2.E(a));2.4(\'9\').1F(2.4(\'y\'))},1z:3(a,b){2.4(\'9\').1y[b].J(2.z(a))},1w:3(a,b,c){k d=2.4(\'9\');k c=c||6.7.1t;a.N=(a.N)?2.E(a.N):m;k e=l c(o.r({\'9\':d,\'y\':1q},a));k f=2.4(\'A\',[]);j(e.q){f[e.q]=e}n{f.J(e)}j(e.y){2.1j(e.1o())}2.x(b,d,e);8 $(e)},1n:3(a,b){k c=l 6.7.1a(a);2.x(b,c);8 $(c)},F:3(a){2.P(2.4(a));2.M(a,[])},P:3(a){G(b O a){j(a[b]v 6.7.1h){6.7.B.1J(a[b]);a[b].R(m)}n j(a[b]v 1k){2.P(a[b])}a[b]=m}},1m:3(a,b,c,d){k e=2.4(\'A\');G(f O e){k g=(c&&e[f][a])?(e[f][a].L(c).19(b)>-1):(e[f][a]===b);2.x(d,e[f],g)}},4:3(a,b){k c=2.w[2.q];j(!c[a]){j(a.19(\'>\')>-1){k e=a.15(/ /g,\'\').L(\'>\');G(k i=0;i U\',l 6.7.U());k f=2.4(\'u > T\',l 6.7.T());f.H(b);e.1H(a,3(g,h){j(h===\'1l\'){j(b.1K){f.1L(g)}f.R(d.4(\'9\'))}n{f.R(m)}d.x(c,g,h)})},1M:3(a,b){2.4(\'9\').1N(2.4(\'u > 1b\',l 6.7.1b(2.z(a),b)))},1P:3(a,b){2.4(\'u > 18\',l 6.7.18()).1R(a,b)},1S:3(a,b){8 $(2.4(\'s > \'+a,[]).J(l 6.7[a](o.r({\'9\':2.4(\'9\')},b))))},1T:3(a,b){((!b)?2.4(\'s > C\',l 6.7.C()):2.4(\'s > C\',l 6.7.C(b,a))).H(o.r({\'9\':2.4(\'9\')},a))},1V:3(a,b,c){2.4(\'s > \'+a,l 6.7.1W(b,o.r({\'9\':2.4(\'9\')},c)))}});o.1X.r({S:3(a){8 2.p(\'S\',a)},1c:3(a){8 2.p(\'1c\',a)},10:3(a){8 2.p(\'10\',a)},14:3(a){8 2.p(\'14\',a)},Y:3(a){8 2.p(\'Y\',a)},1e:3(a){8 2.p(\'1e\',a)},16:3(a){8 2.p(\'16\',a)},Z:3(a){6.7.B.1i(2[0],a)},p:3(a,b){j(6.7&&2[0]v 6.7.1h){6.7.B.26(2[0],a,b)}n{2.27(a,b)}8 2}})}(o));',62,132,'||this|function|get||google|maps|return|map||||||||||if|var|new|null|else|jQuery|addEventListener|id|extend|overlays|options|services|instanceof|instances|_call|bounds|_unwrap|markers|event|FusionTablesLayer|center|_latLng|clear|for|setOptions|prototype|push|_setOption|split|set|position|in|_c|LatLng|setMap|click|DirectionsRenderer|DirectionsService|call|destroy|zoom|mouseout|triggerEvent|dblclick|iw|mapTypeId|length|mouseover|replace|dragend|attr|Geocoder|indexOf|InfoWindow|StreetViewPanorama|rightclick|Widget|drag|apply|arguments|MVCObject|trigger|addBounds|Array|OK|findMarker|addInfoWindow|getPosition|widget|false|ui|openInfoWindow|Marker|open|refresh|addMarker|resize|controls|addControl|true|isFunction|slice|Object|displayDirections|fitBounds|LatLngBounds|route|gmap|clearInstanceListeners|panel|setDirections|displayStreetView|setStreetView|getZoom|search|getMapTypeId|geocode|addShape|loadFusion|getCenter|loadKML|KmlLayer|fn|init|bounds_changed|addListenerOnce|Map|element|MapTypeId|ROADMAP|_create|addListener|bind'.split('|'),0,{}))
\ No newline at end of file
diff --git a/soundmap/js/jquery.ui.map.js b/soundmap/js/jquery.ui.map.js
index 5da3f77..71b1941 100644
--- a/soundmap/js/jquery.ui.map.js
+++ b/soundmap/js/jquery.ui.map.js
@@ -1,34 +1,309 @@
/*!
- * jQuery UI Google Map 2.0
+ * jQuery FN Google Map 3.0-alpha
* http://code.google.com/p/jquery-ui-map/
- *
- * Copyright (c) 2010 - 2011 Johan Säll Larsson
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
+ * Copyright (c) 2010 - 2011 Johan Säll Larsson
+ * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
-
( function($) {
+ /**
+ * This is how you write unmaintainable code :) - the size is small though.
+ * @param namespace:string
+ * @param name:string
+ * @param base:object
+ */
+ $.a = function( a, b, c ) {
+ var d = [];
+ $[a] = $[a] || {};
+ $[a][b] = function(options, element) {
+ if ( arguments.length ) {
+ this._s(options, element);
+ }
+ };
+ $[a][b].prototype = c;
+ $.fn[b] = function(options) {
+ var id = this.attr('id');
+ if ( d[id] && d[id][options] ) {
+ return d[id][options].apply(d[id], Array.prototype.slice.call(arguments, 1));
+ } else if ( typeof options === 'object' || ! options ) {
+ d[id] = new $[a][b](options, this);
+ return this;
+ }
+ };
+ };
+
+ $.a("ui", "gmap", {
+
+ /**
+ * Map options
+ * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MapOptions
+ */
+ options: {
+ center: (google.maps) ? new google.maps.LatLng(0.0, 0.0) : null,
+ mapTypeId: (google.maps) ? google.maps.MapTypeId.ROADMAP : null,
+ zoom: 5
+ },
+
+ /**
+ * Get or set options
+ * @param key:string
+ * @param options:object
+ */
+ option: function(a, b) {
+ c = this;
+ if (!b) {
+ return c.options[a];
+ } else {
+ c._u(a, b);
+ }
+ },
+
+ /**
+ * Setup plugin basics,
+ * Set the jQuery UI Widget this.element, so extensions will work on both plugins
+ */
+ _s: function( a, b ) {
+ this.id = b.attr('id');
+ this.instances = [];
+ this.element = b;
+ this.options = jQuery.extend(this.options, a);
+ this._create();
+ if ( this._init ) {
+ this._init();
+ }
+ },
+
+ /**
+ * Create
+ * @return $(google.maps.Map)
+ */
+ _create: function() {
+ this.options.center = this._latLng(this.options.center);
+ var a = this.element;
+ var b = this.instances[this.id] = { map: new google.maps.Map( a[0], this.options ), markers: [], services: [], overlays: [] };
+ google.maps.event.addListenerOnce(b.map, 'bounds_changed', function() {
+ a.trigger('init', this);
+ });
+ return $(b.map);
+ },
+
+ /**
+ * Set map options
+ * @param key:string (optional)
+ * @param value:object (optional)
+ */
+ _u: function(a, b) {
+ var map = this.get('map');
+ jQuery.extend(this.options, { 'center': map.getCenter(), 'mapTypeId': map.getMapTypeId(), 'zoom': map.getZoom() } );
+ if (a && b) {
+ this.options[a] = b;
+ }
+ map.setOptions(this.options);
+ },
+
+ /**
+ * Adds a latitude longitude pair to the bounds.
+ * @param position:google.maps.LatLng/string
+ */
+ addBounds: function(a) {
+ this.get('bounds', new google.maps.LatLngBounds()).extend(this._latLng(a));
+ this.get('map').fitBounds(this.get('bounds'));
+ },
+
+ /**
+ * Adds a custom control to the map
+ * @param panel:jquery/node/string
+ * @param position:google.maps.ControlPosition
+ * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#ControlPosition
+ */
+ addControl: function(a, b) {
+ this.get('map').controls[b].push(this._unwrap(a));
+ },
+
+ /**
+ * Adds a Marker to the map
+ * @param markerOptions:google.maps.MarkerOptions (optional)
+ * @param callback:function(map:google.maps.Map, marker:google.maps.Marker) (optional)
+ * @param marker:function (optional)
+ * @return $(google.maps.Marker)
+ * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MarkerOptions
+ */
+ addMarker: function(a, b, c) {
+ var d = this.get('map');
+ var c = c || google.maps.Marker;
+ a.position = (a.position) ? this._latLng(a.position) : null;
+ var e = new c( jQuery.extend({'map': d, 'bounds': false}, a) );
+ var f = this.get('markers', []);
+ if ( e.id ) {
+ f[e.id] = e;
+ } else {
+ f.push(e);
+ }
+ if ( e.bounds ) {
+ this.addBounds(e.getPosition());
+ }
+ this._call(b, d, e);
+ return $(e);
+ },
+
+ /**
+ * Adds an InfoWindow to the map
+ * @param infoWindowOptions:google.maps.InfoWindowOptions (optional)
+ * @param callback:function(InfoWindow:google.maps.InfoWindowOptions) (optional)
+ * @return $(google.maps.InfoWindowOptions)
+ * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#InfoWindowOptions
+ */
+ addInfoWindow: function(a, b) {
+ var c = new google.maps.InfoWindow(a);
+ this._call(b, c);
+ return $(c);
+ },
+
+ /**
+ * Clears by type
+ * @param type:string i.e. markers, overlays, services
+ */
+ clear: function(a) {
+ this._c(this.get(a));
+ this.set(a, []);
+ },
+
+ _c: function(a) {
+ for ( b in a ) {
+ if ( a[b] instanceof google.maps.MVCObject ) {
+ google.maps.event.clearInstanceListeners(a[b]);
+ a[b].setMap(null);
+ } else if ( a[b] instanceof Array ) {
+ this._c(a[b]);
+ }
+ a[b] = null;
+ }
+ },
+
+ /**
+ * Returns the marker(s) with a specific property and value, e.g. 'category', 'tags'
+ * @param property:string the property to search within
+ * @param value:string
+ * @param delimiter:string/boolean a delimiter if it's multi-valued otherwise false
+ * @param callback:function(marker:google.maps.Marker, isFound:boolean)
+ */
+ findMarker: function(a, b, c, d) {
+ var e = this.get('markers');
+ for ( f in e ) {
+ var g = ( c && e[f][a] ) ? ( e[f][a].split(c).indexOf(b) > -1 ) : ( e[f][a] === b );
+ this._call(d, e[f], g);
+ };
+ },
+
+ /**
+ * Returns an instance property by key. Has the ability to set an object if the property does not exist
+ * @param key:string
+ * @param value:object(optional)
+ */
+ get: function(a, b) {
+ var c = this.instances[this.id];
+ if (!c[a]) {
+ if ( a.indexOf('>') > -1 ) {
+ var e = a.replace(/ /g, '').split('>');
+ for ( var i = 0; i < e.length; i++ ) {
+ if ( !c[e[i]] ) {
+ if (b) {
+ c[e[i]] = ( (i + 1) < e.length ) ? [] : b;
+ } else {
+ return null;
+ }
+ }
+ c = c[e[i]];
+ }
+ return c;
+ } else if ( b && !c[a] ) {
+ this.set(a, b);
+ }
+ }
+ return c[a];
+ },
+
+ /**
+ * Triggers an InfoWindow to open
+ * @param infoWindowOptions:google.maps.InfoWindowOptions
+ * @param marker:google.maps.Marker (optional)
+ * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#InfoWindowOptions
+ */
+ openInfoWindow: function(a, b) {
+ this.get('iw', new google.maps.InfoWindow).setOptions(a);
+ this.get('iw').open(this.get('map'), this._unwrap(b));
+ },
+
+ /**
+ * Sets an instance property
+ * @param key:string
+ * @param value:object
+ */
+ set: function(a, b) {
+ this.instances[this.id][a] = b;
+ },
+
+ /**
+ * Refreshes the map
+ */
+ refresh: function() {
+ $(this.get('map')).triggerEvent('resize');
+ this._update();
+ },
+
+ /**
+ * Destroys the plugin.
+ */
+ destroy: function() {
+ this.clear('markers');
+ this.clear('services');
+ this.clear('overlays');
+ var a = this.instances[this.id];
+ for ( b in a ) {
+ a[b] = null;
+ }
+ },
+
+ /**
+ * Helper method for calling a function
+ * @param callback
+ */
+ _call: function(a) {
+ if ( $.isFunction(a) ) {
+ a.apply(this, Array.prototype.slice.call(arguments, 1));
+ }
+ },
+
+ /**
+ * Helper method for google.maps.Latlng
+ * @param callback
+ */
+ _latLng: function(a) {
+ if ( a instanceof google.maps.LatLng ) {
+ return a;
+ } else {
+ var b = a.replace(' ','').split(',');
+ return new google.maps.LatLng(b[0], b[1]);
+ }
+ },
+
+ /**
+ * Helper method for unwrapping jQuery/DOM/string elements
+ * @param callback
+ */
+ _unwrap: function(a) {
+ if ( !a ) {
+ return null;
+ } else if ( a instanceof jQuery ) {
+ return a[0];
+ } else if ( a instanceof Object ) {
+ return a;
+ }
+ return $('#'+a)[0];
+ }
+
+ });
+
jQuery.fn.extend( {
click: function(a) {
@@ -60,12 +335,12 @@
},
triggerEvent: function(a) {
- google.maps.event.trigger(this.get(0), a);
+ google.maps.event.trigger(this[0], a);
},
addEventListener: function(a, b) {
- if ( google.maps && this.get(0) instanceof google.maps.MVCObject ) {
- google.maps.event.addListener(this.get(0), a, b );
+ if ( google.maps && this[0] instanceof google.maps.MVCObject ) {
+ google.maps.event.addListener(this[0], a, b );
} else {
this.bind(a, b);
}
@@ -74,277 +349,4 @@
});
- $.widget( "ui.gmap", {
-
- options: {
- backgroundColor : null,
- center: ( google.maps ) ? new google.maps.LatLng(0.0, 0.0) : null,
- disableDefaultUI: false,
- disableDoubleClickZoom: false,
- draggable: true,
- draggableCursor: null,
- draggingCursor: null,
- keyboardShortcuts: true,
- mapTypeControl: true,
- mapTypeControlOptions: null,
- mapTypeId: ( google.maps ) ? google.maps.MapTypeId.ROADMAP : null,
- navigationControl: true,
- navigationControlOptions: null,
- noClear: false,
- scaleControl: false,
- scaleControlOptions: null,
- scrollwheel: false,
- streetViewControl: true,
- streetViewControlOptions: null,
- zoom: 5,
- callback: null
- },
-
- _create: function() {
- $.ui.gmap.instances[this.element.attr('id')] = { map: new google.maps.Map( this.element[0], this.options ), markers: [], bounds: null, services: [] };
- },
-
- _init: function() {
- $.ui.gmap._trigger(this.options.callback, this.getMap() );
- return $(this.getMap());
- },
-
- _setOption: function(a, b) {
- var map = this.getMap();
- this.options.center = map.getCenter();
- this.options.mapTypeId = map.getMapTypeId();
- this.options.zoom = map.getZoom();
- $.Widget.prototype._setOption.apply(this, arguments);
- map.setOptions(this.options);
- },
-
- /**
- * Adds a LatLng to the bounds.
- */
- addBounds: function(a) {
- var instances = $.ui.gmap.instances[this.element.attr('id')];
- if ( !instances.bounds ) {
- instances.bounds = new google.maps.LatLngBounds();
- }
- instances.bounds.extend(a);
- instances.map.fitBounds(instances.bounds);
- },
-
- /**
- * Adds a control to the map
- * @param a:jQuery/Node/String
- * @param b:google.maps.ControlPosition, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#ControlPosition
- */
- addControl: function(a, b) {
- this.getMap().controls[b].push($.ui.gmap._unwrap(a));
- },
-
- /**
- * Adds a Marker to the map
- * @param a:google.maps.MarkerOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#MarkerOptions
- * @param b:function(map:google.maps.Map, marker:Marker)
- * @return $(google.maps.Marker)
- */
- addMarker: function(a, b) {
- var marker = new google.maps.Marker( jQuery.extend( { 'map': this.getMap(), 'bounds':false }, a) );
- this.getMarkers().push( marker );
- if ( marker.bounds ) {
- this.addBounds(marker.getPosition());
- }
- $.ui.gmap._trigger(b, this.getMap(), marker );
- return $(marker);
- },
-
- /**
- * Adds an InfoWindow to the map
- * @param a:google.maps.InfoWindowOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#InfoWindowOptions
- * @param b:function(InfoWindow:google.maps.InfoWindowOptions)
- * @return $(google.maps.InfoWindowOptions)
- */
- addInfoWindow: function(a, b) {
- var iw = new google.maps.InfoWindow(a);
- $.ui.gmap._trigger(b, iw);
- return $(iw);
- },
-
- /**
- * Computes directions between two or more places.
- * @param a:google.maps.DirectionsRequest, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRequest
- * @param b:google.maps.DirectionsRendererOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRendererOptions
- * @param c:function(success:boolean, result:google.maps.DirectionsResult), http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsResult
- */
- displayDirections: function(a, b, c) {
- var instance = $.ui.gmap.instances[this.element.attr('id')];
- if ( !instance.services.DirectionsService ) {
- instance.services.DirectionsService = new google.maps.DirectionsService();
- }
- if ( !instance.services.DirectionsRenderer ) {
- instance.services.DirectionsRenderer = new google.maps.DirectionsRenderer();
- }
- instance.services.DirectionsRenderer.setOptions(jQuery.extend({'map': instance.map}, b));
- instance.services.DirectionsService.route( a, function(result, status) {
- if ( status === google.maps.DirectionsStatus.OK ) {
- if ( b.panel ) {
- instance.services.DirectionsRenderer.setDirections(result);
- }
- } else {
- instance.services.DirectionsRenderer.setMap(null);
- }
- $.ui.gmap._trigger(c, ( status === google.maps.DirectionsStatus.OK ), result);
- });
- },
-
- /**
- * Displays the panorama for a given LatLng or panorama ID.
- * @param a:jQuery/String/Node
- * @param b?:google.maps.StreetViewPanoramaOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#StreetViewPanoramaOptions
- */
- displayStreetView: function(a, b) {
- var instance = $.ui.gmap.instances[this.element.attr('id')];
- instance.services.StreetViewPanorama = new google.maps.StreetViewPanorama($.ui.gmap._unwrap(a), b);
- instance.map.setStreetView(instance.services.StreetViewPanorama);
- },
-
- /**
- * Returns the marker(s) with a specific property and value, e.g. 'category', 'airports'
- * @param a:String - the property to search within
- * @param b:String - the query
- * @param c:function(found:boolean, marker:google.maps.Marker)
- */
- findMarker : function(a, b, c) {
- $.each( this.getMarkers(), function(i, marker) {
- $.ui.gmap._trigger(c, ( marker[a] === b ), marker);
- });
- },
-
- /**
- * Extracts meta data from the HTML
- * @param a:String - rdfa, microformats or microdata
- * @param b:String - the namespace
- * @param c:function(item:jQuery, result:Array)
- */
- loadMetadata: function(a, b, c) {
- if ( a === 'rdfa' ) {
- $.ui.gmap.rdfa(b, c);
- } else if ( a === 'microformat') {
- $.ui.gmap.microformat(b, c);
- } else if ( a === 'microdata') {
- $.ui.gmap.microdata(b, c);
- }
- },
-
- /**
- * Adds fusion data to the map.
- * @param a:google.maps.FusionTablesLayerOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#FusionTablesLayerOptions
- */
- loadFusion: function(a) {
- var instance = $.ui.gmap.instances[this.element.attr('id')];
- if ( !instance.services.FusionTablesLayer ) {
- instance.services.FusionTablesLayer = new google.maps.FusionTablesLayer();
- }
- instance.services.FusionTablesLayer.setOptions(a);
- instance.services.FusionTablesLayer.setMap(this.getMap());
- },
-
- /**
- * Adds markers from KML file or GeoRSS feed
- * @param a:String - an identifier for the RSS e.g. 'rss_dogs'
- * @param b:String - URL to feed
- * @param c:google.maps.KmlLayerOptions, http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#KmlLayerOptions
- */
- loadKML: function(a, b, c) {
- var instance = $.ui.gmap.instances[this.element.attr('id')];
- if ( !instance.services[a] )
- instance.services[a] = new google.maps.KmlLayer(b, jQuery.extend({'map': instance.map }, c));
- },
-
- /**
- * A service for converting between an address and a LatLng.
- * @param a:google.maps.GeocoderRequest
- * @param b:function(success:boolean, result:google.maps.GeocoderResult), http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#GeocoderResult
- */
- search: function(a, b) {
- var instance = $.ui.gmap.instances[this.element.attr('id')];
- if ( !instance.services.Geocoder ) {
- instance.services.Geocoder = new google.maps.Geocoder();
- }
- instance.services.Geocoder.geocode( a, function(result, status) {
- $.ui.gmap._trigger(b, ( status === google.maps.GeocoderStatus.OK ), result);
- });
- },
-
- /**
- * Returns the map.
- * @return google.maps.Map
- */
- getMap: function() {
- return $.ui.gmap.instances[this.element.attr('id')].map;
- },
-
- /**
- * Returns all markers.
- * @return Array
- */
- getMarkers: function() {
- return $.ui.gmap.instances[this.element.attr('id')].markers;
- },
-
- /**
- * Returns a service by its service name
- * @param id:string
- */
- getService: function(id) {
- return $.ui.gmap.instances[this.element.attr('id')].services[id];
- },
-
- /**
- * Clears all the markers and added event listeners.
- */
- clearMarkers: function() {
- $.each( this.getMarkers(), function(a,b) {
- google.maps.event.clearInstanceListeners(b);
- b.setMap(null);
- b = null;
- });
- $.ui.gmap.instances[this.element.attr('id')].markers = [];
- },
-
- /**
- * Destroys the plugin.
- */
- destroy: function() {
- this.clearMarkers();
- google.maps.event.clearInstanceListeners(this.getMap());
- $.each($.ui.gmap.instances[this.element.attr('id')].services, function (a, b) {
- b = null;
- });
- $.Widget.prototype.destroy.call( this );
- }
-
- });
-
- $.extend($.ui.gmap, {
-
- version: "2.0",
- instances: [],
-
- _trigger: function(a) {
- if ( $.isFunction(a) ) {
- a.apply(this, Array.prototype.slice.call(arguments, 1));
- }
- },
-
- _unwrap: function unwrap(a) {
- if ( !a ) {
- return null;
- } else if ( a instanceof jQuery ) {
- return a[0];
- } else if ( a instanceof Object ) {
- return a;
- }
- return document.getElementById(a);
- }
-
- });
-
} (jQuery) );
\ No newline at end of file
diff --git a/soundmap/js/jquery.ui.map.min.js b/soundmap/js/jquery.ui.map.min.js
old mode 100644
new mode 100755
index 075f38c..6e10811
--- a/soundmap/js/jquery.ui.map.min.js
+++ b/soundmap/js/jquery.ui.map.min.js
@@ -1,7 +1,7 @@
/*!
- * jQuery UI Google Map 2.0
+ * jQuery UI Google Map 3.0-alpha
* http://code.google.com/p/jquery-ui-map/
* Copyright (c) 2010 - 2011 Johan Säll Larsson
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
-eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(4($){z.1B.y({16:4(a){g 3.s(\'16\',a)},1b:4(a){g 3.s(\'1b\',a)},19:4(a){g 3.s(\'19\',a)},17:4(a){g 3.s(\'17\',a)},1c:4(a){g 3.s(\'1c\',a)},1d:4(a){g 3.s(\'1d\',a)},1i:4(a){g 3.s(\'1i\',a)},1C:4(a){9.d.G.1D(3.K(0),a)},s:4(a,b){h(9.d&&3.K(0)Q 9.d.1A){9.d.G.1z(3.K(0),a,b)}w{3.1w(a,b)}g 3}});$.1x("8.7",{u:{1y:j,1f:(9.d)?o 9.d.1E(0.0,0.0):j,1F:x,1u:x,1M:C,1N:j,1K:j,1J:C,1G:C,1H:j,13:(9.d)?9.d.1I.1O:j,1n:C,1j:j,1k:x,1l:x,1t:j,1r:x,1m:C,1p:j,15:5,1g:j},1o:4(){$.8.7.f[3.m.n(\'k\')]={l:o 9.d.1s(3.m[0],3.u),O:[],v:j,e:[]}},1L:4(){$.8.7.t(3.u.1g,3.r());g $(3.r())},U:4(a,b){q l=3.r();3.u.1f=l.1W();3.u.13=l.2d();3.u.15=l.2c();$.18.T.U.1h(3,14);l.N(3.u)},10:4(a){q f=$.8.7.f[3.m.n(\'k\')];h(!f.v){f.v=o 9.d.28()}f.v.y(a);f.l.1P(f.v)},29:4(a,b){3.r().2a[b].11($.8.7.S(a))},2f:4(a,b){q p=o 9.d.2g(z.y({\'l\':3.r(),\'v\':x},a));3.F().11(p);h(p.v){3.10(p.2l())}$.8.7.t(b,3.r(),p);g $(p)},2k:4(a,b){q L=o 9.d.2j(a);$.8.7.t(b,L);g $(L)},2i:4(a,b,c){q 6=$.8.7.f[3.m.n(\'k\')];h(!6.e.I){6.e.I=o 9.d.I()}h(!6.e.A){6.e.A=o 9.d.A()}6.e.A.N(z.y({\'l\':6.l},b));6.e.I.27(a,4(D,B){h(B===9.d.12.M){h(b.26){6.e.A.1V(D)}}w{6.e.A.J(j)}$.8.7.t(c,(B===9.d.12.M),D)})},1U:4(a,b){q 6=$.8.7.f[3.m.n(\'k\')];6.e.P=o 9.d.P($.8.7.S(a),b);6.l.1T(6.e.P)},1Q:4(a,b,c){$.R(3.F(),4(i,p){$.8.7.t(c,(p[a]===b),p)})},1S:4(a,b,c){h(a===\'V\'){$.8.7.V(b,c)}w h(a===\'W\'){$.8.7.W(b,c)}w h(a===\'X\'){$.8.7.X(b,c)}},1X:4(a){q 6=$.8.7.f[3.m.n(\'k\')];h(!6.e.E){6.e.E=o 9.d.E()}6.e.E.N(a);6.e.E.J(3.r())},24:4(a,b,c){q 6=$.8.7.f[3.m.n(\'k\')];h(!6.e[a])6.e[a]=o 9.d.25(b,z.y({\'l\':6.l},c))},1Z:4(a,b){q 6=$.8.7.f[3.m.n(\'k\')];h(!6.e.H){6.e.H=o 9.d.H()}6.e.H.22(a,4(D,B){$.8.7.t(b,(B===9.d.1R.M),D)})},r:4(){g $.8.7.f[3.m.n(\'k\')].l},F:4(){g $.8.7.f[3.m.n(\'k\')].O},2e:4(k){g $.8.7.f[3.m.n(\'k\')].e[k]},Z:4(){$.R(3.F(),4(a,b){9.d.G.1e(b);b.J(j);b=j});$.8.7.f[3.m.n(\'k\')].O=[]},1a:4(){3.Z();9.d.G.1e(3.r());$.R($.8.7.f[3.m.n(\'k\')].e,4(a,b){b=j});$.18.T.1a.Y(3)}});$.y($.8.7,{23:"2.0",f:[],t:4(a){h($.21(a)){a.1h(3,20.T.1Y.Y(14,1))}},S:4 2h(a){h(!a){g j}w h(a Q z){g a[0]}w h(a Q 2b){g a}g 1q.1v(a)}})}(z));',62,146,'|||this|function||instance|gmap|ui|google||||maps|services|instances|return|if||null|id|map|element|attr|new|marker|var|getMap|addEventListener|_trigger|options|bounds|else|false|extend|jQuery|DirectionsRenderer|status|true|result|FusionTablesLayer|getMarkers|event|Geocoder|DirectionsService|setMap|get|iw|OK|setOptions|markers|StreetViewPanorama|instanceof|each|_unwrap|prototype|_setOption|rdfa|microformat|microdata|call|clearMarkers|addBounds|push|DirectionsStatus|mapTypeId|arguments|zoom|click|mouseover|Widget|dblclick|destroy|rightclick|mouseout|drag|clearInstanceListeners|center|callback|apply|dragend|navigationControlOptions|noClear|scaleControl|streetViewControl|navigationControl|_create|streetViewControlOptions|document|scrollwheel|Map|scaleControlOptions|disableDoubleClickZoom|getElementById|bind|widget|backgroundColor|addListener|MVCObject|fn|triggerEvent|trigger|LatLng|disableDefaultUI|mapTypeControl|mapTypeControlOptions|MapTypeId|keyboardShortcuts|draggingCursor|_init|draggable|draggableCursor|ROADMAP|fitBounds|findMarker|GeocoderStatus|loadMetadata|setStreetView|displayStreetView|setDirections|getCenter|loadFusion|slice|search|Array|isFunction|geocode|version|loadKML|KmlLayer|panel|route|LatLngBounds|addControl|controls|Object|getZoom|getMapTypeId|getService|addMarker|Marker|unwrap|displayDirections|InfoWindow|addInfoWindow|getPosition'.split('|'),0,{}))
\ No newline at end of file
+eval(function(p,a,c,k,e,r){e=function(c){return(c 35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(3($){$.1m("1g.1o",{p:{v:(6.7)?o 6.7.K(0.0,0.0):l,P:(6.7)?6.7.1r.1u:l,W:5},1f:3(){2.p.v=2.B(2.p.v);9 a=2.1I;2.m=a.Q(\'m\');2.s=[];9 b=2.s[a.Q(\'m\')]={j:o 6.7.1p(a[0],2.p),t:[],S:[],V:[]};6.7.u.1L(b.j,\'1M\',3(){a.Y(\'1e\',b.j)});4 $(b.j)},G:3(a,b){9 c=2.h(\'j\');r.A(2.p,{\'v\':c.1x(),\'P\':c.1A(),\'W\':c.1G()});8(a&&b){$.10.J.G.L(2,N)};c.O(2.p)},1d:3(a){2.h(\'z\',o 6.7.1h()).A(2.B(a));2.h(\'j\').1k(2.h(\'z\'))},1O:3(a,b){2.h(\'j\').1n[b].R(2.E(a))},1q:3(a,b,c){9 d=2.h(\'j\');9 c=c||6.7.1s;a.I=(a.I)?2.B(a.I):l;9 e=o c(r.A({\'j\':d,\'z\':1z},a));9 f=2.h(\'t\',[]);8(e.m){f[e.m]=e}n{f.R(e)}8(e.z){2.1d(e.1H())}2.w(b,d,e);4 $(e)},1J:3(a,b){9 c=o 6.7.M(a);2.w(b,c);4 $(c)},x:3(a){2.C(2.h(a));2.D(a,[])},C:3(a){y(b F a){8(a[b]q 6.7.T){6.7.u.1i(a[b]);a[b].1j(l)}n 8(a[b]q U){2.C(a[b])}a[b]=l}},1l:3(a,b,c,d){9 e=2.h(\'t\');y(f F e){9 g=(c&&e[f][a])?(e[f][a].H(c).X(b)>-1):(e[f][a]===b);2.w(d,e[f],g)}},h:3(a,b){9 c=2.s[2.m];8(!c[a]){8(a.X(\'>\')>-1){9 e=a.Z(/ /g,\'\').H(\'>\');y(9 i=0;i ')}c.fn.pluploadQueue=function(e){if(e){this.each(function(){var j,i,k;i=c(this);k=i.attr("id");if(!k){k=plupload.guid();i.attr("id",k)}j=new plupload.Uploader(c.extend({dragdrop:true,container:k},e));d[k]=j;function h(l){var n;if(l.status==plupload.DONE){n="plupload_done"}if(l.status==plupload.FAILED){n="plupload_failed"}if(l.status==plupload.QUEUED){n="plupload_delete"}if(l.status==plupload.UPLOADING){n="plupload_uploading"}var m=c("#"+l.id).attr("class",n).find("a").css("display","block");if(l.hint){m.attr("title",l.hint)}}function f(){c("span.plupload_total_status",i).html(j.total.percent+"%");c("div.plupload_progress_bar",i).css("width",j.total.percent+"%");c("span.plupload_upload_status",i).text(a("Uploaded %d/%d files").replace(/%d\/%d/,j.total.uploaded+"/"+j.files.length))}function g(){var m=c("ul.plupload_filelist",i).html(""),n=0,l;c.each(j.files,function(p,o){l="";if(o.status==plupload.DONE){if(o.target_name){l+=' '}l+=' ';l+=' ';n++;c("#"+k+"_count").val(n)}m.append(''+o.name+'
'+o.percent+'%
'+plupload.formatSize(o.size)+'
'+l+" ");h(o);c("#"+o.id+".plupload_delete a").click(function(q){c("#"+o.id).remove();j.removeFile(o);q.preventDefault()})});c("span.plupload_total_file_size",i).html(plupload.formatSize(j.total.size));if(j.total.queued===0){c("span.plupload_add_text",i).text(a("Add files."))}else{c("span.plupload_add_text",i).text(j.total.queued+" files queued.")}c("a.plupload_start",i).toggleClass("plupload_disabled",j.files.length==(j.total.uploaded+j.total.failed));m[0].scrollTop=m[0].scrollHeight;f();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){c("#"+k+"_filelist").append(''+a("Drag files here.")+" ")}}j.bind("UploadFile",function(l,m){c("#"+m.id).addClass("plupload_current_file")});j.bind("Init",function(l,m){b(k,i);if(!e.unique_names&&e.rename){c("#"+k+"_filelist div.plupload_file_name span",i).live("click",function(s){var q=c(s.target),o,r,n,p="";o=l.getFile(q.parents("li")[0].id);n=o.name;r=/^(.+)(\.[^.]+)$/.exec(n);if(r){n=r[1];p=r[2]}q.hide().after(' ');q.next().val(n).focus().blur(function(){q.show().next().remove()}).keydown(function(u){var t=c(this);if(u.keyCode==13){u.preventDefault();o.name=t.val()+p;q.text(o.name);t.blur()}})})}c("a.plupload_add",i).attr("id",k+"_browse");l.settings.browse_button=k+"_browse";if(l.features.dragdrop&&l.settings.dragdrop){l.settings.drop_element=k+"_filelist";c("#"+k+"_filelist").append(''+a("Drag files here.")+" ")}c("#"+k+"_container").attr("title","Using runtime: "+m.runtime);c("a.plupload_start",i).click(function(n){if(!c(this).hasClass("plupload_disabled")){j.start()}n.preventDefault()});c("a.plupload_stop",i).click(function(n){n.preventDefault();j.stop()});c("a.plupload_start",i).addClass("plupload_disabled")});j.init();j.bind("Error",function(l,o){var m=o.file,n;if(m){n=o.message;if(o.details){n+=" ("+o.details+")"}if(o.code==plupload.FILE_SIZE_ERROR){alert(a("Error: File to large: ")+m.name)}if(o.code==plupload.FILE_EXTENSION_ERROR){alert(a("Error: Invalid file extension: ")+m.name)}m.hint=n;c("#"+m.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",n)}});j.bind("StateChanged",function(){if(j.state===plupload.STARTED){c("li.plupload_delete a,div.plupload_buttons",i).hide();c("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",i).css("display","block");c("span.plupload_upload_status",i).text("Uploaded "+j.total.uploaded+"/"+j.files.length+" files");if(e.multiple_queues){c("span.plupload_total_status,span.plupload_total_file_size",i).show()}}else{g();c("a.plupload_stop,div.plupload_progress",i).hide();c("a.plupload_delete",i).css("display","block")}});j.bind("QueueChanged",g);j.bind("FileUploaded",function(l,m){h(m)});j.bind("UploadProgress",function(l,m){c("#"+m.id+" div.plupload_file_status",i).html(m.percent+"%");h(m);f();if(e.multiple_queues&&j.total.uploaded+j.total.failed==j.files.length){c(".plupload_buttons,.plupload_upload_status",i).css("display","inline");c(".plupload_start",i).addClass("plupload_disabled");c("span.plupload_total_status,span.plupload_total_file_size",i).hide()}});if(e.setup){e.setup(j)}});return this}else{return d[c(this[0]).attr("id")]}}})(jQuery);
\ No newline at end of file
diff --git a/soundmap/js/plupload/plupload.flash.swf b/soundmap/js/plupload/plupload.flash.swf
deleted file mode 100644
index 7a1a937..0000000
Binary files a/soundmap/js/plupload/plupload.flash.swf and /dev/null differ
diff --git a/soundmap/js/plupload/plupload.full.js b/soundmap/js/plupload/plupload.full.js
deleted file mode 100644
index 624dd49..0000000
--- a/soundmap/js/plupload/plupload.full.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*1.4.3.2*/
-(function(){var f=0,l=[],n={},j={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},m=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function k(){this.cancelBubble=true}(function(o){var p=o.split(/,/),q,s,r;for(q=0;q0){g.each(p,function(s,r){o[r]=s})}});return o},cleanName:function(o){var p,q;q=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(p=0;p0?"&":"?")+q}return p},each:function(r,s){var q,p,o;if(r){q=r.length;if(q===b){for(p in r){if(r.hasOwnProperty(p)){if(s(r[p],p)===false){return}}}}else{for(o=0;o1073741824){return Math.round(o/1073741824,1)+" GB"}if(o>1048576){return Math.round(o/1048576,1)+" MB"}if(o>1024){return Math.round(o/1024,1)+" KB"}return o+" b"},getPos:function(p,t){var u=0,s=0,w,v=document,q,r;p=p;t=t||v.body;function o(C){var A,B,z=0,D=0;if(C){B=C.getBoundingClientRect();A=v.compatMode==="CSS1Compat"?v.documentElement:v.body;z=B.left+A.scrollLeft;D=B.top+A.scrollTop}return{x:z,y:D}}if(p&&p.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&v.documentMode!==8)){q=o(p);r=o(t);return{x:q.x-r.x,y:q.y-r.y}}w=p;while(w&&w!=t&&w.nodeType){u+=w.offsetLeft||0;s+=w.offsetTop||0;w=w.offsetParent}w=p.parentNode;while(w&&w!=t&&w.nodeType){u-=w.scrollLeft||0;s-=w.scrollTop||0;w=w.parentNode}return{x:u,y:s}},getSize:function(o){return{w:o.offsetWidth||o.clientWidth,h:o.offsetHeight||o.clientHeight}},parseSize:function(o){var p;if(typeof(o)=="string"){o=/^([0-9]+)([mgk]+)$/.exec(o.toLowerCase().replace(/[^0-9mkg]/g,""));p=o[2];o=+o[1];if(p=="g"){o*=1073741824}if(p=="m"){o*=1048576}if(p=="k"){o*=1024}}return o},xmlEncode:function(o){return o?(""+o).replace(m,function(p){return a[p]?"&"+a[p]+";":p}):o},toArray:function(q){var p,o=[];for(p=0;p=0;p--){if(r[p].key===q||r[p].orig===u){if(t.detachEvent){t.detachEvent("on"+o,r[p].func)}else{if(t.removeEventListener){t.removeEventListener(o,r[p].func,false)}}r[p].orig=null;r[p].func=null;r.splice(p,1);if(u!==b){break}}}if(!r.length){delete d[t[e]][o]}if(g.isEmptyObj(d[t[e]])){delete d[t[e]];try{delete t[e]}catch(s){t[e]=b}}},removeAllEvents:function(p){var o=arguments[1];if(p[e]===b||!p[e]){return}g.each(d[p[e]],function(r,q){g.removeEvent(p,q,o)})}};g.Uploader=function(r){var p={},u,t=[],q;u=new g.QueueProgress();r=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},r);function s(){var w,x=0,v;if(this.state==g.STARTED){for(v=0;v0?Math.ceil(u.uploaded/t.length*100):0}else{u.bytesPerSec=Math.ceil(u.loaded/((+new Date()-q||1)/1000));u.percent=u.size>0?Math.ceil(u.loaded/u.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:t,settings:r,total:u,id:g.guid(),init:function(){var A=this,B,x,w,z=0,y;if(typeof(r.preinit)=="function"){r.preinit(A)}else{g.each(r.preinit,function(D,C){A.bind(C,D)})}r.page_url=r.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(r.url)){r.url=r.page_url+r.url}r.chunk_size=g.parseSize(r.chunk_size);r.max_file_size=g.parseSize(r.max_file_size);A.bind("FilesAdded",function(C,F){var E,D,H=0,I,G=r.filters;if(G&&G.length){I=[];g.each(G,function(J){g.each(J.extensions.split(/,/),function(K){if(/^\s*\*\s*$/.test(K)){I.push("\\.*")}else{I.push("\\."+K.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});I=new RegExp(I.join("|")+"$","i")}for(E=0;Er.max_file_size){C.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:D});continue}t.push(D);H++}if(H){c(function(){A.trigger("QueueChanged");A.refresh()},1)}else{return false}});if(r.unique_names){A.bind("UploadFile",function(C,D){var F=D.name.match(/\.([^.]+)$/),E="tmp";if(F){E=F[1]}D.target_name=D.id+"."+E})}A.bind("UploadProgress",function(C,D){D.percent=D.size>0?Math.ceil(D.loaded/D.size*100):100;o()});A.bind("StateChanged",function(C){if(C.state==g.STARTED){q=(+new Date())}else{if(C.state==g.STOPPED){for(B=C.files.length-1;B>=0;B--){if(C.files[B].status==g.UPLOADING){C.files[B].status=g.QUEUED;o()}}}}});A.bind("QueueChanged",o);A.bind("Error",function(C,D){if(D.file){D.file.status=g.FAILED;o();if(C.state==g.STARTED){c(function(){s.call(A)},1)}}});A.bind("FileUploaded",function(C,D){D.status=g.DONE;D.loaded=D.size;C.trigger("UploadProgress",D);c(function(){s.call(A)},1)});if(r.runtimes){x=[];y=r.runtimes.split(/\s?,\s?/);for(B=0;B=0;v--){if(t[v].id===w){return t[v]}}},removeFile:function(w){var v;for(v=t.length-1;v>=0;v--){if(t[v].id===w.id){return this.splice(v,1)[0]}}},splice:function(x,v){var w;w=t.splice(x===b?0:x,v===b?t.length:v);this.trigger("FilesRemoved",w);this.trigger("QueueChanged");return w},trigger:function(w){var y=p[w.toLowerCase()],x,v;if(y){v=Array.prototype.slice.call(arguments);v[0]=this;for(x=0;x=0;w--){if(y[w].func===x){y.splice(w,1);break}}}else{y=[]}if(!y.length){delete p[v]}}},unbindAll:function(){var v=this;g.each(p,function(x,w){v.unbind(w)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};g.File=function(r,p,q){var o=this;o.id=r;o.name=p;o.size=q;o.loaded=0;o.percent=0;o.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(o,p){}};g.QueueProgress=function(){var o=this;o.size=0;o.loaded=0;o.uploaded=0;o.failed=0;o.queued=0;o.percent=0;o.bytesPerSec=0;o.reset=function(){o.size=o.loaded=o.uploaded=o.failed=o.queued=o.percent=o.bytesPerSec=0}};g.runtimes={};window.plupload=g})();(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){window.google={}}if(!google.gears){google.gears={factory:a}}})();(function(e,b,c,d){var f={};function a(h,k,m){var g,j,l,o;j=google.gears.factory.create("beta.canvas");try{j.decode(h);if(!k.width){k.width=j.width}if(!k.height){k.height=j.height}o=Math.min(width/j.width,height/j.height);if(o<1||(o===1&&m==="image/jpeg")){j.resize(Math.round(j.width*o),Math.round(j.height*o));if(k.quality){return j.encode(m,{quality:k.quality/100})}return j.encode(m)}}catch(n){}return h}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(j,l){var k;if(!e.google||!google.gears){return l({success:false})}try{k=google.gears.factory.create("beta.desktop")}catch(h){return l({success:false})}function g(o){var n,m,p=[],q;for(m=0;m0;t=Math.ceil(p.size/q);if(!m){q=p.size;t=1}function n(){var z,B,w=s.settings.multipart,v=0,A={name:p.target_name||p.name},x=s.settings.url;function y(D){var C,I="----pluploadboundary"+c.guid(),F="--",H="\r\n",E,G;if(w){z.setRequestHeader("Content-Type","multipart/form-data; boundary="+I);C=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(A,s.settings.multipart_params),function(K,J){C.append(F+I+H+'Content-Disposition: form-data; name="'+J+'"'+H+H);C.append(K+H)});G=c.mimeTypes[p.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";C.append(F+I+H+'Content-Disposition: form-data; name="'+s.settings.file_data_name+'"; filename="'+p.name+'"'+H+"Content-Type: "+G+H+H);C.append(D);C.append(H+F+I+F+H);E=C.getAsBlob();v=E.length-D.length;D=E}z.send(D)}if(p.status==c.DONE||p.status==c.FAILED||s.state==c.STOPPED){return}if(m){A.chunk=u;A.chunks=t}B=Math.min(q,p.size-(u*q));if(!w){x=c.buildUrl(s.settings.url,A)}z=google.gears.factory.create("beta.httprequest");z.open("POST",x);if(!w){z.setRequestHeader("Content-Disposition",'attachment; filename="'+p.name+'"');z.setRequestHeader("Content-Type","application/octet-stream")}c.each(s.settings.headers,function(D,C){z.setRequestHeader(C,D)});z.upload.onprogress=function(C){p.loaded=r+C.loaded-v;s.trigger("UploadProgress",p)};z.onreadystatechange=function(){var C;if(z.readyState==4){if(z.status==200){C={chunk:u,chunks:t,response:z.responseText,status:z.status};s.trigger("ChunkUploaded",p,C);if(C.cancelled){p.status=c.FAILED;return}r+=B;if(++u>=t){p.status=c.DONE;s.trigger("FileUploaded",p,{response:z.responseText,status:z.status})}else{n()}}else{s.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:p,chunk:u,chunks:t,status:z.status})}}};if(u3){l.pop()}while(l.length<4){l.push(0)}m=s.split(".");while(m.length>4){m.pop()}do{u=parseInt(m[q],10);n=parseInt(l[q],10);q++}while(q8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);if(d.getStyle(k,"position")==="static"){k.style.position="relative"}}k.appendChild(o);for(l=0;l ';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var r,s={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(t){r=[]});p.bind("Silverlight:SelectFile",function(t,w,u,v){var x;x=d.guid();s[x]=w;s[w]=x;r.push(new d.File(x,u,v))});p.bind("Silverlight:SelectSuccessful",function(){if(r.length){p.trigger("FilesAdded",r)}});p.bind("Silverlight:UploadChunkError",function(t,w,u,x,v){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:v,file:t.getFile(s[w])})});p.bind("Silverlight:UploadFileProgress",function(t,x,u,w){var v=t.getFile(s[x]);if(v.status!=d.FAILED){v.size=w;v.loaded=u;t.trigger("UploadProgress",v)}});p.bind("Refresh",function(t){var u,v,w;u=b.getElementById(t.settings.browse_button);if(u){v=d.getPos(u,b.getElementById(t.settings.container));w=d.getSize(u);d.extend(b.getElementById(t.id+"_silverlight_container").style,{top:v.y+"px",left:v.x+"px",width:w.w+"px",height:w.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(t,w,u,z,y){var x,v=t.getFile(s[w]);x={chunk:u,chunks:z,response:y};t.trigger("ChunkUploaded",v,x);if(v.status!=d.FAILED){j().UploadNextChunk()}if(u==z-1){v.status=d.DONE;t.trigger("FileUploaded",v,{response:y})}});p.bind("Silverlight:UploadSuccessful",function(t,w,u){var v=t.getFile(s[w]);v.status=d.DONE;t.trigger("FileUploaded",v,{response:u})});p.bind("FilesRemoved",function(t,v){var u;for(u=0;u ';function n(){return b.getElementById(k.id+"_flash")}function m(){if(q++>5000){p({success:false});return}if(!g[k.id]){setTimeout(m,1)}}m();o=j=null;k.bind("Flash:Init",function(){var s={},r;n().setFileFilters(k.settings.filters,k.settings.multi_selection);if(g[k.id]){return}g[k.id]=true;k.bind("UploadFile",function(t,v){var w=t.settings,u=k.settings.resize||{};n().uploadFile(s[v.id],w.url,{name:v.target_name||v.name,mime:d.mimeTypes[v.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:w.chunk_size,width:u.width,height:u.height,quality:u.quality,multipart:w.multipart,multipart_params:w.multipart_params||{},file_data_name:w.file_data_name,format:/\.(jpg|jpeg)$/i.test(v.name)?"jpg":"png",headers:w.headers,urlstream_upload:w.urlstream_upload})});k.bind("Flash:UploadProcess",function(u,t){var v=u.getFile(s[t.id]);if(v.status!=d.FAILED){v.loaded=t.loaded;v.size=t.size;u.trigger("UploadProgress",v)}});k.bind("Flash:UploadChunkComplete",function(t,v){var w,u=t.getFile(s[v.id]);w={chunk:v.chunk,chunks:v.chunks,response:v.text};t.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED){n().uploadNextChunk()}if(v.chunk==v.chunks-1){u.status=d.DONE;t.trigger("FileUploaded",u,{response:v.text})}});k.bind("Flash:SelectFiles",function(t,w){var v,u,x=[],y;for(u=0;u0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v0&&navigator.vendor.indexOf("Apple")!==-1;return{html5:n,dragdrop:p.mozInnerScreenX!==d||m||f,jpgresize:o,pngresize:o,multipart:o||!!p.FileReader||!!p.FormData,progress:q,chunks:m||o,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(p,q){var m={},n;function o(v){var t,s,u=[],w,r={};for(s=0;s ";D=j.getElementById(p.id+"_html5");D.onchange=function(){o(this.files);this.value=""};E=j.getElementById(v.settings.browse_button);if(E){var x=v.settings.browse_button_hover,z=v.settings.browse_button_active,w=v.features.canOpenDialog?E:F;if(x){h.addEvent(w,"mouseover",function(){h.addClass(E,x)},v.id);h.addEvent(w,"mouseout",function(){h.removeClass(E,x)},v.id)}if(z){h.addEvent(w,"mousedown",function(){h.addClass(E,z)},v.id);h.addEvent(j.body,"mouseup",function(){h.removeClass(E,z)},v.id)}if(v.features.canOpenDialog){h.addEvent(E,"click",function(y){j.getElementById(v.id+"_html5").click();y.preventDefault()},v.id)}}});p.bind("PostInit",function(){var r=j.getElementById(p.settings.drop_element);if(r){if(f){h.addEvent(r,"dragenter",function(v){var u,s,t;u=j.getElementById(p.id+"_drop");if(!u){u=j.createElement("input");u.setAttribute("type","file");u.setAttribute("id",p.id+"_drop");u.setAttribute("multiple","multiple");h.addEvent(u,"change",function(){o(this.files);h.removeEvent(u,"change",p.id);u.parentNode.removeChild(u)},p.id);r.appendChild(u)}s=h.getPos(r,j.getElementById(p.settings.container));t=h.getSize(r);if(h.getStyle(r,"position")==="static"){h.extend(r.style,{position:"relative"})}h.extend(u.style,{position:"absolute",display:"block",top:0,left:0,width:t.w+"px",height:t.h+"px",opacity:0})},p.id);return}h.addEvent(r,"dragover",function(s){s.preventDefault()},p.id);h.addEvent(r,"drop",function(t){var s=t.dataTransfer;if(s&&s.files){o(s.files)}t.preventDefault()},p.id)}});p.bind("Refresh",function(r){var s,u,v,w,t;s=j.getElementById(p.settings.browse_button);if(s){u=h.getPos(s,j.getElementById(r.settings.container));v=h.getSize(s);w=j.getElementById(p.id+"_html5_container");h.extend(w.style,{top:u.y+"px",left:u.x+"px",width:v.w+"px",height:v.h+"px"});if(p.features.canOpenDialog){t=parseInt(s.parentNode.style.zIndex,10);if(isNaN(t)){t=0}h.extend(s.style,{zIndex:t});if(h.getStyle(s,"position")==="static"){h.extend(s.style,{position:"relative"})}h.extend(w.style,{zIndex:t-1})}}});p.bind("UploadFile",function(r,t){var u=r.settings,w,s;function v(x){var A=0,z=0;function y(){var H=x,O,P,K,L,M=0,D="----pluploadboundary"+h.guid(),G,I,E,F="--",N="\r\n",J="",C,B=r.settings.url;if(t.status==h.DONE||t.status==h.FAILED||r.state==h.STOPPED){return}L={name:t.target_name||t.name};if(u.chunk_size&&n.chunks){G=u.chunk_size;K=Math.ceil(t.size/G);I=Math.min(G,t.size-(A*G));if(typeof(x)=="string"){H=x.substring(A*G,A*G+I)}else{H=x.slice(A*G,I)}L.chunk=A;L.chunks=K}else{I=t.size}O=new XMLHttpRequest();P=O.upload;if(P){P.onprogress=function(Q){t.loaded=Math.min(t.size,z+Q.loaded-M);r.trigger("UploadProgress",t)}}if(!r.settings.multipart||!n.multipart){B=h.buildUrl(r.settings.url,L)}else{L.name=t.target_name||t.name}O.open("post",B,true);O.onreadystatechange=function(){var Q,S;if(O.readyState==4){try{Q=O.status}catch(R){Q=0}if(Q>=400){r.trigger("Error",{code:h.HTTP_ERROR,message:h.translate("HTTP Error."),file:t,status:Q})}else{if(K){S={chunk:A,chunks:K,response:O.responseText,status:Q};r.trigger("ChunkUploaded",t,S);z+=I;if(S.cancelled){t.status=h.FAILED;return}t.loaded=Math.min(t.size,(A+1)*G)}else{t.loaded=t.size}r.trigger("UploadProgress",t);if(!K||++A>=K){t.status=h.DONE;r.trigger("FileUploaded",t,{response:O.responseText,status:Q});w=x=m[t.id]=null}else{y()}}O=H=E=J=null}};h.each(r.settings.headers,function(R,Q){O.setRequestHeader(Q,R)});if(r.settings.multipart&&n.multipart){if(!O.sendAsBinary){E=new FormData();h.each(h.extend(L,r.settings.multipart_params),function(R,Q){E.append(Q,R)});E.append(r.settings.file_data_name,H);O.send(E);return}O.setRequestHeader("Content-Type","multipart/form-data; boundary="+D);h.each(h.extend(L,r.settings.multipart_params),function(R,Q){J+=F+D+N+'Content-Disposition: form-data; name="'+Q+'"'+N+N;J+=unescape(encodeURIComponent(R))+N});C=h.mimeTypes[t.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";J+=F+D+N+'Content-Disposition: form-data; name="'+r.settings.file_data_name+'"; filename="'+unescape(encodeURIComponent(t.name))+'"'+N+"Content-Type: "+C+N+N+H+N+F+D+F+N;M=J.length-H.length;H=J}else{O.setRequestHeader("Content-Type","application/octet-stream")}if(O.sendAsBinary){O.sendAsBinary(H)}else{O.send(H)}}y()}w=m[t.id];s=r.settings.resize;if(n.jpgresize){if(s&&/\.(png|jpg|jpeg)$/i.test(t.name)){c(w,s,/\.png$/i.test(t.name)?"image/png":"image/jpeg",function(x){if(x.success){t.size=x.data.length;v(x.data)}else{k(w,v)}})}else{k(w,v)}}else{v(w)}});p.bind("Destroy",function(r){var t,u,s=j.body,v={inputContainer:r.id+"_html5_container",inputFile:r.id+"_html5",browseButton:r.settings.browse_button,dropElm:r.settings.drop_element};for(t in v){u=j.getElementById(v[t]);if(u){h.removeAllEvents(u,r.id)}}h.removeAllEvents(j.body,r.id);if(r.settings.container){s=j.getElementById(r.settings.container)}s.removeChild(j.getElementById(v.inputContainer))});q({success:true})}});function b(){var p=false,n;function q(s,u){var r=p?0:-8*(u-1),v=0,t;for(t=0;t>Math.abs(r+u*8))&255)}m(w,s,v)}return{II:function(r){if(r===d){return p}else{p=r}},init:function(r){p=false;n=r},SEGMENT:function(r,t,s){switch(arguments.length){case 1:return n.substr(r,n.length-r-1);case 2:return n.substr(r,t);case 3:m(s,r,t);break;default:return n}},BYTE:function(r){return q(r,1)},SHORT:function(r){return q(r,2)},LONG:function(r,s){if(s===d){return q(r,4)}else{o(r,s,4)}},SLONG:function(r){var s=q(r,4);return(s>2147483647?s-4294967296:s)},STRING:function(r,s){var t="";for(s+=r;r=65488&&o<=65495){m+=2;continue}if(o===65498||o===65497){break}p=q.SHORT(m+2)+2;if(t[o]&&q.STRING(m+4,t[o].signature.length)===t[o].signature){s.push({hex:o,app:t[o].app.toUpperCase(),name:t[o].name.toUpperCase(),start:m,length:p,segment:q.SEGMENT(m,p)})}m+=p}q.init(null);return{headers:s,restore:function(w){q.init(w);if(q.SHORT(0)!==65496){return false}m=q.SHORT(2)==65504?4+q.SHORT(4):2;for(var v=0,u=s.length;v=y.length){break}}},purge:function(){s=[];q.init(null)}}}function a(){var p,m,n={},s;p=new b();m={tiff:{274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"},exif:{36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"},gps:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"}};s={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};function o(t,B){var v=p.SHORT(t),y,E,F,A,z,u,w,C,D=[],x={};for(y=0;y4){w=p.LONG(w)+n.tiffHeader}for(E=0;E4){w=p.LONG(w)+n.tiffHeader}x[F]=p.STRING(w,z-1);continue;case 3:if(z>2){w=p.LONG(w)+n.tiffHeader}for(E=0;E1){w=p.LONG(w)+n.tiffHeader}for(E=0;E';n=y.firstChild;j.appendChild(n);b.addEvent(n,"load",function(D){var E=D.target,C,A;if(!k){return}try{C=E.contentWindow.document||E.contentDocument||d.frames[E.id].document}catch(B){p.trigger("Error",{code:b.SECURITY_ERROR,message:b.translate("Security error."),file:k});return}A=C.documentElement.innerText||C.documentElement.textContent;if(A){k.status=b.DONE;k.loaded=1025;k.percent=100;p.trigger("UploadProgress",k);p.trigger("FileUploaded",k,{response:A})}},p.id)}if(p.settings.container){j=e(p.settings.container);if(b.getStyle(j,"position")==="static"){j.style.position="relative"}}p.bind("UploadFile",function(y,B){var C,A;if(B.status==b.DONE||B.status==b.FAILED||y.state==b.STOPPED){return}C=e("form_"+B.id);A=e("input_"+B.id);A.setAttribute("name",y.settings.file_data_name);C.setAttribute("action",y.settings.url);b.each(b.extend({name:B.target_name||B.name},y.settings.multipart_params),function(F,D){var E=a.createElement("input");b.extend(E,{type:"hidden",name:D,value:F});C.insertBefore(E,C.firstChild)});k=B;e("form_"+q).style.top=-1048575+"px";C.submit();C.parentNode.removeChild(C)});p.bind("FileUploaded",function(y){y.refresh()});p.bind("StateChanged",function(y){if(y.state==b.STARTED){u()}if(y.state==b.STOPPED){d.setTimeout(function(){b.removeEvent(n,"load",y.id);n.parentNode.removeChild(n)},0)}});p.bind("Refresh",function(B){var G,C,D,E,y,H,I,F,A;G=e(B.settings.browse_button);if(G){y=b.getPos(G,e(B.settings.container));H=b.getSize(G);I=e("form_"+q);F=e("input_"+q);b.extend(I.style,{top:y.y+"px",left:y.x+"px",width:H.w+"px",height:H.h+"px"});if(B.features.canOpenDialog){A=parseInt(G.parentNode.style.zIndex,10);if(isNaN(A)){A=0}b.extend(G.style,{zIndex:A});if(b.getStyle(G,"position")==="static"){b.extend(G.style,{position:"relative"})}b.extend(I.style,{zIndex:A-1})}D=B.settings.browse_button_hover;E=B.settings.browse_button_active;C=B.features.canOpenDialog?G:I;if(D){b.addEvent(C,"mouseover",function(){b.addClass(G,D)},B.id);b.addEvent(C,"mouseout",function(){b.removeClass(G,D)},B.id)}if(E){b.addEvent(C,"mousedown",function(){b.addClass(G,E)},B.id);b.addEvent(a.body,"mouseup",function(){b.removeClass(G,E)},B.id)}}});f.bind("FilesRemoved",function(y,B){var A,C;for(A=0;A
\ No newline at end of file
diff --git a/soundmap/js/soundmap-admin.js b/soundmap/js/soundmap-admin.js
index 24a7593..64887f4 100644
--- a/soundmap/js/soundmap-admin.js
+++ b/soundmap/js/soundmap-admin.js
@@ -1,203 +1,354 @@
+var sendOnFinish = false;
+
jQuery(document).ready(function($) {
- // $() will work as an alias for jQuery() inside of this function
+ // $() will work as an alias for jQuery() inside of this function
var map_canvas = $('#map_canvas');
- var or_latln= new google.maps.LatLng(WP_Params.lat, WP_Params.lng);
+ var or_latln = new google.maps.LatLng(WP_Params.lat, WP_Params.lng);
var or_maptype;
- switch (WP_Params.mapType){
- case 'ROADMAP':
- or_maptype = google.maps.MapTypeId.ROADMAP;
- break;
- case 'HYBRID':
- or_maptype = google.maps.MapTypeId.HYBRID;
- break;
- case 'TERRAIN':
- or_maptype = google.maps.MapTypeId.TERRAIN;
- break;
- case 'SATELLITE':
- or_maptype = google.maps.MapTypeId.SATELLITE;
- break;
- }
+ switch (WP_Params.mapType) {
+ case 'ROADMAP':
+ or_maptype = google.maps.MapTypeId.ROADMAP;
+ break;
+ case 'HYBRID':
+ or_maptype = google.maps.MapTypeId.HYBRID;
+ break;
+ case 'TERRAIN':
+ or_maptype = google.maps.MapTypeId.TERRAIN;
+ break;
+ case 'SATELLITE':
+ or_maptype = google.maps.MapTypeId.SATELLITE;
+ break;
+ }
var soundmark;
- if (map_canvas){
- $('#map_canvas').gmap({'center': or_latln, 'zoom' : Number(WP_Params.zoom),'mapTypeId': or_maptype, 'callback': function(map){
- if($('#soundmap-marker-lat').val()!=""){
- var latlng = new google.maps.LatLng($('#soundmap-marker-lat').val(), $('#soundmap-marker-lng').val());
- map.panTo(latlng);
- soundmark = map_canvas.gmap('addMarker', {'position': latlng, 'title':'', 'draggable':true}, function(map, marker){
- });
- }
- $(map).click( function (event){
- if (soundmark == undefined){
- soundmark = map_canvas.gmap('addMarker', {'position': event.latLng, 'title':'', 'draggable':true}, function(map, marker){
- var marker_position=marker.getPosition();
- $('#soundmap-marker-lat').val(marker_position.lat());
- $('#soundmap-marker-lng').val(marker_position.lng());
- });
-
- }else{
- var marker = soundmark.get(0);
- var new_position = event.latLng;
-
- marker.setPosition(new_position);
-
- $('#soundmap-marker-lat').val(new_position.lat());
- $('#soundmap-marker-lng').val(new_position.lng());
- }
- })
- }});
+ if(map_canvas.length) {
+ $('#map_canvas').gmap({
+ 'center' : or_latln,
+ 'zoom' : Number(WP_Params.zoom),
+ 'mapTypeId' : or_maptype
+ }).bind('init', function(event, map) {
+ if($('#soundmap-marker-lat').val() != "") {
+ var latlng = new google.maps.LatLng($('#soundmap-marker-lat').val(), $('#soundmap-marker-lng').val());
+ map.panTo(latlng);
+ soundmark = map_canvas.gmap('addMarker', {
+ 'position' : latlng,
+ 'title' : '',
+ 'draggable' : true
+ }, function(map, marker) {
+ });
+ }
+ $(map).click(function(event) {
+ if(soundmark == undefined) {
+ soundmark = map_canvas.gmap('addMarker', {
+ 'position' : event.latLng,
+ 'title' : '',
+ 'draggable' : true
+ }, function(map, marker) {
+ var marker_position = marker.getPosition();
+ $('#soundmap-marker-lat').val(marker_position.lat());
+ $('#soundmap-marker-lng').val(marker_position.lng());
+ });
+ } else {
+ var marker = soundmark.get(0);
+ var new_position = event.latLng;
+
+ marker.setPosition(new_position);
+
+ $('#soundmap-marker-lat').val(new_position.lat());
+ $('#soundmap-marker-lng').val(new_position.lng());
+ }
+ })
+ });
}
-
+
var map_canvas_options = $('#map_canvas_options');
- if (map_canvas_options){
- $('#map_canvas_options').gmap({'center': or_latln, 'zoom' : Number(WP_Params.zoom), 'mapTypeId': or_maptype, 'callback': function(map){
- $(map).dragend(function(event){
- var new_center = map.getCenter();
- $('#soundmap_op_origin_lat').val(new_center.lat());
- $('#soundmap_op_origin_lng').val(new_center.lng());
- });
- $(map).addEventListener('zoom_changed', function(event){
- var new_zoom = map.getZoom();
- $('#soundmap_op_origin_zoom').val(new_zoom);
- });
- $(map).addEventListener('maptypeid_changed',function(event){
- var new_type = map.getMapTypeId();
- switch (new_type)
- {
- case google.maps.MapTypeId.ROADMAP:
- $('#soundmap_op_origin_type').children('option[value|="ROADMAP"]').attr('selected','selected');
- break;
- case google.maps.MapTypeId.HYBRID:
- $('#soundmap_op_origin_type').children('option[value|="HYBRID"]').attr('selected','selected');
- break;
- case google.maps.MapTypeId.TERRAIN:
- $('#soundmap_op_origin_type').children('option[value|="TERRAIN"]').attr('selected','selected');
- break;
- case google.maps.MapTypeId.SATELLITE:
- $('#soundmap_op_origin_type').children('option[value|="SATELLITE"]').attr('selected','selected');
- break;
- }
- });
-
- }
- });
- $('#soundmap_op_origin_lat, #soundmap_op_origin_lng, #soundmap_op_origin_zoom', '#soundmap_op_origin_type').change(function(){
- var latlng = new google.maps.LatLng($('#soundmap_op_origin_lat').val(), $('#soundmap_op_origin_lng').val());
- var z = $('#soundmap_op_origin_zoom').val();
- map = map_canvas_options.gmap('getMap');
- map.panTo(latlng);
- map.setCenter(latlng);
- map.setZoom(Number(z));
- });
- $('#soundmap_op_origin_type').change(function(){
- var t = $('#soundmap_op_origin_type').val();
- map = map_canvas_options.gmap('getMap');
- switch (t){
- case 'ROADMAP':
- mt = google.maps.MapTypeId.ROADMAP;
- break;
- case 'HYBRID':
- mt = google.maps.MapTypeId.HYBRID;
- break;
- case 'TERRAIN':
- mt = google.maps.MapTypeId.TERRAIN;
- break;
- case 'SATELLITE':
- mt = google.maps.MapTypeId.SATELLITE;
- break;
- }
- map.setMapTypeId(mt);
+ if(map_canvas_options.length) {
+ $('#map_canvas_options').gmap({
+ 'center' : or_latln,
+ 'zoom' : Number(WP_Params.zoom),
+ 'mapTypeId' : or_maptype
+ }).bind('init', function(event, map) {
+ $(map).dragend(function(event) {
+ var new_center = map.getCenter();
+ $('#soundmap_op_origin_lat').val(new_center.lat());
+ $('#soundmap_op_origin_lng').val(new_center.lng());
+ });
+ $(map).addEventListener('zoom_changed', function(event) {
+ var new_zoom = map.getZoom();
+ $('#soundmap_op_origin_zoom').val(new_zoom);
+ });
+ $(map).addEventListener('maptypeid_changed', function(event) {
+ var new_type = map.getMapTypeId();
+ switch (new_type) {
+ case google.maps.MapTypeId.ROADMAP:
+ $('#soundmap_op_origin_type').children('option[value|="ROADMAP"]').attr('selected', 'selected');
+ break;
+ case google.maps.MapTypeId.HYBRID:
+ $('#soundmap_op_origin_type').children('option[value|="HYBRID"]').attr('selected', 'selected');
+ break;
+ case google.maps.MapTypeId.TERRAIN:
+ $('#soundmap_op_origin_type').children('option[value|="TERRAIN"]').attr('selected', 'selected');
+ break;
+ case google.maps.MapTypeId.SATELLITE:
+ $('#soundmap_op_origin_type').children('option[value|="SATELLITE"]').attr('selected', 'selected');
+ break;
+ }
+ });
+ });
+ $('#soundmap_op_origin_lat, #soundmap_op_origin_lng, #soundmap_op_origin_zoom', '#soundmap_op_origin_type').change(function() {
+ var latlng = new google.maps.LatLng($('#soundmap_op_origin_lat').val(), $('#soundmap_op_origin_lng').val());
+ var z = $('#soundmap_op_origin_zoom').val();
+ map = map_canvas_options.gmap('getMap');
+ map.panTo(latlng);
+ map.setCenter(latlng);
+ map.setZoom(Number(z));
+ });
+ $('#soundmap_op_origin_type').change(function() {
+ var t = $('#soundmap_op_origin_type').val();
+ map = map_canvas_options.gmap('getMap');
+ switch (t) {
+ case 'ROADMAP':
+ mt = google.maps.MapTypeId.ROADMAP;
+ break;
+ case 'HYBRID':
+ mt = google.maps.MapTypeId.HYBRID;
+ break;
+ case 'TERRAIN':
+ mt = google.maps.MapTypeId.TERRAIN;
+ break;
+ case 'SATELLITE':
+ mt = google.maps.MapTypeId.SATELLITE;
+ break;
+ }
+ map.setMapTypeId(mt);
- });
+ });
}
-
- $('#soundmap-marker-lat, #soundmap-marker-lng').change(function(){
- var latlng = new google.maps.LatLng($('#soundmap-marker-lat').val(), $('#soundmap-marker-lng').val());
- map = map_canvas.gmap('getMap');
- map.panTo(latlng);
- if(soundmark == undefined){
- soundmark = map_canvas.gmap('addMarker', {'position': latlng, 'title':'', 'draggable':true}, function(map, marker){});
- }else{
- var marker = soundmark.get(0);
- marker.setPosition(latlng);
- }
- });
-
- $("#uploader").pluploadQueue({
- // General settings
- runtimes : 'gears,flash,silverlight,browserplus,html5',
- url : WP_Params.plugin_url + 'js/plupload/upload.php',
- max_file_size : '10mb',
- chunk_size : '1mb',
- unique_names : true,
- multiple_queues : true,
- // Specify what files to browse for
- filters : [
- {title : "Sound files", extensions : "mp3"},
- ],
- // Flash settings
- flash_swf_url : WP_Params.plugin_url + 'js/plupload/plupload.flash.swf',
-
- // Silverlight settings
- silverlight_xap_url : WP_Params.plugin_url + 'js/plupload/plupload.silverlight.xap',
- //Events
- init : {
- FileUploaded: function(up, file, info) {
- // Called when a file has finished uploading
- //log('[FileUploaded] File:', file, "Info:", info);
- var data = {
- action: 'soundmap_file_uploaded',
- file_name: file,
- file_info: info
- };
- $.post(ajaxurl, data, function(response) {
- result = $.parseJSON(response);
- if (result.error != ""){
- alert (result.error);
- }else{
- table = $('#sound-att-table');
- table.append ('' + result.fileName + ' ' + result.length + ' ');
- box = $('#soundmap-attachments');
- box.append (' ');
- }
- });
- }
- }
+ $('#soundmap-marker-lat, #soundmap-marker-lng').change(function() {
+ var latlng = new google.maps.LatLng($('#soundmap-marker-lat').val(), $('#soundmap-marker-lng').val());
+ map = map_canvas.gmap('getMap');
+ map.panTo(latlng);
+ if(soundmark == undefined) {
+ soundmark = map_canvas.gmap('addMarker', {
+ 'position' : latlng,
+ 'title' : '',
+ 'draggable' : true
+ }, function(map, marker) {
+ });
+ } else {
+ var marker = soundmark.get(0);
+ marker.setPosition(latlng);
+ }
});
-
+
$('#post').submit(function(e) {
- var uploader = $('#uploader').pluploadQueue();
- // Validate number of uploaded files
- if (uploader.total.uploaded == 0) {
- // Files in queue upload them first
- if (uploader.files.length >= 0) {
- // When all files are uploaded submit form
- uploader.bind('UploadProgress', function() {
- if (uploader.total.uploaded == uploader.files.length)
- $('#post').submit();
- });
-
- uploader.start();
- } else {
- // alert('You must at least upload one file.');
-
- }
-
-
- }
+ var sT = uploader.getStats();
+ // Validate number of uploaded files
+ if(sT.in_progress == 1) {
+ sendOnFinish = true;
+ alert('File not uploaded yet.');
+ e.preventDefault();
+ }
});
+
$('#soundmap-marker-datepicker').DatePicker({
- format:'d/m/Y',
- date: $('#soundmap-marker-date').val(),
- current: $('#soundmap-marker-date').val(),
- starts: 1,
- flat: true,
- onChange: function(formated, dates){
- $('#soundmap-marker-date').val(formated);
- }
+ format : 'd/m/Y',
+ date : $('#soundmap-marker-date').val(),
+ current : $('#soundmap-marker-date').val(),
+ starts : 1,
+ flat : true,
+ onChange : function(formated, dates) {
+ $('#soundmap-marker-date').val(formated);
+ }
});
-
-});
\ No newline at end of file
+
+ var uploader_settings = {
+ upload_url : ajaxurl,
+ use_query_string : false,
+ http_success : [201, 202],
+ file_post_name : "Filedata",
+ prevent_swf_caching : false,
+ preserve_relative_urls : false,
+
+ flash_url : WP_Params.swfupload_flash,
+ button_placeholder_id : 'uploaderButton',
+ post_params : {
+ 'action' : 'soundmap_file_uploaded'
+ },
+
+ // File Upload Settings
+ file_size_limit : "20 MB", // 2MB
+ file_types : "*.mp3",
+ file_types_description : "MP3 Files",
+ file_upload_limit : "0",
+ file_queue_limit : 1,
+
+ button_text : '' + WP_Params.selectfile + '<\/span>',
+ button_text_style : '.button { text-align: center; font-weight: bold; font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size: 11px; text-shadow: 0 1px 0 #FFFFFF; color:#464646; }',
+ button_height : "23",
+ button_width : "132",
+ button_text_top_padding : 3,
+ button_image_url : WP_Params.swfupload_picture,
+
+ // Event Handler Settings - these functions as defined in Handlers.js
+ // The handlers are not part of SWFUpload but are part of my website and control how
+ // my website reacts to the SWFUpload events.
+ file_queue_error_handler : s_fileQueueError,
+ file_queued_handler : s_fileQueued,
+ file_dialog_complete_handler : s_fileDialogComplete,
+ upload_progress_handler : s_uploadProgress,
+ upload_error_handler : s_uploadError,
+ upload_success_handler : s_uploadSuccess,
+ upload_complete_handler : s_uploadComplete,
+ debug_handler : s_debug_function,
+ queue_complete_handler : s_queue_complete
+
+ //debug: true
+
+ };
+
+ if(jQuery("#uploaderButton").length){
+ uploader = new SWFUpload(uploader_settings);
+ }
+
+});
+////__________ HANDLERS_____________////
+
+function s_queue_complete (numFilesUploaded){
+ if (sendOnFinish){
+ jQuery('#post').submit();
+ }
+}
+
+function s_debug_function (message) {
+ console.log(message);
+}
+
+function s_fileQueued(file) {
+
+ try {
+ jQuery('#uploaderQueue').append('');
+ // Display the progress div
+ jQuery('.progress', '#upload-item-' + file.id).show();
+ } catch(ex) {
+ this.debug(ex);
+ }
+
+}
+
+function s_fileQueueError(file, errorCode, message) {
+ try {
+ var imageName = "error.gif";
+ var errorName = "";
+ if(errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
+ errorName = "You have attempted to queue too many files.";
+ }
+
+ if(errorName !== "") {
+ alert(errorName);
+ return;
+ }
+
+ switch (errorCode) {
+ case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
+ imageName = "zerobyte.gif";
+ break;
+ case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
+ imageName = "toobig.gif";
+ break;
+ case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
+ case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
+ default:
+ alert(message);
+ break;
+ }
+
+ addImage("images/" + imageName);
+
+ } catch (ex) {
+ this.debug(ex);
+ }
+
+}
+
+function s_fileDialogComplete(numFilesSelected, numFilesQueued) {
+ try {
+ if(numFilesQueued > 0) {
+ this.startUpload();
+ }
+ } catch (ex) {
+ this.debug(ex);
+ }
+}
+
+function s_uploadProgress(file, bytesLoaded) {
+
+ // Lengthen the progress bar
+ var w = jQuery('#uploaderQueue').width() - 2, item = jQuery('#upload-item-' + file.id);
+ jQuery('.bar', item).width(w * bytesLoaded / file.size);
+ jQuery('.percent', item).html(Math.ceil(bytesLoaded / file.size * 100) + '%');
+
+}
+
+function s_uploadSuccess(file, serverData) {
+ try {
+ // var progress = new FileProgress(file, this.customSettings.upload_target);
+ result = jQuery.parseJSON(serverData);
+ if(result.error != "") {
+ alert(result.error);
+ } else {
+ table = jQuery('#sound-att-table');
+ table.append('' + result.fileName + ' ' + result.length + ' ');
+ box = jQuery('#soundmap-attachments');
+ box.append(' ');
+
+ }
+ } catch (ex) {
+ this.debug(ex);
+ }
+}
+
+function s_uploadComplete(file) {
+ try {
+ /* I want the next upload to continue automatically so I'll call startUpload here */
+ if(this.getStats().files_queued > 0) {
+ this.startUpload();
+ } else {
+ }
+ } catch (ex) {
+ this.debug(ex);
+ }
+}
+
+function s_uploadError(file, errorCode, message) {
+ var imageName = "error.gif";
+ //var progress;
+ try {
+ switch (errorCode) {
+ case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
+ try {
+ } catch (ex1) {
+ this.debug(ex1);
+ }
+ break;
+ case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
+ try {
+ } catch (ex2) {
+ this.debug(ex2);
+ }
+ case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
+ imageName = "uploadlimit.gif";
+ break;
+ default:
+ alert(message);
+ break;
+ }
+
+ } catch (ex3) {
+ this.debug(ex3);
+ }
+
+}
\ No newline at end of file
diff --git a/soundmap/js/soundmap-wp.js b/soundmap/js/soundmap-wp.js
index 322683c..b878e00 100644
--- a/soundmap/js/soundmap-wp.js
+++ b/soundmap/js/soundmap-wp.js
@@ -1,63 +1,102 @@
+var g_map;
+var or_latln;
+var info_w;
jQuery(document).ready(function($) {
- // $() will work as an alias for jQuery() inside of this function
+ // $() will work as an alias for jQuery() inside of this function
var map_canvas = $('.map_canvas');
- var g_map;
- var or_latln= new google.maps.LatLng(WP_Params.lat, WP_Params.lng);
+ or_latln = new google.maps.LatLng(WP_Params.lat, WP_Params.lng);
var or_maptype;
- switch (WP_Params.mapType){
- case 'ROADMAP':
- or_maptype = google.maps.MapTypeId.ROADMAP;
- break;
- case 'HYBRID':
- or_maptype = google.maps.MapTypeId.HYBRID;
- break;
- case 'TERRAIN':
- or_maptype = google.maps.MapTypeId.TERRAIN;
- break;
- case 'SATELLITE':
- or_maptype = google.maps.MapTypeId.SATELLITE;
- break;
- }
+ switch (WP_Params.mapType) {
+ case 'ROADMAP':
+ or_maptype = google.maps.MapTypeId.ROADMAP;
+ break;
+ case 'HYBRID':
+ or_maptype = google.maps.MapTypeId.HYBRID;
+ break;
+ case 'TERRAIN':
+ or_maptype = google.maps.MapTypeId.TERRAIN;
+ break;
+ case 'SATELLITE':
+ or_maptype = google.maps.MapTypeId.SATELLITE;
+ break;
+ }
map_canvas.after('
')
info_w = false;
- if (map_canvas){
- markers_map = $('.map_canvas').gmap({'center': or_latln, 'zoom' : Number(WP_Params.zoom),'mapTypeId': or_maptype, 'callback': function(map){
- g_map=map;
- info_w = new google.maps.InfoWindow({content: ' '});
-
- var data = {
- action: 'soundmap_JSON_load_markers'
- };
- $.post(WP_Params.ajaxurl, data, function(response) {
- result = $.parseJSON(response);
- if (result){
- $.each( result, function(i, m) {
- $('.map_canvas').gmap('addMarker', { 'position': new google.maps.LatLng(m.lat, m.lng) }).data('postid', m.id).click(function(){
- id=$(this).data('postid');
- marker = $(this).get(0);
-
- var data = {
- action: 'soundmap_load_infowindow',
- marker: id
- };
-
- $.post(WP_Params.ajaxurl, data, function(response){
- info_w.close();
- $("#hidden-markers-content").append(response);
- info_w.setContent($("#hidden-markers-content").children().get(0));
- info_w.open(g_map, marker);
- });
- })
- });
-
-
-
- }
- });
+ if(map_canvas) {
+ markers_map = $('.map_canvas').gmap({
+ 'center' : or_latln,
+ 'zoom' : Number(WP_Params.zoom),
+ 'mapTypeId' : or_maptype
+ }).bind('init', function(event, map) {
+ if( typeof onMapFinished == 'function') {
+ onMapFinished(map);
}
- });
+ g_map = map;
+ info_w = new google.maps.InfoWindow({
+ content : ' '
+ });
+ var data = {
+ action : 'soundmap_JSON_load_markers',
+ markers : WP_Params.markers
+
+ };
+ $.post(WP_Params.ajaxurl, data, function(response) {
+ result = $.parseJSON(response);
+ if(result) {
+ /////////////_ICON
+ var image = new google.maps.MarkerImage(WP_Params.pluginURL + '/img/map_icons/marker.png',
+ // This marker is 20 pixels wide by 32 pixels tall.
+ new google.maps.Size(19, 30),
+ // The origin for this image is 0,0.
+ new google.maps.Point(0, 0),
+ // The anchor for this image is the base of the flagpole at 0,32.
+ new google.maps.Point(9, 30));
+ var shadow = new google.maps.MarkerImage(WP_Params.pluginURL + '/img/map_icons/marker_shadow.png',
+ // The shadow image is larger in the horizontal dimension
+ // while the position and offset are the same as for the main image.
+ new google.maps.Size(34, 30), new google.maps.Point(0, 0), new google.maps.Point(9, 30));
+ // Shapes define the clickable region of the icon.
+ // The type defines an HTML element 'poly' which
+ // traces out a polygon as a series of X,Y points. The final
+ // coordinate closes the poly by connecting to the first
+ // coordinate.
+ var shape = {
+ coord : [9, 0, 19, 9, 12, 17, 9, 30, 6, 17, 0, 9, 9, 0],
+ type : 'poly'
+ };
+ //////////////_ICON
+ ajax_url = WP_Params.ajaxurl;
+
+ $.each(result, function(i, m) {
+ $('.map_canvas').gmap('addMarker', {
+ id : m.id.toString(),
+ 'position' : new google.maps.LatLng(m.lat, m.lng),
+ 'shadow' : shadow,
+ 'icon' : image,
+ 'shape' : shape
+ }).click(function() {
+ id = this.id;
+ marker = this;
+
+
+ var data = {
+ action : 'soundmap_load_infowindow',
+ marker : id
+ };
+
+ $.post(ajax_url, data, function(response) {
+ info_w.close();
+ $("#hidden-markers-content").append(response);
+ info_w.setContent($("#hidden-markers-content").children().get(0));
+ info_w.open(g_map, marker);
+
+ });
+ })
+ });
+ }
+ });
+ });
}
-
-
-});
\ No newline at end of file
+
+});
diff --git a/soundmap/js/soundmap-wp_multi.js b/soundmap/js/soundmap-wp_multi.js
new file mode 100644
index 0000000..f335123
--- /dev/null
+++ b/soundmap/js/soundmap-wp_multi.js
@@ -0,0 +1,98 @@
+
+var g_map;
+var or_latln;
+var info_w;
+
+jQuery(document).ready(function($) {
+ // $() will work as an alias for jQuery() inside of this function
+ var map_canvas = $('.map_canvas');
+
+ or_latln= new google.maps.LatLng(WP_Params.lat, WP_Params.lng);
+ var or_maptype;
+ switch (WP_Params.mapType){
+ case 'ROADMAP':
+ or_maptype = google.maps.MapTypeId.ROADMAP;
+ break;
+ case 'HYBRID':
+ or_maptype = google.maps.MapTypeId.HYBRID;
+ break;
+ case 'TERRAIN':
+ or_maptype = google.maps.MapTypeId.TERRAIN;
+ break;
+ case 'SATELLITE':
+ or_maptype = google.maps.MapTypeId.SATELLITE;
+ break;
+ }
+ map_canvas.after('
')
+ info_w = false;
+ if (map_canvas){
+ markers_map = $('.map_canvas').gmap({'center': or_latln, 'zoom' : Number(WP_Params.zoom),'mapTypeId': or_maptype}).bind('init', function(event, map){
+ if (typeof onMapFinished == 'function'){
+ onMapFinished(map);
+ }
+
+ g_map=map;
+
+ info_w = new google.maps.InfoWindow({content: ' '});
+ var data = {
+ action: 'soundmap_JSON_load_markers',
+ markers: WP_Params.markers
+
+ };
+ $.post(WP_Params.ajaxurl, data, function(response) {
+ result = $.parseJSON(response);
+ if (result){
+ /////////////_ICON
+ var image = new google.maps.MarkerImage(WP_Params.pluginURL + '/img/map_icons/marker.png',
+ // This marker is 20 pixels wide by 32 pixels tall.
+ new google.maps.Size(19, 30),
+ // The origin for this image is 0,0.
+ new google.maps.Point(0,0),
+ // The anchor for this image is the base of the flagpole at 0,32.
+ new google.maps.Point(9, 30));
+ var shadow = new google.maps.MarkerImage(WP_Params.pluginURL + '/img/map_icons/marker_shadow.png',
+ // The shadow image is larger in the horizontal dimension
+ // while the position and offset are the same as for the main image.
+ new google.maps.Size(34, 30),
+ new google.maps.Point(0,0),
+ new google.maps.Point(9, 30));
+ // Shapes define the clickable region of the icon.
+ // The type defines an HTML element 'poly' which
+ // traces out a polygon as a series of X,Y points. The final
+ // coordinate closes the poly by connecting to the first
+ // coordinate.
+ var shape = {
+ coord: [9, 0, 19, 9, 12, 17, 9 , 30, 6, 17, 0, 9, 9, 0],
+ type: 'poly'
+ };
+ //////////////_ICON
+ ajax_url = WP_Params.ajaxurl;
+
+ $.each( result, function(i, m) {
+ $('.map_canvas').gmap('addMarker', { id: m.id.toString(), 'position': new google.maps.LatLng(m.lat, m.lng), 'shadow': shadow, 'icon': image, 'shape': shape }).click(function(){
+ id=this.id; //$(this).data('postid');
+ marker = this;//$(this).get(0);
+
+ var data = {
+ action: 'soundmap_load_infowindow',
+ marker: id,
+ lang: WP_Params.language
+ };
+
+ $.post(ajax_url, data, function(response){
+ info_w.close();
+ $("#hidden-markers-content").append(response);
+ info_w.setContent($("#hidden-markers-content").children().get(0));
+ info_w.open(g_map, marker);
+ //jQuery('.map_canvas').gmap('openInfoWindow', { 'content': response }, marker);
+ });
+ })
+ });
+ }
+ });
+ }
+ );
+ }
+
+
+});
\ No newline at end of file
diff --git a/soundmap/js/uploader.swf b/soundmap/js/uploader.swf
new file mode 100644
index 0000000..c65fd96
Binary files /dev/null and b/soundmap/js/uploader.swf differ
diff --git a/soundmap/languages/soundmap-es_ES.mo b/soundmap/languages/soundmap-es_ES.mo
new file mode 100644
index 0000000..110a82e
Binary files /dev/null and b/soundmap/languages/soundmap-es_ES.mo differ
diff --git a/soundmap/languages/soundmap-es_ES.po b/soundmap/languages/soundmap-es_ES.po
new file mode 100644
index 0000000..c9d4ae3
--- /dev/null
+++ b/soundmap/languages/soundmap-es_ES.po
@@ -0,0 +1,381 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: SoundMap\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-01-27 15:56+0100\n"
+"PO-Revision-Date: 2012-01-27 16:05+0100\n"
+"Last-Translator: \n"
+"Language-Team: AudioLab\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: SPAIN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-SearchPath-0: ..\n"
+
+#: ../soundmap.php:38
+msgid "Marks"
+msgstr "Marcadores"
+
+#: ../soundmap.php:39
+msgid "Mark"
+msgstr "Marcador"
+
+#: ../soundmap.php:41
+msgid "Add New Marker"
+msgstr "Añadir nuevo marcador"
+
+#: ../soundmap.php:42
+msgid "Edit Marker"
+msgstr "Editar marcador"
+
+#: ../soundmap.php:43
+msgid "New Marker"
+msgstr "Nuevo marcador"
+
+#: ../soundmap.php:44
+msgid "All Markers"
+msgstr "Todos los marcadores"
+
+#: ../soundmap.php:45
+msgid "View Marker"
+msgstr "Ver marcadores"
+
+#: ../soundmap.php:46
+msgid "Search Markers"
+msgstr "Buscar marcadores"
+
+#: ../soundmap.php:47
+msgid "No markers found"
+msgstr "No se han encontrado marcadores"
+
+#: ../soundmap.php:48
+msgid "No markers found in Trash"
+msgstr "No se han encontrado marcadores en la papelera"
+
+#: ../soundmap.php:171
+msgid "Place the Marker"
+msgstr "Ubica el marcador"
+
+#: ../soundmap.php:172
+msgid "Add a sound file"
+msgstr "Añade una grabación"
+
+#: ../soundmap.php:173
+msgid "Add info for the marker"
+msgstr "Añade información sobre el marcador"
+
+#: ../soundmap.php:174
+msgid "Sound files attached."
+msgstr "Grabaciones añadidas."
+
+#: ../soundmap.php:175
+msgid "Uploader Mail"
+msgstr "Uploader Mail"
+
+#: ../soundmap.php:192
+msgid "Author"
+msgstr "Autor"
+
+#: ../soundmap.php:206
+msgid "Filename"
+msgstr "Archivo"
+
+#: ../soundmap.php:206
+msgid "Length"
+msgstr "Duración"
+
+#: ../soundmap.php:236
+msgid "Latitud"
+msgstr "Latitud"
+
+#: ../soundmap.php:238
+msgid "Longitud"
+msgstr "Longitud"
+
+#: ../soundmap.php:294
+#, fuzzy
+msgid "Select file"
+msgstr "Seleccionar grabación"
+
+#: ../soundmap.php:471
+msgid "Error moving the file."
+msgstr "Error moviendo el archivo."
+
+#: ../soundmap.php:641
+#: ../soundmap.php:674
+msgid "Sound Map Configuration"
+msgstr "Configuración del Mapa Sonoro"
+
+#: ../soundmap.php:641
+msgid "Sound Map"
+msgstr "Mapa Sonoro"
+
+#: ../soundmap.php:659
+msgid "You do not have sufficient permissions to access this page."
+msgstr "No tiene suficientes permisos para acceder a esta página"
+
+#: ../soundmap.php:677
+msgid "Map Configuration"
+msgstr "Configuración del mapa"
+
+#: ../soundmap.php:680
+msgid "Origin configuration"
+msgstr "Posición inicial"
+
+#: ../soundmap.php:683
+msgid "Choose the original configuration with the map."
+msgstr "Elige la configuración original con el mapa."
+
+#: ../soundmap.php:685
+msgid "Latitude"
+msgstr "Latitud"
+
+#: ../soundmap.php:688
+msgid "Longitude"
+msgstr "Longitud"
+
+#: ../soundmap.php:691
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../soundmap.php:697
+msgid "Map type"
+msgstr "Tipo de mapa"
+
+#: ../soundmap.php:701
+msgid "Terrain"
+msgstr "Relieve"
+
+#: ../soundmap.php:702
+msgid "Satellite"
+msgstr "Satelite"
+
+#: ../soundmap.php:703
+#: ../modules/module.soundmap.upload.php:125
+msgid "Map"
+msgstr "Mapa"
+
+#: ../soundmap.php:704
+msgid "Hybrid"
+msgstr "HÃbrido"
+
+#: ../soundmap.php:710
+msgid "Show map page"
+msgstr "Mostrar página del mapa"
+
+#: ../soundmap.php:715
+msgid "Select one direction for showing the map (ex: map). If you want to use is as your home, write [home]. You can also show the map on any page using the shortcode [soundmap]"
+msgstr ""
+
+#: ../soundmap.php:720
+msgid "Sound Player Modules"
+msgstr "Módulos de reproductores de audio"
+
+#: ../soundmap.php:749
+msgid "Version"
+msgstr "Versión"
+
+#: ../soundmap.php:749
+msgid "By"
+msgstr "Por"
+
+#: ../soundmap.php:749
+msgid "Visit plugin site"
+msgstr "Visitar página del plugin"
+
+#: ../soundmap.php:759
+msgid "Plugin"
+msgstr "Plugin"
+
+#: ../soundmap.php:760
+msgid "Description"
+msgstr "Descripción"
+
+#: ../api/soundmap_tags.php:100
+msgid "Add new recording"
+msgstr "Añadir nueva grabación"
+
+#: ../modules/module.soundmap.upload.php:38
+msgid "Select audio file"
+msgstr "Seleccionar grabación"
+
+#: ../modules/module.soundmap.upload.php:39
+msgid "Please, place the recording"
+msgstr "Ubica la grabación"
+
+#: ../modules/module.soundmap.upload.php:40
+msgid "Please, select one file to upload."
+msgstr "Por favor, seleccione una archivo para subir."
+
+#: ../modules/module.soundmap.upload.php:41
+msgid "The selected file is too big."
+msgstr "El archivo seleccionado es demasiado grande."
+
+#: ../modules/module.soundmap.upload.php:42
+msgid "Locked: form can't be submited."
+msgstr "Cerrado: la grabación no se puede enviar."
+
+#: ../modules/module.soundmap.upload.php:43
+msgid "Unlocked: form can be submited."
+msgstr "Abierto: Puede enviar su grabación"
+
+#: ../modules/module.soundmap.upload.php:44
+msgid "Name: "
+msgstr "Nombre: "
+
+#: ../modules/module.soundmap.upload.php:45
+msgid "Length: "
+msgstr "Duración:"
+
+#: ../modules/module.soundmap.upload.php:124
+msgid "Sound file"
+msgstr "Grabación"
+
+#: ../modules/module.soundmap.upload.php:126
+msgid "Information"
+msgstr "Información"
+
+#: ../modules/module.soundmap.upload.php:127
+msgid "Submit"
+msgstr "Enviar"
+
+#: ../modules/module.soundmap.upload.php:145
+msgid "Sound file data: "
+msgstr "Datos de la grabación:"
+
+#: ../modules/module.soundmap.upload.php:151
+msgid "Saving the recording"
+msgstr "Guardando la grabación"
+
+#: ../modules/public_upload/save-post.php:110
+msgid "Author: "
+msgstr "Autor:"
+
+#: ../modules/public_upload/save-post.php:112
+msgid "Date: "
+msgstr "Fecha:"
+
+#: ../modules/public_upload/save-post.php:113
+msgid "Description: "
+msgstr "Descripción:"
+
+#: ../modules/public_upload/slide_first.php:7
+msgid "Contribute to Soinumapa.net Hello, just follow a few simple steps and within minutes Soinumapa.net will show your recording.
"
+msgstr "Colabora con Soinumapa.net Hola, sigue los pasos de este sencillo asistente y en unos minutos Soinumapa.net mostrará tu grabación.
"
+
+#: ../modules/public_upload/slide_first.php:8
+msgid "
Unless stated otherwise, your file, like all the sounds that make Soinumapa.net, will be published under a semi-free license (for more information see About Us section)."
+msgstr "A menos que se indique lo contrario, tu archivo, igual que el resto de sonidos que conforman Soinumapa.net, será publicado bajo una licencia semi-libre (para más información consulta la sección Acerca de)."
+
+#: ../modules/public_upload/slide_first.php:9
+msgid "Please fill in as much information as possible to identify your recording, and locate it within the map as accurate as possible."
+msgstr "Por favor, rellena la mayor cantidad de campos posibles para identificar tu grabación, y localÃzala en el mapa con la mayor precisión posible."
+
+#: ../modules/public_upload/slide_first.php:10
+msgid "In any case, the editing team from Soinumapa.net reserves the right to correct or add certain information and / or choose to display or not some recordings, always following the objectives and working methods of the project.
"
+msgstr "En todo caso, el equipo de edición de Soinumapa.net se reserva el derecho de corregir o añadir información y / o decidir si mostrar o no algunas grabaciones, siempre siguiendo los objetivos y métodos de trabajo del proyecto.
"
+
+#: ../modules/public_upload/slide_first.php:11
+msgid "Thanks for participating in Soinumapa.net!
"
+msgstr "¡Gracias por participar en Soinumapa.net!
"
+
+#: ../modules/public_upload/slide_first.php:16
+msgid "Step 1: Select audio file to upload"
+msgstr "Paso 1: Selecciona el archivo de audio"
+
+#: ../modules/public_upload/slide_first.php:24
+msgid "The sound file must be saved in mp3 format.
The maximum file size for uploading is 7 Mb, if you want to upload a bigger file, please contact to audiolab.arteleku@gmail.com
"
+msgstr "El archivo de sonido debe estar guardado en formato mp3.
El tamaño máximo de subida de un archivo es de 7 Mb, si necesitas subir un archivo mayor, por favor, ponte en contacto con audiolab.arteleku@gmail.com
"
+
+#: ../modules/public_upload/slide_fourth.php:10
+msgid "Last check "
+msgstr "Últimas comprobaciones "
+
+#: ../modules/public_upload/slide_fourth.php:11
+msgid "Now, check that position you selected is correct.
"
+msgstr "Ahora, comprueba que la posición que marcaste es correcta.
"
+
+#: ../modules/public_upload/slide_fourth.php:12
+msgid "In order to help us on any issue concerning the recording, give us your contact mail. We will not publicate it and you will no receive any spam from us."
+msgstr "Con el fin de ayudarnos en caso de tener cualquier problema relacionado con la grabación, te pedimos que nos des un mail de contacto. Esta dirección no será publicada y no recibirás ningún email no deseado por nuestra parte."
+
+#: ../modules/public_upload/slide_fourth.php:13
+msgid "Once you have filled the mail, slide the locker bar and submit the information.
Thank you for your collaboration "
+msgstr "Después de rellenar el mail, desliza la barra del candado para poder enviar los datos.
Gracias por tú colaboración. "
+
+#: ../modules/public_upload/slide_fourth.php:18
+msgid "Step 4: Check the position and upload recording"
+msgstr "Paso 4: Comprueba la ubicación y sube la grabación"
+
+#: ../modules/public_upload/slide_fourth.php:24
+msgid "Email: "
+msgstr "Email:"
+
+#: ../modules/public_upload/slide_fourth.php:28
+msgid "Add recording"
+msgstr "Añadir grabación"
+
+#: ../modules/public_upload/slide_second.php:10
+msgid "Place the recording "
+msgstr "Posiciona la grabación "
+
+#: ../modules/public_upload/slide_second.php:11
+msgid "Try to find the position for the recording on the map. Once you have find it, click on the location for positioning the marker.
"
+msgstr "Busca la posición donde realizaste la grabación en el mapa. Una vez localizada, haz click sobre la ubicación para posicionar el marcador.
"
+
+#: ../modules/public_upload/slide_second.php:16
+msgid "Step 2: Place the recording on the map"
+msgstr "Paso 2: Posiciona la grabación en el mapa"
+
+#: ../modules/public_upload/slide_third.php:6
+msgid "Information about the recording "
+msgstr "Información acerca de la grabación "
+
+#: ../modules/public_upload/slide_third.php:7
+msgid "Help us filling this form about the information of your recording.
"
+msgstr "Ayúdanos rellenando estos campos con información de tu grabación.
"
+
+#: ../modules/public_upload/slide_third.php:8
+msgid "Please, fill as much fields as you can, on the different languages of the sound map. Don't worry if you don't know how to do it in any language, we will check the texts and translate them.
"
+msgstr "Por favor, rellena todos los campos posibles en los distintos idiomas que forman el mapa sonoro. Si no conoces alguno de los idiomas, el equipo de edición del proyecto revisará el texto y lo traducirá.
"
+
+#: ../modules/public_upload/slide_third.php:9
+msgid "Fill also the fields of the date you did the recording, the name of the author and also try to categorize the recording. You can select more than one category.
"
+msgstr "IndÃcanos también la fecha en la que realizaste la grabación, el nombre del autor de la misma y las categorÃas bajo las que te gustarÃa catalogar la grabación. Puedes seleccionar más de una categorÃa.
"
+
+#: ../modules/public_upload/slide_third.php:14
+msgid "Step 3: Information about the recording"
+msgstr "Paso 3: Información acerca de la grabación"
+
+#: ../modules/public_upload/slide_third.php:60
+msgid "Title"
+msgstr "TÃtulo"
+
+#: ../modules/public_upload/slide_third.php:82
+msgid "Date (dd/mm/yyyy)"
+msgstr "Fecha (dd/mm/yyyy)"
+
+#: ../modules/public_upload/slide_third.php:84
+msgid "Category"
+msgstr "CategorÃa"
+
+#: ../theme/theme_map.php:25
+msgid "SoundMap"
+msgstr "Mapa Sonoro"
+
+#: ../theme/theme_window.php:12
+msgid "Date"
+msgstr "Fecha"
+
+#: ../theme/theme_window.php:19
+msgid "Tags"
+msgstr "Etiquetas"
+
+#: ../theme/theme_window.php:20
+msgid "Categories"
+msgstr "CategorÃas"
+
diff --git a/soundmap/languages/soundmap-es_ES.po.html b/soundmap/languages/soundmap-es_ES.po.html
new file mode 100644
index 0000000..8f52eac
--- /dev/null
+++ b/soundmap/languages/soundmap-es_ES.po.html
@@ -0,0 +1,1204 @@
+
+
+
+ SoundMap - Spanish / SPAIN - Poedit Export
+
+
+
+ SoundMap : Spanish / SPAIN
+
+Project info
+Project name and version: SoundMap
+Language: Spanish
+Country: SPAIN
+Team: AudioLab
+Team's email address:
+Charset: UTF-8
+
+97 % translated, 90 strings (1 fuzzy, 0 bad tokens, 1 not translated)
+
+
+
+Original string
+
+
+Translation
+
+
+
+Notes
+
+
+
+
+Marks
+
+
+Marcadores
+
+
+
+
+
+
+
+
+
+Mark
+
+
+Marcador
+
+
+
+
+
+
+
+
+
+Add New Marker
+
+
+Añadir nuevo marcador
+
+
+
+
+
+
+
+
+
+Edit Marker
+
+
+Editar marcador
+
+
+
+
+
+
+
+
+
+New Marker
+
+
+Nuevo marcador
+
+
+
+
+
+
+
+
+
+All Markers
+
+
+Todos los marcadores
+
+
+
+
+
+
+
+
+
+View Marker
+
+
+Ver marcadores
+
+
+
+
+
+
+
+
+
+Search Markers
+
+
+Buscar marcadores
+
+
+
+
+
+
+
+
+
+No markers found
+
+
+No se han encontrado marcadores
+
+
+
+
+
+
+
+
+
+No markers found in Trash
+
+
+No se han encontrado marcadores en la papelera
+
+
+
+
+
+
+
+
+
+Place the Marker
+
+
+Ubica el marcador
+
+
+
+
+
+
+
+
+
+Add a sound file
+
+
+Añade una grabación
+
+
+
+
+
+
+
+
+
+Add info for the marker
+
+
+Añade información sobre el marcador
+
+
+
+
+
+
+
+
+
+Sound files attached.
+
+
+Grabaciones añadidas.
+
+
+
+
+
+
+
+
+
+Uploader Mail
+
+
+Uploader Mail
+
+
+
+
+
+
+
+
+
+Author
+
+
+Autor
+
+
+
+
+
+
+
+
+
+Filename
+
+
+Archivo
+
+
+
+
+
+
+
+
+
+Length
+
+
+Duración
+
+
+
+
+
+
+
+
+
+Latitud
+
+
+Latitud
+
+
+
+
+
+
+
+
+
+Longitud
+
+
+Longitud
+
+
+
+
+
+
+
+
+
+Select file
+
+
+Seleccionar grabación
+
+
+
+Fuzzy translation<BR>
+
+
+
+
+
+Error moving the file.
+
+
+Error moviendo el archivo.
+
+
+
+
+
+
+
+
+
+Sound Map Configuration
+
+
+Configuración del Mapa Sonoro
+
+
+
+
+
+
+
+
+
+Sound Map
+
+
+Mapa Sonoro
+
+
+
+
+
+
+
+
+
+You do not have sufficient permissions to access this page.
+
+
+No tiene suficientes permisos para acceder a esta página
+
+
+
+
+
+
+
+
+
+Map Configuration
+
+
+Configuración del mapa.
+
+
+
+
+
+
+
+
+
+Origin configuration
+
+
+Posición inicial.
+
+
+
+
+
+
+
+
+
+Choose the original configuration with the map.
+
+
+Elige la configuración inicial con el mapa.
+
+
+
+
+
+
+
+
+
+Latitude
+
+
+Latitud
+
+
+
+
+
+
+
+
+
+Longitude
+
+
+Longitud
+
+
+
+
+
+
+
+
+
+Zoom
+
+
+Zoom
+
+
+
+
+
+
+
+
+
+Map type
+
+
+Tipo de mapa
+
+
+
+
+
+
+
+
+
+Terrain
+
+
+Relieve
+
+
+
+
+
+
+
+
+
+Satellite
+
+
+Satelite
+
+
+
+
+
+
+
+
+
+Map
+
+
+Mapa
+
+
+
+
+
+
+
+
+
+Hybrid
+
+
+HÃbrido
+
+
+
+
+
+
+
+
+
+Show map page
+
+
+Mostrar página del mapa
+
+
+
+
+
+
+
+
+
+Select one direction for showing the map (ex: map). If you want to use is as your home, write [home].<br>You can also show the map on any page using the shortcode [soundmap]
+
+
+
+
+
+
+
+
+
+
+
+
+Sound Player Modules
+
+
+Módulos de reproductores de audio
+
+
+
+
+
+
+
+
+
+Version
+
+
+Versión
+
+
+
+
+
+
+
+
+
+By
+
+
+Por
+
+
+
+
+
+
+
+
+
+Visit plugin site
+
+
+Visitar página del plugin
+
+
+
+
+
+
+
+
+
+Plugin
+
+
+Plugin
+
+
+
+
+
+
+
+
+
+Description
+
+
+Descripción
+
+
+
+
+
+
+
+
+
+Add new recording
+
+
+Añadir nueva grabación
+
+
+
+
+
+
+
+
+
+Select audio file
+
+
+Seleccionar grabación
+
+
+
+
+
+
+
+
+
+Please, place the recording
+
+
+Ubica la grabación
+
+
+
+
+
+
+
+
+
+Please, select one file to upload.
+
+
+Por favor, seleccione una archivo para subir.
+
+
+
+
+
+
+
+
+
+The selected file is too big.
+
+
+El archivo seleccionado es demasiado grande.
+
+
+
+
+
+
+
+
+
+Locked: form can't be submited.
+
+
+Cerrado: la grabación no se puede enviar.
+
+
+
+
+
+
+
+
+
+Unlocked: form can be submited.
+
+
+Abierto: Puede enviar su grabación
+
+
+
+
+
+
+
+
+
+Name:
+
+
+Nombre:
+
+
+
+
+
+
+
+
+
+Length:
+
+
+Duración:
+
+
+
+
+
+
+
+
+
+Sound file
+
+
+Grabación
+
+
+
+
+
+
+
+
+
+Information
+
+
+Información
+
+
+
+
+
+
+
+
+
+Submit
+
+
+Enviar
+
+
+
+
+
+
+
+
+
+Sound file data:
+
+
+Datos de la grabación:
+
+
+
+
+
+
+
+
+
+Saving the recording
+
+
+Guardando la grabación
+
+
+
+
+
+
+
+
+
+Author:
+
+
+Autor:
+
+
+
+
+
+
+
+
+
+Date:
+
+
+Fecha:
+
+
+
+
+
+
+
+
+
+Description:
+
+
+Descripción:
+
+
+
+
+
+
+
+
+
+<h2>Contribute to Soinumapa.net</h2><p>Hello, just follow a few simple steps and within minutes Soinumapa.net will show your recording.</p>
+
+
+<h2>Colabora con Soinumapa.net</h2><p>Hola, sigue los pasos de este asistente y en unos minutos Soinumapa.net mostrará tu grabación.</p>
+
+
+
+
+
+
+
+
+
+</p>Unless stated otherwise, your file, like all the sounds that make Soinumapa.net, will be published under a semi-free license (for more information see About Us section).
+
+
+</p>A menos que se indique lo contrario, tu archivo, igual que el resto de sonidos que forman el Mapa Sonoro de Lublin, será publicado bajo una licencia semi-libre (para más información consulta la sección Acerca de).
+
+
+
+
+
+
+
+
+
+Please fill in as much information as possible to identify your recording, and locate it within the map as accurate as possible.</p>
+
+
+Por favor, rellena la mayor cantidad de campos posibles para identificar tu grabación, y localÃzala en el mapa con la mayor precisión posible.</p>
+
+
+
+
+
+
+
+
+
+<p>In any case, the editing team from Soinumapa.net reserves the right to correct or add certain information and / or choose to display or not some recordings, always following the objectives and working methods of the project.</p>
+
+
+<p>En todo casa, el equipo de edición de Soinumapa.net se reserva el derecho de corregir o añadir información y / o decidir si mostrar o no algunas grabaciones, siempre siguiendo los objetivos y métodos de trabajo del proyecto.</p>
+
+
+
+
+
+
+
+
+
+<p>Thanks for participating in Soinumapa.net!</p>
+
+
+<p>¡Gracias por participar en Soinumapa.net!</p>
+
+
+
+
+
+
+
+
+
+Step 1: Select audio file to upload
+
+
+Paso 1: Selecciona el archivo de audio
+
+
+
+
+
+
+
+
+
+<p>The sound file must be saved in mp3 format.</p><p>The maximum file size for uploading is 7 Mb, if you want to upload a bigger file, please contact to audiolab.arteleku@gmail.com</p>
+
+
+<p>El archivo de sonido debe estar guardado en formato mp3.</p><p>El tamaño máximo de subida de un archivo es de 7 Mb, is necesitas subir un archivo mayor, por favor, ponte en contacto con audiolab.arteleku@gmail.com</p>
+
+
+
+
+
+
+
+
+
+<h2>Last check</h2>
+
+
+<h2>Últimas comprobaciones</h2>
+
+
+
+
+
+
+
+
+
+<p>Now, check that position you selected is correct.</p>
+
+
+<p>Ahora, comprueba que la posición que marcaste es correcta.</p>
+
+
+
+
+
+
+
+
+
+</p>In order to help us on any issue concerning the recording, give us your contact mail. We will not publicate it and you will no receive any spam from us.</p>
+
+
+</p>Con el fin de ayudarnos en caso de tener cualquier problema relacionado con la grabación, te pedimos que nos des un mail de contacto. Esta dirección no será publicada y no recibirás ningún email no deseado por nuestra parte.</p>
+
+
+
+
+
+
+
+
+
+<p>Once you have filled the mail, slide the locker bar and submit the information.</p><h5>Thank you for your collaboration</h5>
+
+
+<p>Después de rellenar el mail, desliza la barra del candado para poder enviar los datos.</p><h5>Gracias por tú colaboración.</h5>
+
+
+
+
+
+
+
+
+
+Step 4: Check the position and upload recording
+
+
+Paso 4: Comprueba la ubicación y sube la grabación
+
+
+
+
+
+
+
+
+
+Email:
+
+
+Email:
+
+
+
+
+
+
+
+
+
+Add recording
+
+
+Añadir grabación
+
+
+
+
+
+
+
+
+
+<h2>Place the recording</h2>
+
+
+<h2>Posiciona la grabación</h2>
+
+
+
+
+
+
+
+
+
+<p>Try to find the position for the recording on the map. Once you have find it, click on the location for positioning the marker.</p>
+
+
+<p>Busca la posición donde realizaste la grabación en el mapa. Una vez localizada, haz click sobre la ubicación para posicionar el marcador.</p>
+
+
+
+
+
+
+
+
+
+Step 2: Place the recording on the map
+
+
+Paso 2: Posiciona la grabación en el mapa
+
+
+
+
+
+
+
+
+
+<h2>Information about the recording</h2>
+
+
+<h2>Información acerca de la grabación</h2>
+
+
+
+
+
+
+
+
+
+<p>Help us filling this form about the information of your recording.</p>
+
+
+<p>Ayúdanos rellenando estos campos con información de tu grabación.</p>
+
+
+
+
+
+
+
+
+
+<p>Please, fill as much fields as you can, on the different languages of the sound map. Don't worry if you don't know how to do it in any language, we will check the texts and translate them.</p>
+
+
+<p>Por favor, rellena todos los campos posibles en los distintos idiomas que forman el mapa sonoro. Si no conoces alguno de los idiomas, el equipo de edición del proyecto chequeará el texto y lo traducirá.</p>
+
+
+
+
+
+
+
+
+
+<p>Fill also the fields of the date you did the recording, the name of the author and also try to categorize the recording. You can select more than one category.</p>
+
+
+<p>IndÃcanos también la fecha cuando realizaste la grabación, el nombre del autor de la misma y las categorÃas. Puedes seleccionar más de una categorÃa.</p>
+
+
+
+
+
+
+
+
+
+Step 3: Information about the recording
+
+
+Paso 3: Información acerca de la grabación
+
+
+
+
+
+
+
+
+
+Title
+
+
+TÃtulo
+
+
+
+
+
+
+
+
+
+Date (dd/mm/yyyy)
+
+
+Fecha (dd/mm/yyyy)
+
+
+
+
+
+
+
+
+
+Category
+
+
+CategorÃa
+
+
+
+
+
+
+
+
+
+SoundMap
+
+
+Mapa Sonoro
+
+
+
+
+
+
+
+
+
+Date
+
+
+Fecha
+
+
+
+
+
+
+
+
+
+Tags
+
+
+Etiquetas
+
+
+
+
+
+
+
+
+
+Categories
+
+
+CategorÃas
+
+
+
+
+
+
+
+
+
+
diff --git a/soundmap/languages/soundmap-es_EU.mo b/soundmap/languages/soundmap-es_EU.mo
new file mode 100644
index 0000000..ec260d5
Binary files /dev/null and b/soundmap/languages/soundmap-es_EU.mo differ
diff --git a/soundmap/languages/soundmap-es_EU.po b/soundmap/languages/soundmap-es_EU.po
new file mode 100644
index 0000000..734458c
--- /dev/null
+++ b/soundmap/languages/soundmap-es_EU.po
@@ -0,0 +1,381 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: SoundMap\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-01-27 16:06+0100\n"
+"PO-Revision-Date: 2012-01-27 16:12+0100\n"
+"Last-Translator: \n"
+"Language-Team: AudioLab\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: SPAIN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-SearchPath-0: ..\n"
+
+#: ../soundmap.php:38
+msgid "Marks"
+msgstr "Markatzaileak"
+
+#: ../soundmap.php:39
+msgid "Mark"
+msgstr "Markatzailea"
+
+#: ../soundmap.php:41
+msgid "Add New Marker"
+msgstr "Markatzaile berria gehitu"
+
+#: ../soundmap.php:42
+msgid "Edit Marker"
+msgstr "Editatu markatzailea"
+
+#: ../soundmap.php:43
+msgid "New Marker"
+msgstr "Markatzaile berria"
+
+#: ../soundmap.php:44
+msgid "All Markers"
+msgstr "Markatzaile guztiak"
+
+#: ../soundmap.php:45
+msgid "View Marker"
+msgstr "Ikus markatzaileak"
+
+#: ../soundmap.php:46
+msgid "Search Markers"
+msgstr "Bilatu markatzaileak"
+
+#: ../soundmap.php:47
+msgid "No markers found"
+msgstr "Ez da markatzailerik topatu"
+
+#: ../soundmap.php:48
+msgid "No markers found in Trash"
+msgstr "Ez da markatzailerik topatu zakar ontzian"
+
+#: ../soundmap.php:171
+msgid "Place the Marker"
+msgstr "Kokatu markatzailea"
+
+#: ../soundmap.php:172
+msgid "Add a sound file"
+msgstr "Gehitu grabaketa bat"
+
+#: ../soundmap.php:173
+msgid "Add info for the marker"
+msgstr "Gehitu markatzaileari buruzko informazioa"
+
+#: ../soundmap.php:174
+msgid "Sound files attached."
+msgstr "Gehitutako grabaketak."
+
+#: ../soundmap.php:175
+msgid "Uploader Mail"
+msgstr "Igotzailearen maila"
+
+#: ../soundmap.php:192
+msgid "Author"
+msgstr "Egilea"
+
+#: ../soundmap.php:206
+msgid "Filename"
+msgstr "Artxiboaren izena"
+
+#: ../soundmap.php:206
+msgid "Length"
+msgstr "Iraupena"
+
+#: ../soundmap.php:236
+msgid "Latitud"
+msgstr "Latitudea"
+
+#: ../soundmap.php:238
+msgid "Longitud"
+msgstr "Longitudea"
+
+#: ../soundmap.php:294
+#, fuzzy
+msgid "Select file"
+msgstr "Aukeratu grabaketa"
+
+#: ../soundmap.php:471
+msgid "Error moving the file."
+msgstr "Akatsa artxiboa mugitzerakoan."
+
+#: ../soundmap.php:641
+#: ../soundmap.php:674
+msgid "Sound Map Configuration"
+msgstr "Soinu Maparen konfigurazioa"
+
+#: ../soundmap.php:641
+msgid "Sound Map"
+msgstr "Soinuen Mapa"
+
+#: ../soundmap.php:659
+msgid "You do not have sufficient permissions to access this page."
+msgstr "Ez duzu orrialde hau irakurtzeko baimenik"
+
+#: ../soundmap.php:677
+msgid "Map Configuration"
+msgstr "Maparen konfigurazioa"
+
+#: ../soundmap.php:680
+msgid "Origin configuration"
+msgstr "Jatorrizko konfigurazioa"
+
+#: ../soundmap.php:683
+msgid "Choose the original configuration with the map."
+msgstr "Aukeratu jatorrizko konfirgurazioa maparekin"
+
+#: ../soundmap.php:685
+msgid "Latitude"
+msgstr "Latitudea"
+
+#: ../soundmap.php:688
+msgid "Longitude"
+msgstr "Longitudea"
+
+#: ../soundmap.php:691
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../soundmap.php:697
+msgid "Map type"
+msgstr "Mapa mota"
+
+#: ../soundmap.php:701
+msgid "Terrain"
+msgstr "Erliebea"
+
+#: ../soundmap.php:702
+msgid "Satellite"
+msgstr "Satelitea"
+
+#: ../soundmap.php:703
+#: ../modules/module.soundmap.upload.php:125
+msgid "Map"
+msgstr "Mapa"
+
+#: ../soundmap.php:704
+msgid "Hybrid"
+msgstr "Hibridoa"
+
+#: ../soundmap.php:710
+msgid "Show map page"
+msgstr "Erakutsi maparen orria"
+
+#: ../soundmap.php:715
+msgid "Select one direction for showing the map (ex: map). If you want to use is as your home, write [home]. You can also show the map on any page using the shortcode [soundmap]"
+msgstr "Aukeratu mapan erakusteko helbide bat (ex: map). Hasierako orri bezala erabili nahi baduzu, idatzi [home]. Aldiberean, mapa beste edozein orritan erakutsi dezakezu [soundmap] shortcode-a erabiliz."
+
+#: ../soundmap.php:720
+msgid "Sound Player Modules"
+msgstr "Audio erreproduktoreen moduloak"
+
+#: ../soundmap.php:749
+msgid "Version"
+msgstr "Bertsioa"
+
+#: ../soundmap.php:749
+msgid "By"
+msgstr "-"
+
+#: ../soundmap.php:749
+msgid "Visit plugin site"
+msgstr "Pluginaren orrialdea ikusi"
+
+#: ../soundmap.php:759
+msgid "Plugin"
+msgstr "Plugin"
+
+#: ../soundmap.php:760
+msgid "Description"
+msgstr "Deskribapena"
+
+#: ../api/soundmap_tags.php:100
+msgid "Add new recording"
+msgstr "Gehitu grabaketa berria"
+
+#: ../modules/module.soundmap.upload.php:38
+msgid "Select audio file"
+msgstr "Aukeratu grabaketa"
+
+#: ../modules/module.soundmap.upload.php:39
+msgid "Please, place the recording"
+msgstr "Kokatu grabaketa"
+
+#: ../modules/module.soundmap.upload.php:40
+msgid "Please, select one file to upload."
+msgstr "Mesedez, aukera ezazu zintzilikatu nahi duzun artxiboa"
+
+#: ../modules/module.soundmap.upload.php:41
+msgid "The selected file is too big."
+msgstr "Aukeratutako artxiboa haundiegia da"
+
+#: ../modules/module.soundmap.upload.php:42
+msgid "Locked: form can't be submited."
+msgstr "Itxita: Grabaketa ezin da igo."
+
+#: ../modules/module.soundmap.upload.php:43
+msgid "Unlocked: form can be submited."
+msgstr "Irekita: Zure grabaketa bidali dezakezu"
+
+#: ../modules/module.soundmap.upload.php:44
+msgid "Name: "
+msgstr "Izena:"
+
+#: ../modules/module.soundmap.upload.php:45
+msgid "Length: "
+msgstr "Iraupena:"
+
+#: ../modules/module.soundmap.upload.php:124
+msgid "Sound file"
+msgstr "Grabaketa:"
+
+#: ../modules/module.soundmap.upload.php:126
+msgid "Information"
+msgstr "Informazioa:"
+
+#: ../modules/module.soundmap.upload.php:127
+msgid "Submit"
+msgstr "Bidali"
+
+#: ../modules/module.soundmap.upload.php:145
+msgid "Sound file data: "
+msgstr "Grabaketaren datuak:"
+
+#: ../modules/module.soundmap.upload.php:151
+msgid "Saving the recording"
+msgstr "Grabaketa gordetzen"
+
+#: ../modules/public_upload/save-post.php:110
+msgid "Author: "
+msgstr "Egilea:"
+
+#: ../modules/public_upload/save-post.php:112
+msgid "Date: "
+msgstr "Data:"
+
+#: ../modules/public_upload/save-post.php:113
+msgid "Description: "
+msgstr "Deskribapena:"
+
+#: ../modules/public_upload/slide_first.php:7
+msgid "Contribute to Soinumapa.net Hello, just follow a few simple steps and within minutes Soinumapa.net will show your recording.
"
+msgstr "Parte hartu Soinumapan Kaixo, jarrai itzazu laguntzaile honek aurkeztuko dizkizun pausu errazak eta minutu gutxi barru zure grabaketa Soinumapa.net webgunean argitaratuko da.
"
+
+#: ../modules/public_upload/slide_first.php:8
+msgid "Unless stated otherwise, your file, like all the sounds that make Soinumapa.net, will be published under a semi-free license (for more information see About Us section)."
+msgstr "Bestelako aipamenik ageri ez den bitartean, zure grabaketa, Soinumapa.net osatzen duten grabaketa guztiak bezala, lizentzia erdi-aske batenpean argitaratuko da (informazio gehiagorako ikusi PARTE HARTU atala menu nagusian)."
+
+#: ../modules/public_upload/slide_first.php:9
+msgid "Please fill in as much information as possible to identify your recording, and locate it within the map as accurate as possible."
+msgstr "Saia zaitez zure grabaketa hobekien identifikatuko duten informazio leihoak betetzen, eta mapan ahalik eta zehatzen kokatzen."
+
+#: ../modules/public_upload/slide_first.php:10
+msgid "In any case, the editing team from Soinumapa.net reserves the right to correct or add certain information and / or choose to display or not some recordings, always following the objectives and working methods of the project.
"
+msgstr "SOINUMAPAko editore taldeak grabaketen informazioak osatu eta zuzentzeko eskubidea gordetzen du, baita desegokitzat onar ditzaken zenbait grabaketa ez erakusteko ere, beti ere egitasmo honen helburu eta lan metodoek ezarritako hirizpideak jarraituz.
"
+
+#: ../modules/public_upload/slide_first.php:11
+msgid "Thanks for participating in Soinumapa.net!
"
+msgstr "Eskerrik asko SOINUMAPA.NETen parte hartzeagatik!
"
+
+#: ../modules/public_upload/slide_first.php:16
+msgid "Step 1: Select audio file to upload"
+msgstr "Lehen urratsa: Aukeratu zintzilikatu nahi duzun audio artxiboa"
+
+#: ../modules/public_upload/slide_first.php:24
+msgid "The sound file must be saved in mp3 format.
The maximum file size for uploading is 7 Mb, if you want to upload a bigger file, please contact to audiolab.arteleku@gmail.com
"
+msgstr "Zure soinu artxiboak mp3 euskarrian egon behar du.
Artxibo bakoitzaren tamaina haundiena 7 Mb da, artxibo luzeagoa igo nahi bazenuke, jarri zaitez gurekin harremanetan audiolab.arteleku@gmail.com helbidean.
"
+
+#: ../modules/public_upload/slide_fourth.php:10
+msgid "Last check "
+msgstr "Azken egiaztapena "
+
+#: ../modules/public_upload/slide_fourth.php:11
+msgid "Now, check that position you selected is correct.
"
+msgstr "Orain, egiazta ezazu aukeratu duzun kokapena zuzena dela.
"
+
+#: ../modules/public_upload/slide_fourth.php:12
+msgid "In order to help us on any issue concerning the recording, give us your contact mail. We will not publicate it and you will no receive any spam from us."
+msgstr "Zure grabaketari buruz gerta daiteken edozein arazoren inguruan gurekin kontaktuan jarri ahal izateko, idatzi zure email helbidea. Zure helbidea ez da inon eta inoiz publikoki argitaratuko eta ez duzu inolako spam mezurik jasoko gure aldetik."
+
+#: ../modules/public_upload/slide_fourth.php:13
+msgid "Once you have filled the mail, slide the locker bar and submit the information.
Thank you for your collaboration "
+msgstr "Behin email helbidea idatzi eta gero, mugi ezazu giltzarrapoaren barra informazio guztia webgunera bidali ahal izateko.
Eskerrik asko zure lankidetzarengatik. "
+
+#: ../modules/public_upload/slide_fourth.php:18
+msgid "Step 4: Check the position and upload recording"
+msgstr "Laugarren urratsa: Kokatu zure grabaketa eta igo grabaketa"
+
+#: ../modules/public_upload/slide_fourth.php:24
+msgid "Email: "
+msgstr "E-posta:"
+
+#: ../modules/public_upload/slide_fourth.php:28
+msgid "Add recording"
+msgstr "Gehitu grabaketa:"
+
+#: ../modules/public_upload/slide_second.php:10
+msgid "Place the recording "
+msgstr "Kokatu zure grabaketa "
+
+#: ../modules/public_upload/slide_second.php:11
+msgid "Try to find the position for the recording on the map. Once you have find it, click on the location for positioning the marker.
"
+msgstr "Bila ezazu grabaketaren kokalekua mapan. Topatzerakoan, egin klik dagokion lekuan markagailua kokatzeko.
"
+
+#: ../modules/public_upload/slide_second.php:16
+msgid "Step 2: Place the recording on the map"
+msgstr "Bigarren urratsa: Kokatu grabaketa mapan"
+
+#: ../modules/public_upload/slide_third.php:6
+msgid "Information about the recording "
+msgstr "Grabaketari buruzko informazioa "
+
+#: ../modules/public_upload/slide_third.php:7
+msgid "Help us filling this form about the information of your recording.
"
+msgstr "Lagundu gaitzazu honako laukiak zure grabaketari buruzko informazioarekin betez.
"
+
+#: ../modules/public_upload/slide_third.php:8
+msgid "Please, fill as much fields as you can, on the different languages of the sound map. Don't worry if you don't know how to do it in any language, we will check the texts and translate them.
"
+msgstr "Saia zaitez ahal eta atal gehienak osatzen, maparen hizkuntza ezberdinetan. Hizkuntzaren bat nola bete ez badakizu, ez larritu, testu guztiak gainbegiratuko eta itzuliko ditugu.
"
+
+#: ../modules/public_upload/slide_third.php:9
+msgid "Fill also the fields of the date you did the recording, the name of the author and also try to categorize the recording. You can select more than one category.
"
+msgstr " Bete itzazu grabaketaren dataren eta egilearen datuak eta sailkatu grabaketa atal baten barruan. Kategoria edo atal bat baino gehiago aukera dezakezu
"
+
+#: ../modules/public_upload/slide_third.php:14
+msgid "Step 3: Information about the recording"
+msgstr "Hirugarren urratsa: Grabaketari buruzko informazioa"
+
+#: ../modules/public_upload/slide_third.php:60
+msgid "Title"
+msgstr "Izenburua"
+
+#: ../modules/public_upload/slide_third.php:82
+msgid "Date (dd/mm/yyyy)"
+msgstr "Data (ee/hh/uu)"
+
+#: ../modules/public_upload/slide_third.php:84
+msgid "Category"
+msgstr "Atala"
+
+#: ../theme/theme_map.php:25
+msgid "SoundMap"
+msgstr "Soinuen Mapa"
+
+#: ../theme/theme_window.php:12
+msgid "Date"
+msgstr "Data"
+
+#: ../theme/theme_window.php:19
+msgid "Tags"
+msgstr "Etiketak"
+
+#: ../theme/theme_window.php:20
+msgid "Categories"
+msgstr "Atalak"
+
diff --git a/soundmap/languages/soundmap-es_EU.po.html b/soundmap/languages/soundmap-es_EU.po.html
new file mode 100644
index 0000000..a3370e8
--- /dev/null
+++ b/soundmap/languages/soundmap-es_EU.po.html
@@ -0,0 +1,1204 @@
+
+
+
+ SoundMap - Spanish / SPAIN - Poedit Export
+
+
+
+ SoundMap : Spanish / SPAIN
+
+Project info
+Project name and version: SoundMap
+Language: Spanish
+Country: SPAIN
+Team: AudioLab
+Team's email address:
+Charset: UTF-8
+
+98 % translated, 90 strings (1 fuzzy, 0 bad tokens, 0 not translated)
+
+
+
+Original string
+
+
+Translation
+
+
+
+Notes
+
+
+
+
+Marks
+
+
+Markatzaileak
+
+
+
+
+
+
+
+
+
+Mark
+
+
+Markatzailea
+
+
+
+
+
+
+
+
+
+Add New Marker
+
+
+Markatzaile berria gehitu
+
+
+
+
+
+
+
+
+
+Edit Marker
+
+
+Editatu markatzailea
+
+
+
+
+
+
+
+
+
+New Marker
+
+
+Markatzaile berria
+
+
+
+
+
+
+
+
+
+All Markers
+
+
+Markatzaile guztiak
+
+
+
+
+
+
+
+
+
+View Marker
+
+
+Ikus markatzaileak
+
+
+
+
+
+
+
+
+
+Search Markers
+
+
+Bilatu markatzaileak
+
+
+
+
+
+
+
+
+
+No markers found
+
+
+Ez da markatzailerik topatu
+
+
+
+
+
+
+
+
+
+No markers found in Trash
+
+
+Ez da markatzailerik topatu zakar ontzian
+
+
+
+
+
+
+
+
+
+Place the Marker
+
+
+Kokatu markatzailea
+
+
+
+
+
+
+
+
+
+Add a sound file
+
+
+Gehitu grabaketa bat
+
+
+
+
+
+
+
+
+
+Add info for the marker
+
+
+Gehitu markatzaileari buruzko informazioa
+
+
+
+
+
+
+
+
+
+Sound files attached.
+
+
+Gehitutako grabaketak.
+
+
+
+
+
+
+
+
+
+Uploader Mail
+
+
+Uploader Mail
+
+
+
+
+
+
+
+
+
+Author
+
+
+Egilea
+
+
+
+
+
+
+
+
+
+Filename
+
+
+Artxiboaren izena
+
+
+
+
+
+
+
+
+
+Length
+
+
+Iraupena
+
+
+
+
+
+
+
+
+
+Latitud
+
+
+Latitudea
+
+
+
+
+
+
+
+
+
+Longitud
+
+
+Longitudea
+
+
+
+
+
+
+
+
+
+Select file
+
+
+Aukeratu grabaketa
+
+
+
+Fuzzy translation<BR>
+
+
+
+
+
+Error moving the file.
+
+
+Akatsa artxiboa mugitzerakoan.
+
+
+
+
+
+
+
+
+
+Sound Map Configuration
+
+
+Soinu Maparen konfigurazioa
+
+
+
+
+
+
+
+
+
+Sound Map
+
+
+Soinuen Mapa
+
+
+
+
+
+
+
+
+
+You do not have sufficient permissions to access this page.
+
+
+Ez duzu orrialde hau irakurtzeko baimenik
+
+
+
+
+
+
+
+
+
+Map Configuration
+
+
+Maparen konfigurazioa.
+
+
+
+
+
+
+
+
+
+Origin configuration
+
+
+Jatorrizko konfigurazioa
+
+
+
+
+
+
+
+
+
+Choose the original configuration with the map.
+
+
+Aukeratu jatorrizko konfirgurazioa maparekin
+
+
+
+
+
+
+
+
+
+Latitude
+
+
+Latitudea
+
+
+
+
+
+
+
+
+
+Longitude
+
+
+Longitudea
+
+
+
+
+
+
+
+
+
+Zoom
+
+
+Zoom
+
+
+
+
+
+
+
+
+
+Map type
+
+
+Mapa mota
+
+
+
+
+
+
+
+
+
+Terrain
+
+
+Erliebea
+
+
+
+
+
+
+
+
+
+Satellite
+
+
+Stelitea
+
+
+
+
+
+
+
+
+
+Map
+
+
+Mapa
+
+
+
+
+
+
+
+
+
+Hybrid
+
+
+Hibridoa
+
+
+
+
+
+
+
+
+
+Show map page
+
+
+Erakutsi maparen orria
+
+
+
+
+
+
+
+
+
+Select one direction for showing the map (ex: map). If you want to use is as your home, write [home].<br>You can also show the map on any page using the shortcode [soundmap]
+
+
+Aukeratu mapan erakusteko helbide bat (ex: map). Hasierako orri bezala erabili nahi baduzu, idatzi [home]. <br>Aldiberean, mapa beste edozein orritan erakutsi dezakezu [soundmap] shortcode-a erabiliz.
+
+
+
+
+
+
+
+
+
+Sound Player Modules
+
+
+Audio erreproduktoreen moduloak
+
+
+
+
+
+
+
+
+
+Version
+
+
+Bertsioa
+
+
+
+
+
+
+
+
+
+By
+
+
+by
+
+
+
+
+
+
+
+
+
+Visit plugin site
+
+
+Pluginaren orrialdea ikusi
+
+
+
+
+
+
+
+
+
+Plugin
+
+
+Plugin
+
+
+
+
+
+
+
+
+
+Description
+
+
+Deskribapena
+
+
+
+
+
+
+
+
+
+Add new recording
+
+
+Gehitu grabaketa berria
+
+
+
+
+
+
+
+
+
+Select audio file
+
+
+Aukeratu grabaketa
+
+
+
+
+
+
+
+
+
+Please, place the recording
+
+
+Kokatu grabaketa
+
+
+
+
+
+
+
+
+
+Please, select one file to upload.
+
+
+Mesedez, aukera ezazu zintzilikatu nahi duzun artxiboa
+
+
+
+
+
+
+
+
+
+The selected file is too big.
+
+
+Aukeratutako artxiboa haundiegia da
+
+
+
+
+
+
+
+
+
+Locked: form can't be submited.
+
+
+Itxita: Grabaketa ezin da igo.
+
+
+
+
+
+
+
+
+
+Unlocked: form can be submited.
+
+
+Irekita: Zure grabaketa bidali dezakezu
+
+
+
+
+
+
+
+
+
+Name:
+
+
+Izena
+
+
+
+
+
+
+
+
+
+Length:
+
+
+Iraupena:
+
+
+
+
+
+
+
+
+
+Sound file
+
+
+Grabaketa:
+
+
+
+
+
+
+
+
+
+Information
+
+
+Informazioa:
+
+
+
+
+
+
+
+
+
+Submit
+
+
+Bidali
+
+
+
+
+
+
+
+
+
+Sound file data:
+
+
+Grabaketaren datuak:
+
+
+
+
+
+
+
+
+
+Saving the recording
+
+
+Grabaketa gordetzen
+
+
+
+
+
+
+
+
+
+Author:
+
+
+Egilea:
+
+
+
+
+
+
+
+
+
+Date:
+
+
+data:
+
+
+
+
+
+
+
+
+
+Description:
+
+
+Deskribapena:
+
+
+
+
+
+
+
+
+
+<h2>Contribute to Soinumapa.net</h2><p>Hello, just follow a few simple steps and within minutes Soinumapa.net will show your recording.</p>
+
+
+<h2>Parte hartu Soinumapan</h2><p>Kaixo, jarrai itzazu laguntzaile honek aurkeztuko dizkizun pausuak erraz eta minutu gutxi barru zure grabaketa Soinumapa.net webgunean argitaratuko da.</p>
+
+
+
+
+
+
+
+
+
+</p>Unless stated otherwise, your file, like all the sounds that make Soinumapa.net, will be published under a semi-free license (for more information see About Us section).
+
+
+</p>Bestelako aipamenik ageri ez den bitartean, zure grabaketa, Soinumapa.net osatzen duten grabaketa guztiak bezala, lizentzia erdi-aske batenpean argitaratuko da (informazio gehiagorako ikusi PARTE HARTU atala menu nagusian).
+
+
+
+
+
+
+
+
+
+Please fill in as much information as possible to identify your recording, and locate it within the map as accurate as possible.</p>
+
+
+Saia zaitez zure grabaketa hobekien identifikatuko duten informazio leihoak betetzen, eta mapan ahalik eta zehatzen kokatzen.</p>
+
+
+
+
+
+
+
+
+
+<p>In any case, the editing team from Soinumapa.net reserves the right to correct or add certain information and / or choose to display or not some recordings, always following the objectives and working methods of the project.</p>
+
+
+<p>SOINUMAPAko editore taldeak grabaketen informazioak osatu eta zuzentzeko eskubidea gordetzen du, baita desegokitzat onar daitezken zenbait grabaketa ez erakusteko ere, beti ere egitasmo honen helburuei eta lan metodoei jarraituz.</p>
+
+
+
+
+
+
+
+
+
+<p>Thanks for participating in Soinumapa.net!</p>
+
+
+<p>Eskerrik asko SOINUMAPA.NETen parte hartzeagatik!</p>
+
+
+
+
+
+
+
+
+
+Step 1: Select audio file to upload
+
+
+Lehen urratsa: Aukeratu zintzilikatu nahi duzun audio artxiboa
+
+
+
+
+
+
+
+
+
+<p>The sound file must be saved in mp3 format.</p><p>The maximum file size for uploading is 7 Mb, if you want to upload a bigger file, please contact to audiolab.arteleku@gmail.com</p>
+
+
+<p>Zure soinu artxiboak mp3 euskarrian egon behar du.</p><p>Tamaina haundiena 7 Mb da, artxibo luzeagoa igo nahi bazenuke, jarri zaitez gurekin harremanetan audiolab.arteleku@gmail.com helbidean.</p>
+
+
+
+
+
+
+
+
+
+<h2>Last check</h2>
+
+
+<h2>Azken egiaztapena</h2>
+
+
+
+
+
+
+
+
+
+<p>Now, check that position you selected is correct.</p>
+
+
+<p>Orain, egiazta ezazu aukeratu duzun kokapena zuzena dela.</p>
+
+
+
+
+
+
+
+
+
+</p>In order to help us on any issue concerning the recording, give us your contact mail. We will not publicate it and you will no receive any spam from us.</p>
+
+
+</p>Zure grabaketari buruz gerta daiteken edozein arazoren inguruan gurekin kontaktuan jarri ahal izateko, idatzi zure email helbidea. Zure helbidea ez da inon eta inoiz publikoki argitaratuko eta ez duzu inolako spam mezurik jasoko gure aldetik.</p>
+
+
+
+
+
+
+
+
+
+<p>Once you have filled the mail, slide the locker bar and submit the information.</p><h5>Thank you for your collaboration</h5>
+
+
+<p>Behin email helbidea idatzi eta gero, mugi ezazu giltzarrapoaren barra informazio guztia webgunera bidali ahal izateko.</p><h5>Eskerrik asko zure lankidetzarengatik.</h5>
+
+
+
+
+
+
+
+
+
+Step 4: Check the position and upload recording
+
+
+Laugarren urratsa: Kokatu zure grabaketa eta igo grabaketa
+
+
+
+
+
+
+
+
+
+Email:
+
+
+E-posta:
+
+
+
+
+
+
+
+
+
+Add recording
+
+
+Gehitu grabaketa:
+
+
+
+
+
+
+
+
+
+<h2>Place the recording</h2>
+
+
+<h2>Kokatu zure grabaketa</h2>
+
+
+
+
+
+
+
+
+
+<p>Try to find the position for the recording on the map. Once you have find it, click on the location for positioning the marker.</p>
+
+
+<p>Bila ezazu grabaketaren kokalekua mapan. Topatzerakoan, egin klik dagokion lekuan markagailua kokatzeko.</p>
+
+
+
+
+
+
+
+
+
+Step 2: Place the recording on the map
+
+
+Bigarren urratsa: Kokatu grabaketa mapan
+
+
+
+
+
+
+
+
+
+<h2>Information about the recording</h2>
+
+
+<h2>Grabaketari buruzko informazioa</h2>
+
+
+
+
+
+
+
+
+
+<p>Help us filling this form about the information of your recording.</p>
+
+
+<p>Lagundu gaitzazu zure grabaketari buruzko informazioa honako laukietan sartuz..</p>
+
+
+
+
+
+
+
+
+
+<p>Please, fill as much fields as you can, on the different languages of the sound map. Don't worry if you don't know how to do it in any language, we will check the texts and translate them.</p>
+
+
+<p>Saia zaitez ahal eta atal gehienak osatzen, maparen hizkuntza ezberdinetan. Ez larritu ez badakizu nola bete hizkuntzaren bat, guk testu guztiak gainbegiratuko eta itzuliko ditugu.</p>
+
+
+
+
+
+
+
+
+
+<p>Fill also the fields of the date you did the recording, the name of the author and also try to categorize the recording. You can select more than one category.</p>
+
+
+<p> Bete itzazu grabaketaren dataren eta egilearen datuak eta sailkatu grabaketa atal baten barruan. Kategoria edo atal bat baino gehiago aukera dezakezu</p>
+
+
+
+
+
+
+
+
+
+Step 3: Information about the recording
+
+
+Hirugarren pausua: Grabaketari buruzko informazioa
+
+
+
+
+
+
+
+
+
+Title
+
+
+Izenburua
+
+
+
+
+
+
+
+
+
+Date (dd/mm/yyyy)
+
+
+Data (ee/hh/uuuu)
+
+
+
+
+
+
+
+
+
+Category
+
+
+Atala
+
+
+
+
+
+
+
+
+
+SoundMap
+
+
+Soinuen Mapa
+
+
+
+
+
+
+
+
+
+Date
+
+
+Data
+
+
+
+
+
+
+
+
+
+Tags
+
+
+Etiquetak
+
+
+
+
+
+
+
+
+
+Categories
+
+
+Atalak
+
+
+
+
+
+
+
+
+
+
diff --git a/soundmap/modules/module.soundmap.upload.php b/soundmap/modules/module.soundmap.upload.php
new file mode 100644
index 0000000..72e04c3
--- /dev/null
+++ b/soundmap/modules/module.soundmap.upload.php
@@ -0,0 +1,157 @@
+
+
+
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soundmap/soundmap.php b/soundmap/soundmap.php
index 83822ea..8760dfa 100644
--- a/soundmap/soundmap.php
+++ b/soundmap/soundmap.php
@@ -14,7 +14,12 @@ Author URI: http://www.xavierbalderas.com
License: GPLv2 or later
*/
+
+
require_once (WP_PLUGIN_DIR . "/soundmap/api/getid3.php");
+require_once (WP_PLUGIN_DIR . "/soundmap/api/soundmap_tags.php");
+require_once (WP_PLUGIN_DIR . "/soundmap/api/soundmap.soinudroid.php");
+require_once (WP_PLUGIN_DIR . "/soundmap/api/soundmap.uploader.php");
require_once (WP_PLUGIN_DIR . "/soundmap/modules/module.base.player.php");
require_once (WP_PLUGIN_DIR . "/soundmap/modules/module.audioplayer.php");
require_once (WP_PLUGIN_DIR . "/soundmap/modules/module.haikuplayer.php");
@@ -22,6 +27,33 @@ require_once (WP_PLUGIN_DIR . "/soundmap/modules/module.wp-audio-gallery-player.
require_once (WP_PLUGIN_DIR . "/soundmap/modules/module.jplayer.php");
+
+add_action('init', 'soundmap_init');
+add_action('init', 'soundmap_add_feed');
+
+add_action('admin_enqueue_scripts', 'soundmap_admin_enqueue_scripts');
+add_action('wp_enqueue_scripts', 'soundmap_wp_enqueue_scripts');
+
+add_action('wp_print_footer_scripts', 'soundmap_wp_print_footer_scripts',1);
+
+add_action('admin_init', 'soundmap_register_admin_scripts');
+add_action('save_post', 'soundmap_save_post');
+add_action('admin_menu', "soundmap_admin_menu");
+
+add_action('wp_ajax_soundmap_file_uploaded', 'soundmap_ajax_file_uploaded_callback');
+add_action('wp_ajax_nopriv_soundmap_file_uploaded', 'soundmap_ajax_file_uploaded_callback');
+add_action('wp_ajax_soundmap_JSON_load_markers','soundmap_JSON_load_markers');
+add_action('wp_ajax_nopriv_soundmap_JSON_load_markers','soundmap_JSON_load_markers');
+add_action('wp_ajax_nopriv_soundmap_load_infowindow','soundmap_load_infowindow');
+add_action('wp_ajax_nopriv_soundmap_save_public_upload', 'soundmap_save_public_upload');
+add_action('wp_ajax_nopriv_soundmap_verify_captcha', 'soundmap_verify_captcha');
+
+add_filter( 'pre_get_posts', 'soundmap_pre_get_posts' );
+
+register_activation_hook(__FILE__, 'soundmap_rewrite_flush');
+
+
+
function soundmap_init() {
global $soundmap;
@@ -46,6 +78,7 @@ function soundmap_init() {
'parent_item_colon' => '',
'menu_name' => 'Markers'
);
+
$args = array(
'labels' => $labels,
'public' => true,
@@ -53,20 +86,22 @@ function soundmap_init() {
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
- 'rewrite' => true,
+ 'rewrite' => array( 'slug' => 'marker', 'with_front' => false ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'register_meta_box_cb' => 'soundmap_metaboxes_register_callback',
'supports' => array('title','editor','thumbnail')
- );
+ );
+
register_post_type('marker',$args);
register_taxonomy_for_object_type('category', 'marker');
register_taxonomy_for_object_type('post_tag', 'marker');
+ flush_rewrite_rules();
_soundmap_load_options();
- soundmap_check_map_page();
+
soundmap_create_player_instance();
if(!is_admin()){
@@ -74,6 +109,31 @@ function soundmap_init() {
}
}
+function soundmap_get_markers(){
+
+ $query = new WP_Query(array(
+ 'post_type' => 'marker',
+ 'post_status' => 'publish',
+ )
+ );
+
+ if ( !$query->have_posts() )
+ die();
+
+
+ foreach($query->posts as &$post){
+ $post_id = $post->ID;
+ $custom = get_post_custom($post_id);
+ $post->marker['lat'] = $custom['soundmap_marker_lat'];
+ $post->marker['lng'] = $custom['soundmap_marker_lng'];
+ $post->marker['author'] = $custom['soundmap_marker_author'];
+ $post->marker['date'] = $custom['soundmap_marker_date'];
+ $post->marker['attachments'] = $custom['soundmap_attachments_id'];
+ }
+
+ return $query->posts;
+
+}
function soundmap_create_player_instance(){
@@ -110,40 +170,131 @@ function soundmap_create_player_instance(){
}
-function soundmap_check_map_page(){
- global $soundmap;
- $uri = get_uri();
- $page = $soundmap['map_Page'];
- if ($page == "[home]"){
- // for consistency, check to see if trailing slash exists in URI request
- if (is_home())
- $soundmap['on_page'] = TRUE;
+
+
+
+
+
+function soundmap_rewrite_flush() {
+ soundmap_init();
+ flush_rewrite_rules();
+}
+
+
+function soundmap_JSON_load_markers () {
+
+ if (!isset($_POST['markers']))
+ return;
+
+ if ($_POST['markers']=='all'){
+ $query = new WP_Query(array('post_type' => 'marker', 'post_status' => 'publish'));
}else{
- if (substr($page, -1)!="/") {
- $page = $page."/";
- }
- if (end($uri) == $page){
- $soundmap['on_page'] = TRUE;
- }
+ if (!is_array($_POST["markers"])){
+ $markers_list = json_decode($_POST['markers']);
+ }else{$markers_list = $_POST['markers'];}
+
+ $query = new WP_Query(array('post_type' => 'marker', 'post_status' => 'publish', 'post__in' => $markers_list));
}
-
-}
-
-function soundmap_register_scripts(){
- //Register google maps.
- wp_register_script('google-maps','http://maps.google.com/maps/api/js?libraries=geometry&sensor=true');
- wp_register_script('jquery-ui','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js');
- wp_register_script('jquery-google-maps', WP_PLUGIN_URL . '/soundmap/js/jquery.ui.map.js', array('jquery', 'jquery-ui', 'google-maps'));
+
+ $markers = array();
+
+ if ( !$query->have_posts() )
+ die();
+ $posts = $query->posts;
+ foreach($posts as $post){
+ $post_id = $post->ID;
+ $m_lat = get_post_meta($post_id,'soundmap_marker_lat', TRUE);
+ $m_lng = get_post_meta($post_id,'soundmap_marker_lng', TRUE);
+ $title = get_the_title ($post_id);
+ $mark = array(
+ 'lat' => $m_lat,
+ 'lng' => $m_lng,
+ 'id' => $post_id,
+ 'title' => $title
+ );
+ $markers[] = $mark;
+ }
+ echo json_encode($markers);
+ die();
+
+
}
+function soundmap_get_template_include($templ){
+ if (!$templ)
+ return FALSE;
+ $theme_file = TEMPLATEPATH . DIRECTORY_SEPARATOR . $templ . '.php';
+ $plugin_file = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'soundmap' . DIRECTORY_SEPARATOR . 'theme' . DIRECTORY_SEPARATOR . 'theme_' . $templ . '.php';
+
+ if (file_exists($theme_file))
+ return $theme_file;
+
+ if(file_exists($plugin_file))
+ return $plugin_file;
+
+ return FALSE;
+
+}
+
+function soundmap_pre_get_posts( $query ) {
+ if ( (is_category() || is_tag()) && false == $query->query_vars['suppress_filters'] )
+ $query->set( 'post_type', array( 'marker') );
+ return $query;
+}
+
+
+function soundmap_load_infowindow(){
+ $marker_id = $_REQUEST['marker'];
+ $marker = get_post( $marker_id);
+ global $post;
+ $post = $marker;
+ setup_postdata($marker);
+ if(!$marker)
+ die();
+
+ $info['m_author'] = get_post_meta($marker_id, 'soundmap_marker_author', TRUE);
+ $info['m_date'] = get_post_meta($marker_id, 'soundmap_marker_date', TRUE);
+ $files = get_post_meta($marker_id, 'soundmap_attachments_id', FALSE);
+ $info['m_files'] = array();
+ foreach ($files as $key => $value){
+ $file = array();
+ $att = get_post($value);
+ $file['id'] = $value;
+ $file['fileURI'] = wp_get_attachment_url($value);
+ $file['filePath'] = get_attached_file($value);
+ $file['info'] = soundmap_get_id3info($file['filePath']);
+ $file['name'] = $att->post_name;
+ $info['m_files'][] = $file;
+ }
+ if ($theme=soundmap_get_template_include('window'))
+ include ($theme);
+ die();
+}
+
+
+/*
+ *
+ *
+ * METABOXES FUNCTIONS
+ *
+ *
+ */
function soundmap_metaboxes_register_callback(){
add_meta_box('soundmap-map', __("Place the Marker", 'soundmap'), 'soundmap_map_meta_box', 'marker', 'normal', 'high');
add_meta_box('soundmap-sound-file', __("Add a sound file", 'soundmap'), 'soundmap_upload_file_meta_box', 'marker', 'normal', 'high');
add_meta_box('soundmap-sound-info', __("Add info for the marker", 'soundmap'), 'soundmap_info_meta_box', 'marker', 'side', 'high');
add_meta_box('soundmap-sound-attachments', __("Sound files attached.", 'soundmap'), 'soundmap_attachments_meta_box', 'marker', 'side', 'high');
+ add_meta_box('soundmap-email', __("Uploader Mail", 'soundmap'), 'soundmap_email_meta_box', 'marker', 'side', 'low');
+}
+
+function soundmap_email_meta_box(){
+ global $post;
+ $mail = get_post_meta($post->ID, 'EMAIL', TRUE);
+ echo "" . $mail . "
";
+
}
function soundmap_info_meta_box(){
@@ -206,177 +357,38 @@ function soundmap_map_meta_box(){
function soundmap_upload_file_meta_box(){
- echo ' ';
-}
+ $html = <<
+
+
+
+
+EOHTML;
+ echo $html;
-function soundmap_rewrite_flush() {
- soundmap_init();
- flush_rewrite_rules();
-}
-
-function soundmap_register_admin_scripts() {
- wp_register_script('soundmap-admin', WP_PLUGIN_URL . '/soundmap/js/soundmap-admin.js', array('jquery-google-maps', 'jquery-plupload', 'jquery-datepicker'));
- wp_register_style("soundmap-admin", WP_PLUGIN_URL . '/soundmap/css/soundmap-admin.css', array('plupload-style', 'jquery-datepicker'));
-
- //Register PLUPLOAD
- wp_register_style('plupload-style',WP_PLUGIN_URL . '/soundmap/css/jquery.plupload.queue.css');
- wp_register_script('plupload', WP_PLUGIN_URL . '/soundmap/js/plupload/plupload.full.js');
- wp_register_script('jquery-plupload', WP_PLUGIN_URL . '/soundmap/js/plupload/jquery.plupload.queue.js', array('plupload'));
- //Register DATEPICKER
- wp_register_script('jquery-datepicker', WP_PLUGIN_URL . '/soundmap/js/jquery.datepicker.js', array('jquery'));
- wp_register_style('jquery-datepicker', WP_PLUGIN_URL . '/soundmap/css/jquery.datepicker.css');
-}
-
-function soundmap_register_wp_scripts() {
- wp_register_script('soundmap', WP_PLUGIN_URL . '/soundmap/js/soundmap-wp.js', array('jquery-google-maps'));
-}
-
-function soundmap_admin_enqueue_scripts() {
- wp_enqueue_script('soundmap-admin');
- wp_enqueue_style('soundmap-admin');
-
- global $soundmap;
-
- $params = array();
- $params['plugin_url'] = WP_PLUGIN_URL . '/soundmap/';
- $params += $soundmap['origin'];
- $params ['mapType'] = $soundmap['mapType'];
-
- wp_localize_script('soundmap-admin','WP_Params',$params);
-}
-
-function soundmap_wp_enqueue_scripts() {
-
- global $soundmap;
-
- $params = array();
- $params['ajaxurl'] = admin_url( 'admin-ajax.php' );
- $params += $soundmap['origin'];
- $params ['mapType'] = $soundmap['mapType'];
-
- wp_enqueue_script('soundmap');
- wp_localize_script( 'soundmap', 'WP_Params', $params );
-}
-
-function _soundmap_save_options(){
-
- $_soundmap = array();
- global $soundmap;
- //Load defaults;
-
- $_soundmap ['origin']['lat'] = $_POST['soundmap_op_origin_lat'];
- $_soundmap ['origin']['lng'] = $_POST['soundmap_op_origin_lng'];
- $_soundmap ['origin']['zoom'] = $_POST['soundmap_op_origin_zoom'];
- $_soundmap ['mapType'] = $_POST['soundmap_op_origin_type'];
- $_soundmap ['map_Page'] = $_POST['soundmap_op_page'];
- if(isset($_POST['soundmap_op_plugin']))
- $_soundmap ['player_plugin'] = $_POST['soundmap_op_plugin'];
-
- update_option('soundmap',maybe_serialize($_soundmap));
- $soundmap = wp_parse_args($_soundmap, $soundmap);
}
-function _soundmap_load_options(){
- $_soundmap = array();
- global $soundmap;
- //Load defaults;
- $defaults = array();
- $defaults['on_page'] = FALSE;
- $defaults['origin']['lat'] = 0;
- $defaults['origin']['lng'] = 0;
- $defaults['origin']['zoom'] = 10;
- $defaults['mapType'] = 'ROADMAP';
- $defaults['map_Page'] = 'map';
- $defaults['player_plugin'] = "";
-
- $_soundmap = maybe_unserialize(get_option('soundmap'));
-
- $_soundmap = wp_parse_args($_soundmap, $defaults);
-
- $soundmap = $_soundmap;
-}
-function soundmap_save_post($post_id) {
- // verify if this is an auto save routine.
- // If it is our form has not been submitted, so we dont want to do anything
- if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
- return;
-
- // verify this came from the our screen and with proper authorization,
- // because save_post can be triggered at other times
- if (isset($_POST['soundmap_map_noncename'])){
- if ( !wp_verify_nonce( $_POST['soundmap_map_noncename'], plugin_basename( __FILE__ ) ) )
- return;
- }else{
- return;
- }
-
- // Check permissions
- if ( 'marker' == $_POST['post_type'] )
- {
- if ( !current_user_can( 'edit_post', $post_id ) )
- return;
- }
-
- $soundmark_lat = $_POST['soundmap_marker_lat'];
- $soundmark_lng = $_POST['soundmap_marker_lng'];
- $soundmark_author = $_POST['soundmap_marker_author'];
- $soundmark_date = $_POST['soundmap_marker_date'];
-
- add_post_meta($post_id, 'soundmap_marker_lat', $soundmark_lat, TRUE);
- add_post_meta($post_id, 'soundmap_marker_lng', $soundmark_lng, TRUE);
- add_post_meta($post_id, 'soundmap_marker_author', $soundmark_author, TRUE);
- add_post_meta($post_id, 'soundmap_marker_date', $soundmark_date, TRUE);
-
-
- //before searching on all the $_POST array, let's take a look if there is any upload first!
- if(isset($_POST['soundmap_attachments_id'])){
- $files = $_POST['soundmap_attachments_id'];
- delete_post_meta($post_id, 'soundmap_attachments_id');
- foreach ($files as $key => $value){
- add_post_meta($post_id, 'soundmap_attachments_id', $value);
- soundmap_attach_file($value, $post_id);
- };
- };
-}
-
-function soundmap_JSON_load_markers () {
- $query = new WP_Query(array('post_type' => 'marker'));
- $markers = array();
-
- if ( !$query->have_posts() )
- die();
- $posts = $query->posts;
- foreach($posts as $post){
- $post_id = $post->ID;
- $m_lat = get_post_meta($post_id,'soundmap_marker_lat', TRUE);
- $m_lng = get_post_meta($post_id,'soundmap_marker_lng', TRUE);
- $title = get_the_title ($post_id);
- $mark = array(
- 'lat' => $m_lat,
- 'lng' => $m_lng,
- 'id' => $post_id,
- 'title' => $title
- );
- $markers[] = $mark;
- }
- echo json_encode($markers);
- die();
-
-}
+/*
+ *
+ *
+ * MARKERS & FILES SAVE/MANIPULATION FUNCTIONS
+ *
+ *
+ */
function soundmap_ajax_file_uploaded_callback() {
-
- if (!isset($_REQUEST['file_name']))
+
+ if (!isset($_FILES['Filedata']))
die();
$rtn = array();
$rtn['error'] = "";
- $file_data = $_REQUEST['file_name'];
+ $file_data = $_FILES['Filedata'];
- if ($file_data['status'] != 5)
+ if ($file_data['error'] != 0)
die();
$fileName = sanitize_file_name($file_data['name']);
@@ -403,11 +415,11 @@ function soundmap_ajax_file_uploaded_callback() {
$fileName = $fileName_a . '_' . $count . $fileName_b;
}
- $tempDir = ini_get("upload_tmp_dir");
+ $tempDir = $file_data['tmp_name'];
//move it.
$fileDir = $targetDir . DIRECTORY_SEPARATOR . $fileName;
$fileURL = $targetURL . DIRECTORY_SEPARATOR . $fileName;
- if(!rename($tempDir . DIRECTORY_SEPARATOR . $file_data['target_name'], $fileDir)){
+ if(!rename($tempDir, $fileDir)){
$rtn['error'] = __('Error moving the file.','soundmap');
echo json_encode($rtn);
die();
@@ -458,77 +470,144 @@ function soundmap_attach_file($att, $post_id){
return $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $att )", $post_id ) );
}
-function soundmap_template_redirect(){
- global $soundmap;
- $page = $soundmap['map_Page'];
- if ($page == '[home]'){
-
+
+function soundmap_save_post($post_id) {
+ // verify if this is an auto save routine.
+ // If it is our form has not been submitted, so we dont want to do anything
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
+ return;
+
+ // verify this came from the our screen and with proper authorization,
+ // because save_post can be triggered at other times
+ if (isset($_POST['soundmap_map_noncename'])){
+ if ( !wp_verify_nonce( $_POST['soundmap_map_noncename'], plugin_basename( __FILE__ ) ) )
+ return;
}else{
- if ($soundmap['on_page']){
- if ($theme=soundmap_get_template_include($page))
- include ($theme);
- exit();
- }
+ return;
+ }
+
+ // Check permissions
+ if ( 'marker' == $_POST['post_type'] )
+ {
+ if ( !current_user_can( 'edit_post', $post_id ) )
+ return;
+ }
+
+ $soundmark_lat = $_POST['soundmap_marker_lat'];
+ $soundmark_lng = $_POST['soundmap_marker_lng'];
+ $soundmark_author = $_POST['soundmap_marker_author'];
+ $soundmark_date = $_POST['soundmap_marker_date'];
+
+ update_post_meta($post_id, 'soundmap_marker_lat', $soundmark_lat);
+ update_post_meta($post_id, 'soundmap_marker_lng', $soundmark_lng);
+ update_post_meta($post_id, 'soundmap_marker_author', $soundmark_author);
+ update_post_meta($post_id, 'soundmap_marker_date', $soundmark_date);
+
+
+ //before searching on all the $_POST array, let's take a look if there is any upload first!
+ if(isset($_POST['soundmap_attachments_id'])){
+ $files = $_POST['soundmap_attachments_id'];
+ delete_post_meta($post_id, 'soundmap_attachments_id');
+ foreach ($files as $key => $value){
+ add_post_meta($post_id, 'soundmap_attachments_id', $value);
+ soundmap_attach_file($value, $post_id);
+ };
+ };
+}
+
+/*
+ *
+ *
+ * JAVASCRIPT MANIPULATION FUNCTIONS
+ *
+ *
+ */
+
+
+function soundmap_register_scripts(){
+ //Register google maps.
+ wp_register_script('google-maps','http://maps.google.com/maps/api/js?libraries=geometry&sensor=true');
+ wp_register_script('jquery-ui','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js');
+ wp_register_script('jquery-google-maps', WP_PLUGIN_URL . '/soundmap/js/jquery.ui.map.min.js', array('jquery', 'jquery-ui', 'google-maps'));
+}
+
+function soundmap_register_admin_scripts() {
+ wp_register_script('soundmap-admin', WP_PLUGIN_URL . '/soundmap/js/soundmap-admin.js', array('jquery-google-maps', 'swfupload', 'swfupload-queue', 'jquery-datepicker'));
+ wp_register_style("soundmap-admin", WP_PLUGIN_URL . '/soundmap/css/soundmap-admin.css', array('plupload-style', 'jquery-datepicker'));
+
+ //Register PLUPLOAD
+ wp_register_style('plupload-style',WP_PLUGIN_URL . '/soundmap/css/jquery.plupload.queue.css');
+ wp_register_script('plupload', WP_PLUGIN_URL . '/soundmap/js/plupload/plupload.full.js');
+ wp_register_script('jquery-plupload', WP_PLUGIN_URL . '/soundmap/js/plupload/jquery.plupload.queue.js', array('plupload'));
+
+ //Register YUI Uploader
+ wp_register_script('yui-uploader', 'http://yui.yahooapis.com/3.4.1/build/yui/yui-min.js');
+
+ //Register DATEPICKER
+ wp_register_script('jquery-datepicker', WP_PLUGIN_URL . '/soundmap/js/jquery.datepicker.js', array('jquery'));
+ wp_register_style('jquery-datepicker', WP_PLUGIN_URL . '/soundmap/css/jquery.datepicker.css');
+}
+
+function soundmap_register_wp_scripts() {
+ wp_register_script('soundmap', WP_PLUGIN_URL . '/soundmap/js/soundmap-wp.js', array('jquery-google-maps') , "1.0", true);
+}
+
+function soundmap_admin_enqueue_scripts() {
+ wp_enqueue_script('soundmap-admin');
+ wp_enqueue_style('soundmap-admin');
+
+ global $soundmap;
+
+ $params = array();
+ $params['plugin_url'] = WP_PLUGIN_URL . '/soundmap/';
+ $params += $soundmap['origin'];
+ $params ['mapType'] = $soundmap['mapType'];
+ $params['swfupload_flash'] = includes_url('js/swfupload/swfupload.swf');
+ $params['swfupload_picture'] = includes_url( 'images/upload.png?ver=20100531' );
+ $params['selectfile'] = __('Select file');
+
+ wp_localize_script('soundmap-admin','WP_Params',$params);
+}
+
+function soundmap_wp_enqueue_scripts() {
+
+ wp_enqueue_script('soundmap');
+ // add_thickbox();
+
+}
+
+
+
+function soundmap_wp_print_footer_scripts(){
+ global $soundmap;
+
+ $params = array();
+ $params['ajaxurl'] = admin_url( 'admin-ajax.php' );
+ $params += $soundmap['origin'];
+ $params ['mapType'] = $soundmap['mapType'];
+ if (isset($soundmap['markers'])){
+ $params ['markers'] = json_encode($soundmap['markers']);
}
+ $params ['pluginURL'] = WP_PLUGIN_URL . "/soundmap/";
+
+ wp_localize_script( 'soundmap', 'WP_Params', $params);
}
-function soundmap_get_template_include($templ){
- if (!$templ)
- return FALSE;
- $theme_file = TEMPLATEPATH . DIRECTORY_SEPARATOR . $templ . '.php';
- $plugin_file = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'soundmap' . DIRECTORY_SEPARATOR . 'theme' . DIRECTORY_SEPARATOR . 'theme_' . $templ . '.php';
-
- if (file_exists($theme_file))
- return $theme_file;
-
- if(file_exists($plugin_file))
- return $plugin_file;
-
- return FALSE;
-}
-
-function soundmap_pre_get_posts( $query ) {
- global $soundmap;
- if ($soundmap['on_page'])
- $query->parse_query( array('post_type'=>'marker') );
-
- return $query;
-}
-
-function soundmap_load_infowindow(){
- $marker_id = $_REQUEST['marker'];
- $marker = get_post( $marker_id);
- global $post;
- $post = $marker;
- setup_postdata($marker);
- if(!$marker)
- die();
-
-
- $info['m_author'] = get_post_meta($marker_id, 'soundmap_marker_author', TRUE);
- $info['m_date'] = get_post_meta($marker_id, 'soundmap_marker_date', TRUE);
- $files = get_post_meta($marker_id, 'soundmap_attachments_id', FALSE);
- foreach ($files as $key => $value){
- $file = array();
- $att = get_post($value);
- $file['id'] = $value;
- $file['fileURI'] = wp_get_attachment_url($value);
- $file['filePath'] = get_attached_file($value);
- $file['info'] = soundmap_get_id3info($file['filePath']);
- $file['name'] = $att->post_name;
- $info['m_files'][] = $file;
- }
- if ($theme=soundmap_get_template_include('window'))
- include ($theme);
- die();
-}
+/*
+ *
+ *
+ * CONFIG PAGE FUNCTIONS
+ *
+ *
+ */
function soundmap_admin_menu(){
add_options_page(__('Sound Map Configuration','soundmap'), __('Sound Map','soundmap'), 'manage_options', 'soundmap-options-menu','soundmap_menu_page_callback');
}
+
function soundmap_menu_page_callback(){
if (!current_user_can('manage_options')) {
@@ -582,16 +661,6 @@ function soundmap_menu_page_callback(){
-
-
-
-
-
-
- You can also show the map on any page using the shortcode [soundmap]','soundmap') ?>
-
-
-
@@ -605,6 +674,90 @@ function soundmap_menu_page_callback(){
'index.php?feed=' . $wp_rewrite->preg_index(1),
+ '(.+).xml' => 'index.php?feed='. $wp_rewrite->preg_index(1)
+ );
+ $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
+}
+
+
+function soundmap_rewrite_rules( $wp_rewrite ) {
+ $new_rules = array(
+ 'feed/(.+)' => 'index.php?feed='.$wp_rewrite->preg_index(1)
+ );
+ $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
+}
+
+function soundmap_add_feed( ) {
+ global $wp_rewrite;
+ add_feed('podcast', 'soundmap_customfeed');
+ add_action('generate_rewrite_rules', 'soundmap_rewrite_rules');
+ $wp_rewrite->flush_rules();
+}
+
+
+/*
+ *
+ *
+ * INTERNAL FUNCTIONS
+ *
+ *
+ */
+
+
+function _soundmap_mountPostContent($info){
+
+ $t = "";
+
+ if (function_exists("qtrans_init")){
+ //we are using multilanguage;
+ global $q_config;
+ foreach ($q_config['enabled_languages'] as $key=>$value){
+ $sel_Lang = $value;
+ $lang_Name = $q_config['language_name'][$sel_Lang];
+ $texts[$sel_Lang] = $info["descripcion_" . $sel_Lang];
+ }
+ $t = qtrans_join($texts);
+
+ }
+ return $t;
+}
+
+function _soundmap_mountPostTitle($info){
+
+ $t = "";
+
+ if (function_exists("qtrans_init")){
+ //we are using multilanguage;
+ global $q_config;
+ foreach ($q_config['enabled_languages'] as $key=>$value){
+ $sel_Lang = $value;
+ $lang_Name = $q_config['language_name'][$sel_Lang];
+ $texts[$sel_Lang] = $info["title_" . $sel_Lang];
+ }
+ $t = qtrans_join($texts);
+
+ }
+ return $t;
+}
+
function _soundmap_list_installer_audio_players(){
include_once(ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'plugin.php');
@@ -645,46 +798,53 @@ function _soundmap_list_installer_audio_players(){
print_audio_content($files, $id);
- echo $insert_content;
-
+ $list = array();
+ foreach ($posts as $post){
+ array_push($list,$post->ID);
+ }
+ return $list;
}
+
+
+function _soundmap_load_options(){
+ $_soundmap = array();
+ global $soundmap;
+ //Load defaults;
+ $defaults = array();
+ $defaults['on_page'] = FALSE;
+ $defaults['origin']['lat'] = 0;
+ $defaults['origin']['lng'] = 0;
+ $defaults['origin']['zoom'] = 10;
+ $defaults['mapType'] = 'ROADMAP';
+
+ $defaults['player_plugin'] = "";
+
+ $_soundmap = maybe_unserialize(get_option('soundmap'));
+
+ $_soundmap = wp_parse_args($_soundmap, $defaults);
+
+ $soundmap = $_soundmap;
+ load_plugin_textdomain('soundmap', "wp-content/plugins/soundmap/languages", dirname( plugin_basename( __FILE__ ) ) . "/languages");
+}
+
+function _soundmap_save_options(){
+
+ $_soundmap = array();
+ global $soundmap;
+ //Load defaults;
+
+ $_soundmap ['origin']['lat'] = $_POST['soundmap_op_origin_lat'];
+ $_soundmap ['origin']['lng'] = $_POST['soundmap_op_origin_lng'];
+ $_soundmap ['origin']['zoom'] = $_POST['soundmap_op_origin_zoom'];
+ $_soundmap ['mapType'] = $_POST['soundmap_op_origin_type'];
+
+ if(isset($_POST['soundmap_op_plugin']))
+ $_soundmap ['player_plugin'] = $_POST['soundmap_op_plugin'];
+
+ update_option('soundmap',maybe_serialize($_soundmap));
+ $soundmap = wp_parse_args($_soundmap, $soundmap);
+}
\ No newline at end of file
diff --git a/soundmap/soundmap_es_ES.mo b/soundmap/soundmap_es_ES.mo
deleted file mode 100644
index 21209a0..0000000
Binary files a/soundmap/soundmap_es_ES.mo and /dev/null differ
diff --git a/soundmap/soundmap_es_ES.po b/soundmap/soundmap_es_ES.po
deleted file mode 100644
index e1f7557..0000000
--- a/soundmap/soundmap_es_ES.po
+++ /dev/null
@@ -1,206 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: soundmap\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-22 16:40+0100\n"
-"PO-Revision-Date: 2011-08-22 16:40+0100\n"
-"Last-Translator: \n"
-"Language-Team: audiolab elkartea \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e;_x\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: SPAIN\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: soundmap.php:35
-msgid "Marks"
-msgstr ""
-
-#: soundmap.php:36
-msgid "Mark"
-msgstr ""
-
-#: soundmap.php:37
-msgid "Add New"
-msgstr ""
-
-#: soundmap.php:38
-msgid "Add New Marker"
-msgstr ""
-
-#: soundmap.php:39
-msgid "Edit Marker"
-msgstr ""
-
-#: soundmap.php:40
-msgid "New Marker"
-msgstr ""
-
-#: soundmap.php:41
-msgid "All Markers"
-msgstr ""
-
-#: soundmap.php:42
-msgid "View Marker"
-msgstr ""
-
-#: soundmap.php:43
-msgid "Search Markers"
-msgstr ""
-
-#: soundmap.php:44
-msgid "No markers found"
-msgstr ""
-
-#: soundmap.php:45
-msgid "No markers found in Trash"
-msgstr ""
-
-#: soundmap.php:143
-msgid "Place the Marker"
-msgstr ""
-
-#: soundmap.php:144
-msgid "Add a sound file"
-msgstr ""
-
-#: soundmap.php:145
-msgid "Add info for the marker"
-msgstr ""
-
-#: soundmap.php:146
-msgid "Sound files attached."
-msgstr ""
-
-#: soundmap.php:156
-msgid "Author"
-msgstr ""
-
-#: soundmap.php:170
-msgid "Filename"
-msgstr ""
-
-#: soundmap.php:170
-msgid "Length"
-msgstr ""
-
-#: soundmap.php:200
-msgid "Latitud"
-msgstr ""
-
-#: soundmap.php:202
-msgid "Longitud"
-msgstr ""
-
-#: soundmap.php:411
-msgid "Error moving the file."
-msgstr ""
-
-#: soundmap.php:529
-#: soundmap.php:550
-msgid "Sound Map Configuration"
-msgstr ""
-
-#: soundmap.php:529
-msgid "Sound Map"
-msgstr ""
-
-#: soundmap.php:535
-msgid "You do not have sufficient permissions to access this page."
-msgstr ""
-
-#: soundmap.php:553
-msgid "Map Configuration"
-msgstr ""
-
-#: soundmap.php:556
-msgid "Origin configuration"
-msgstr ""
-
-#: soundmap.php:559
-msgid "Choose the original configuration with the map."
-msgstr ""
-
-#: soundmap.php:561
-msgid "Latitude"
-msgstr ""
-
-#: soundmap.php:564
-msgid "Longitude"
-msgstr ""
-
-#: soundmap.php:567
-msgid "Zoom"
-msgstr ""
-
-#: soundmap.php:573
-msgid "Map type"
-msgstr ""
-
-#: soundmap.php:577
-msgid "Terrain"
-msgstr ""
-
-#: soundmap.php:578
-msgid "Satellite"
-msgstr ""
-
-#: soundmap.php:579
-msgid "Map"
-msgstr ""
-
-#: soundmap.php:580
-msgid "Hybrid"
-msgstr ""
-
-#: soundmap.php:586
-msgid "Show map page"
-msgstr ""
-
-#: soundmap.php:591
-msgid "Select one direction for showing the map (ex: map). If you want to use is as your home, write [home]. You can also show the map on any page using the shortcode [soundmap]"
-msgstr ""
-
-#: soundmap.php:596
-msgid "Sound Player Modules"
-msgstr ""
-
-#: soundmap.php:625
-msgid "Version"
-msgstr ""
-
-#: soundmap.php:625
-msgid "By"
-msgstr ""
-
-#: soundmap.php:625
-msgid "Visit plugin site"
-msgstr ""
-
-#: soundmap.php:635
-msgid "Plugin"
-msgstr ""
-
-#: soundmap.php:636
-msgid "Description"
-msgstr ""
-
-#: theme/theme_map.php:25
-msgid "SoundMap"
-msgstr ""
-
-#: theme/theme_window.php:12
-msgid "Date"
-msgstr ""
-
-#: theme/theme_window.php:19
-msgid "Tags"
-msgstr ""
-
-#: theme/theme_window.php:20
-msgid "Categories"
-msgstr ""
-
diff --git a/soundmap/theme/rss-markers.php b/soundmap/theme/rss-markers.php
new file mode 100644
index 0000000..bf1865a
--- /dev/null
+++ b/soundmap/theme/rss-markers.php
@@ -0,0 +1,67 @@
+'; ?>
+
+
+ 'marker',
+ 'post_status' => 'publish',
+ 'order' => 'DESC',
+ 'posts_per_page' => 10,
+ 'orderby' => 'date'
+);
+query_posts( $args );
+
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ ]]>
+
+ ]]>
+ post_content ) > 0 ) : ?>
+ ]]>
+
+ ]]>
+
+
+
+
+
+
+
+
+
diff --git a/soundmap/theme/theme_map.css b/soundmap/theme/theme_map.css
deleted file mode 100644
index 9e50b6b..0000000
--- a/soundmap/theme/theme_map.css
+++ /dev/null
@@ -1,50 +0,0 @@
-
-#map-page{
- position:absolute;
- top:0;
- left:0;
- background-color: white;
- width: 100%;
- height: 100%;
- min-width: 1200px;
-
-}
-
-#map{
- height:100%;
- width: 100%;
-}
-
-.map_canvas{width:100%; height:100%;}
-
-#left{
- height: 100%;
- width: 75%;
- position: relative;
- float: left;
- z-index: 100;
-}
-
-#right{
- width: 25%;
- height: 100%;
- background: white url(img/shadow.png) repeat-y left;
- overflow-y: auto;
- float: right;
- z-index: -1;
- min-width: 300px;
-}
-#map-content{
- padding: 20px 10px;
-}
-
-.logo{
- text-align: center;
- height: 50px;
- padding-top: 20px;
-
-}
-
-.marker-window{
- width:300px;
-}
diff --git a/soundmap/theme/theme_map.php b/soundmap/theme/theme_map.php
deleted file mode 100644
index f8f7d45..0000000
--- a/soundmap/theme/theme_map.php
+++ /dev/null
@@ -1,60 +0,0 @@
- section and everything up till
- *
- */
-?>
-
-
-
-
->
-
-
-
-
-
-
-
-
-
-
-
-
- * tag of your theme, or you will break many plugins, which
- * generally use this hook to add elements to such
- * as styles, scripts, and meta tags.
- */
- wp_head();
-?>
-
-
->
-
-
-
-
diff --git a/soundmap/theme/theme_window.php b/soundmap/theme/theme_window.php
index 9bf5007..e538dc1 100644
--- a/soundmap/theme/theme_window.php
+++ b/soundmap/theme/theme_window.php
@@ -4,7 +4,7 @@
+