var gallery_add_activatedField = 0;

function gallery_addPhotos() {
   browser = navigator.userAgent.toLowerCase();

   if (browser.indexOf('apple') == -1)
      document.getElementById('gallery_add_photos').style.display = 'none';

   document.getElementById('gallery_add_waiting').style.display = '';

   // Have to fix IE's static hidden div
   if (browser.indexOf('Microsoft') >= 0)
      setTimeout('document.images["upload_progress_img"].src="/images/loading.gif"', 200);
}

function gallery_add_activateField(id) {
   // Deactivate the current one
   if (gallery_add_activatedField != 0)
      document.getElementById('help_' + gallery_add_activatedField).style.display = 'none';

   // Now activate the help and set it as current
   document.getElementById('help_' + id).style.display = '';
   gallery_add_activatedField = id;
}

function gallery_edit_createRequestObject() {
    var ajaxObj;
    var browser = navigator.appName;
    if(browser.indexOf('Microsoft') >= 0)
        ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
    else
        ajaxObj = new XMLHttpRequest();

    return ajaxObj;
}

var gallery_edit_ajaxObject = gallery_edit_createRequestObject();

function gallery_edit_update(itemid, fieldName, type) {
   var fieldNameAndId = fieldName + '_' + itemid;

   var text = escape(document.getElementById('gallery_edit_' + fieldNameAndId + '_input').value);

   var url = '/ajax_edit_field.php?itemid=' + itemid + '&fieldName=' + fieldName + '&type=' + type + '&text=' + text;

   document.getElementById('gallery_edit_' + fieldNameAndId + '_activate').style.display = 'none';
   document.getElementById('gallery_edit_' + fieldNameAndId + '_updating').style.display = '';

   gallery_edit_ajaxObject.open('get', url);
   gallery_edit_ajaxObject.onreadystatechange = gallery_edit_handleResponse;
   gallery_edit_ajaxObject.send(null);
}

function gallery_edit_urlencode(text_str) {
   var convertedText = "";
   var text_len = text_str.length;
   for (i=0; i<text_len; i++) {
      charCode = text_str.charCodeAt(i);

      if ( (charCode > 256) || (charCode == 38) || (charCode == 36))
         convertedText += escape(text_str.charAt(i));
      else
         convertedText += text_str.charAt(i);
   }
   return convertedText;
}

/*
function gallery_edit_entities(text_str) {
   var convertedText = "";
   var text_len = text_str.length;
   for (i=0; i<text_len; i++) {
      charCode = text_str.charCodeAt(i);

      if ( (charCode > 256) || (charCode == 38) || (charCode == 36))
         convertedText += "&#" + charCode + ";"
      else
         convertedText += text_str.charAt(i);
   }
   return convertedText;
}
*/

function gallery_edit_handleResponse() {
   
   if(gallery_edit_ajaxObject.readyState == 4){
      var fieldNameAndId = gallery_edit_ajaxObject.responseText;

      document.getElementById('gallery_edit_' + fieldNameAndId + '_updating').style.display = 'none';

      document.getElementById('gallery_edit_' + fieldNameAndId).style.display = '';

      document.getElementById('gallery_edit_' + fieldNameAndId).innerHTML =
         document.getElementById('gallery_edit_' + fieldNameAndId + '_input').value;
   }

}

function gallery_edit_highlight(obj) {   
   obj.style.backgroundColor = '#eceefe';
}

function gallery_edit_unhighlight(obj) { 
   setTimeout("gallery_edit_unhighlightTime('" + obj.id + "')", 1000);
}

function gallery_edit_unhighlightTime(objid) {
   document.getElementById(objid).style.backgroundColor = '';
}

function gallery_edit_activate(photoid, fieldName) {
   var fieldNameAndId = fieldName + '_' + photoid;
   // Deactivate the display of the name
   document.getElementById('gallery_edit_' + fieldNameAndId).style.display = 'none';

   // Activate the editing of the name
   document.getElementById('gallery_edit_' + fieldNameAndId + '_activate').style.display = '';

}

function gallery_edit_cancel(photoid, fieldName) {
   var fieldNameAndId = fieldName + '_' + photoid;

   document.getElementById('gallery_edit_' + fieldNameAndId).style.display = '';
   document.getElementById('gallery_edit_' + fieldNameAndId + '_activate').style.display = 'none';
}

// View Photos
var gallery_stream_ajaxObj;

