/***
 * knihovna pro ajax upload
 * zdroj: http://www.devbox.info/upload-files-asynchronously-using-ajax-like-technology 
 * upraveno: Martin Milicka
 * ucel: upload samotne fotografie na pozadi
 */ 
var oldval;
var submitButton;

AsyncUpload = {

	createFrame : function(formElement, completeCallback) {
	  
		var frameName = 'f' + Math.floor(Math.random() * 99999);
		var divElement = document.createElement('DIV');
		divElement.innerHTML = '<iframe style="display:none" src="about:blank" id="'+frameName+'" name="'+frameName+'" onload="AsyncUpload.documentLoaded(\''+frameName+'\')"></iframe>';
		document.body.appendChild(divElement);
		
		var frameElement = document.getElementById(frameName);
		if (completeCallback && typeof(completeCallback) == 'function') {
			frameElement.completeCallback = completeCallback;
		}
		formElement.setAttribute('target', frameName);
				
	},

	documentLoaded : function(elementID) {
		var frameElement = document.getElementById(elementID);
		if (frameElement.contentDocument) {
			var documentElement = frameElement.contentDocument;
		} else if (frameElement.contentWindow) {
			var documentElement = frameElement.contentWindow.document;
		} else {
			var documentElement = window.frames[elementID].document;
		}
		if (documentElement.location.href == "about:blank") {
			return;
        }
		if (typeof(frameElement.completeCallback) == 'function') {
			frameElement.completeCallback(documentElement.body.innerHTML);
		}
	},

	submitForm : function(formElement, startCallback, completeCallback) {
	  //spoleha se na to, ze se bude nastavovat text na poslednim elementu
    submitButton = $(formElement).find('input[name=submit]');
    oldval = $(submitButton).attr("value"); 
    $(submitButton).attr("value", "Čekejte ... ");
    $(submitButton).attr("disabled", "disabled");
    
		AsyncUpload.createFrame(formElement, completeCallback);
		if (startCallback && typeof(startCallback) == 'function') {
    	return startCallback();
		} 
    else {
      return true;
		}
	}

}


function startCallback() {
    return true;
}


function completeCallback(response) {
  var old = document.getElementById("sortables").innerHTML;
  document.getElementById("sortables").innerHTML = old+response;

  $(submitButton).attr("value", oldval);
  $(submitButton).removeAttr('disabled');
}


/**
 * akce ktera se provadi pokud je zip nahran
 */ 
function completeCallbackZip(response) {

  var new_img = document.createElement("div");
  document.getElementById("thumbnails").appendChild(new_img);
  new_img.innerHTML = response;
  
  $(submitButton).attr("value", oldval);
  $(submitButton).removeAttr('disabled');
}


function completeCallbackFiles(response) {

  var new_img = document.createElement("div");
  document.getElementById("files").appendChild(new_img);
  
  new_img.innerHTML = response;

  //povoleni funkcnosti tlacitka a vraceni puvodni hodnoty
  $(submitButton).attr("value", oldval);
  $(submitButton).removeAttr('disabled');
}