function defineAjaxModule() {
   var gallery_stream_ajaxObj=null;
   try {
      gallery_stream_ajaxObj=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
   } catch (e) { // Internet Explorer
      try {
         gallery_stream_ajaxObj=new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         gallery_stream_ajaxObj=new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   return gallery_stream_ajaxObj;
}


function gallery_photoStream_changeThumb(username, albumName, albumid, photoid, nextsort, salt) {
   gallery_stream_ajaxObj = defineAjaxModule();

   if (gallery_stream_ajaxObj == null) {
      return;
   }

   if (albumName != '')
      albumName = albumName + '/';

   var url = '/photo/stream/' + username + '/' + albumName + albumid + '/' + photoid + '/' + nextsort + '/' + salt + '/';

   //gallery_stream_ajaxObj.onreadystatechange=gallery_photoStream_updateInfo;
   gallery_stream_ajaxObj.onreadystatechange=function() {
      gallery_photoStream_updateInfoThumb();
   };
   gallery_stream_ajaxObj.open("GET", url);

   gallery_stream_ajaxObj.send(null);
}

function gallery_photoStream_updateInfoThumb() {
   if (gallery_stream_ajaxObj.readyState == 4)
      document.getElementById('gallery_photo_stream_block').innerHTML = gallery_stream_ajaxObj.responseText;
}

// Adding tags

var gallery_tag_ajaxObject;
var gallery_tagUpdate_ajaxObject;

function gallery_tags_add_activate() {
   // Deactivate the display of the name
   document.getElementById('gallery_view_photo_tag_add').style.display = 'none';

   // Activate the editing of the name
   document.getElementById('gallery_view_photo_tag_add_activate').style.display = '';

}

function gallery_tags_add_cancel() {
   document.getElementById('gallery_view_photo_tag_add').style.display = '';
   document.getElementById('gallery_view_photo_tag_add_activate').style.display = 'none';
   document.getElementById('gallery_view_photo_tag_add_pool').innerHTML = '<a href="javascript:gallery_tags_add_pool();">Choose from your tag pool</a>';
}


function gallery_tags_add_update(username, photoid, currentuserid, timenow) {
   gallery_tag_ajaxObject = gallery_edit_createRequestObject();
   timenow = timenow + Math.floor(Math.random()*1000);

   var text = escape(document.getElementById('gallery_view_photo_tag_add_input').value);
   var url = '/ajax_add_tags.php?photoid=' + photoid + '&timenow=' + timenow + '&tagstring=' + text;

   document.getElementById('gallery_view_photo_tag_add_activate').style.display = 'none';
   document.getElementById('gallery_view_photo_tag_add_updating').style.display = '';
   document.getElementById('gallery_view_photo_tag_add_pool').innerHTML = '<a href="javascript:gallery_tags_add_pool();">Choose from your tag pool</a>';

   gallery_tag_ajaxObject.onreadystatechange = function() {
      gallery_tags_add_handleResponse(username, photoid, currentuserid, timenow);
   }

   gallery_tag_ajaxObject.open('get', url);
   gallery_tag_ajaxObject.send(null);
}

function gallery_tags_add_handleResponse(username, photoid, currentuserid, timenow) {
   
   if(gallery_tag_ajaxObject.readyState == 4){
      document.getElementById('gallery_view_photo_tag_add_updating').style.display = 'none';
      document.getElementById('gallery_view_photo_tag_add').style.display = '';
      document.getElementById('gallery_view_photo_tag_add_input').value = '';

      // Now we need to update the tags
      gallery_tags_updateListing(username, photoid, currentuserid, timenow);
   }
}

function gallery_tags_del_update(username, photoid, tagid, currentuserid, timenow) {
   gallery_tag_ajaxObject = gallery_edit_createRequestObject();

   timenow = timenow + Math.floor(Math.random()*1000);
   var url = '/ajax_del_tag.php?photoid=' + photoid + '&tagid=' + tagid + '&timenow=' + timenow;

   gallery_tag_ajaxObject.onreadystatechange = function() {
      gallery_tags_del_handleResponse(username, photoid, currentuserid, timenow);
   }

   gallery_tag_ajaxObject.open('get', url);
   gallery_tag_ajaxObject.send(null);
}

function gallery_tags_del_handleResponse(username, photoid, currentuserid, timenow) {
   
   if(gallery_tag_ajaxObject.readyState == 4){
      // Now we need to update the tags
      gallery_tags_updateListing(username, photoid, currentuserid, timenow);
   }
}


function gallery_tags_updateListing(username, photoid, currentuserid, timenow) {
   gallery_tagUpdate_ajaxObject = gallery_edit_createRequestObject();
      document.getElementById('gallery_view_photo_tag_block').innerHTML = '';

   timenow = timenow + Math.floor(Math.random()*1000);

   var url = '/photo/tags/' + username + '/' + photoid + '/' + currentuserid + '/' + timenow + '/';

   gallery_tagUpdate_ajaxObject.open('get', url);
   gallery_tagUpdate_ajaxObject.onreadystatechange = gallery_tags_updateListing_handleResponse;
   gallery_tagUpdate_ajaxObject.send(null);
}

function gallery_tags_updateListing_handleResponse() {

   if(gallery_tagUpdate_ajaxObject.readyState == 4){
      document.getElementById('gallery_view_photo_tag_block').innerHTML =
         gallery_tagUpdate_ajaxObject.responseText;

   }
}

function gallery_tags_add_pool() {
   gallery_tagUpdate_ajaxObject = gallery_edit_createRequestObject();

   var salt = Math.floor(Math.random()*1000);

   var url = '/tags/from/user/' + salt + '/';

   gallery_tagUpdate_ajaxObject.open('get', url);
   gallery_tagUpdate_ajaxObject.onreadystatechange = gallery_tags_add_pool_handleResponse;
   gallery_tagUpdate_ajaxObject.send(null);
}

function gallery_tags_add_pool_handleResponse() {
   if(gallery_tagUpdate_ajaxObject.readyState == 4){
      document.getElementById('gallery_view_photo_tag_add_pool').innerHTML =
         gallery_tagUpdate_ajaxObject.responseText;
   }
}

function gallery_tags_add_pool_insertText(text) {
   var current_text = document.getElementById('gallery_view_photo_tag_add_input').value;

   current_text = current_text + " " + text;

   document.getElementById('gallery_view_photo_tag_add_input').value = current_text;
}

// Comments
var gallery_comment_ajaxObject;

function gallery_comment_submit(photoid, timenow) {
   gallery_comment_ajaxObject = gallery_edit_createRequestObject();
   timenow = timenow + Math.floor(Math.random()*1000);

   var text = escape(document.getElementById('gallery_view_photo_comment_input').value);
   var url = '/ajax_add_comment.php?photoid=' + photoid + '&timenow=' + timenow + '&comment=' + text;

   gallery_comment_ajaxObject.onreadystatechange = gallery_comment_submit_handleResponse;
   gallery_comment_ajaxObject.open('get', url);
   gallery_comment_ajaxObject.send(null);
}

function gallery_comment_submit_handleResponse() {
   if(gallery_comment_ajaxObject.readyState == 4){
      document.getElementById('gallery_view_photo_comments_block').innerHTML = gallery_comment_ajaxObject.responseText;
      document.getElementById('gallery_view_photo_comment_input').value = '';
   }
}

var gallery_tags_changePage_ajaxObject;

function gallery_tags_changePage(userid, tagsearch, photostart) {
   gallery_tags_changePage_ajaxObject = gallery_edit_createRequestObject();

   var url = '/tags/photos/' + userid + '/' + tagsearch + '/' + photostart + '/';

   gallery_tags_changePage_ajaxObject.open('get', url);
   gallery_tags_changePage_ajaxObject.onreadystatechange = gallery_tags_changePage_handleResponse;
   gallery_tags_changePage_ajaxObject.send(null);
}

function gallery_tags_changePage_handleResponse() {

   if(gallery_tags_changePage_ajaxObject.readyState == 4){
      document.getElementById('gallery_tag_photo_block').innerHTML =
         gallery_tags_changePage_ajaxObject.responseText;
   }
}

var gallery_flag_ajaxObject;

function gallery_flag_photo_run(photoid) {
   gallery_flag_ajaxObject = gallery_edit_createRequestObject();

   var url = '/flag/photo/' + photoid + '/confirmed/';

   gallery_flag_ajaxObject.open('get', url);
   gallery_flag_ajaxObject.onreadystatechange = gallery_flag_photo_handleResponse;
   gallery_flag_ajaxObject.send(null);
}

function gallery_flag_photo_handleResponse() {
   if(gallery_flag_ajaxObject.readyState == 4) {
      document.getElementById('gallery_flag_photo_confirm').style.display = 'none';

      document.getElementById('gallery_flag_photo_run').innerHTML = gallery_flag_ajaxObject.responseText;

      document.getElementById('gallery_flag_photo_run').style.display = '';
   }
}

function gallery_flag_comment_run(commentid) {
   gallery_flag_ajaxObject = gallery_edit_createRequestObject();

   var url = '/flag/comment/' + commentid + '/confirmed/';

   gallery_flag_ajaxObject.open('get', url);
   gallery_flag_ajaxObject.onreadystatechange = gallery_flag_comment_handleResponse;
   gallery_flag_ajaxObject.send(null);
}

function gallery_flag_comment_handleResponse() {
   if(gallery_flag_ajaxObject.readyState == 4) {
      document.getElementById('gallery_flag_comment_confirm').style.display = 'none';

      document.getElementById('gallery_flag_comment_run').innerHTML = gallery_flag_ajaxObject.responseText;

      document.getElementById('gallery_flag_comment_run').style.display = '';
   }
}

function gallery_flag_cancel(username, albumName, photoid) {
   var url = '/' + username + '/photo/' + photoid + '/';

   if (albumName.length)
      url = url + albumName + '/';

   location.href = url;
}
