

			var lastInputNr;
			
			if (window.addEventListener) {
				window.addEventListener("load",browserDetect,false);
			} else if (window.attachEvent) {
				window.attachEvent("onload",browserDetect);
			} else {
				window.onload = function() {browserDetect();}
			}
			
			function browserDetect() {
				var browserAlertBox;
				var browser = navigator.appName;
				
				if (browser == "Opera") {
					lastInputNr = -1;
					addFileToUploadInputAlternative();
					browserAlertBox = document.getElementById('browserAlert');
					browserAlertBox.style.display = 'block'; 
				} else {
					lastInputNr = -1;
					addFileToUploadInput();
					var myForm = document.getElementById("uploadPhotosForm");
					var przepis = document.getElementById("przepis_id");
					
					if( przepis != null ) {
						
						var tmp = przepis.value.split( '_' );
						if( tmp[0] == 'edycja' ) {
							myForm.action = '/przepis/edycja/' + tmp[1];
						} else {
							myForm.action = '/przepis/dodaj';
						}
					} else {
						myForm.action = '/dodaj';
					}
				}
				
				jQuery("#addnextdiv").css('display', '');
				jQuery("#stepbuttons").css('display', '');
			}
			
			function submitForm() {
				var browser = navigator.appName;				
				uploadForm=document.getElementById('uploadPhotosForm');
				if (browser != "Opera") {	
					uploadForm.enctype = "application/x-www-form-urlencoded";
				}				
				return false;
			}
			
			function addFileTUI(elem) {
				var browser = navigator.appName; 
				if (browser == "Opera") {
					addFileToUploadInputAlternative();
				} else {
					addFileToUploadInput(elem);
				}
			}    
						
			function addFileToUploadInput(elem) {
				if(lastInputNr == -1) lastInputNr = jQuery('.added').length - 1;			
				if (lastInputNr<20) {
					lastInputNr++;	
					myUl = document.getElementById("fileToUploadUl");
					myLi = document.createElement("li");
					myLi.className = "fileToUploadArea";
					myLi.setAttribute("id", "fileToUploadArea" + lastInputNr);
					myLi.innerHTML = '<input type="hidden" value="0" name="fileId[' + lastInputNr + ']" /><input type="hidden" value="" name="fileServer[' + lastInputNr + ']" /><input type="hidden" value="" name="fileUrl[' + lastInputNr + ']" /><input type="hidden" value="" name="fileName[' + lastInputNr + ']" /><input type="hidden" value="" name="fileUrlThumbnail[' + lastInputNr + ']" /><div id="fileToUploadArea' + lastInputNr + 'Image" class="item" style="display:none"><a class="remove" href="#" onclick="deleteFile(' + lastInputNr + '); return false;">usuń</a></div>';
					myUl.appendChild(myLi);
					myDiv = document.getElementById("fileToUpload");
					myDiv.innerHTML = '<input class="file" type="file" size="61" id="fileToUpload' + lastInputNr + '" name="fileToUpload[]" onchange="return ajaxFileUpload(' + lastInputNr + ');" />';
					if (lastInputNr==20) {
						jQuery("#addnextdiv").css("display", "none");
					}
				}		
			}
			
			function addFileToUploadInputAlternative() {
				//if(lastInputNr == -1) lastInputNr = jQuery('.added').length;
				if (lastInputNr<20) {
					lastInputNr++;	
					myUl = document.getElementById("fileToUploadUl");
					myLi = document.createElement("li");
					myLi.className = "fileToUploadArea";
					myLi.setAttribute("id", "fileToUploadArea" + lastInputNr);
					myUl.appendChild(myLi);
					myDiv = document.getElementById("fileToUpload");
					myDiv.innerHTML = '<input class="file" type="file" size="61" id="fileToUpload' + lastInputNr + '" name="fileToUpload[]" />';
					if (lastInputNr==20) {
						jQuery("#addnextdiv").css("display", "none");
					}
				}		
			}

jQuery.extend({

    createUploadIframe: function(id, uri)
	{
			//create frame
            var frameId = 'jUploadFrame' + id;
            
            if(window.ActiveXObject) {
                var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
                if(typeof uri== 'boolean'){
                    io.src = 'javascript:false';
                }
                else if(typeof uri== 'string'){
                    io.src = uri;
                }
            }
            else {
                var io = document.createElement('iframe');
                io.id = frameId;
                io.name = frameId;
            }
            io.style.position = 'absolute';
            io.style.top = '-1000px';
            io.style.left = '-1000px';

            document.body.appendChild(io);

            return io			
    },
    
    
    createUploadForm: function(id, fileElementId)
	{
		//create form	
		var formId = 'jUploadForm' + id;
		var fileId = 'jUploadFile' + id;
		var form = jQuery('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');	
		var oldElement = jQuery('#' + fileElementId);
		var newElement = jQuery(oldElement).clone();
		jQuery(oldElement).attr('id', fileId);
		jQuery(oldElement).before(newElement);
		jQuery(oldElement).appendTo(form);
		//set attributes
		jQuery(form).css('position', 'absolute');
		jQuery(form).css('top', '-1200px');
		jQuery(form).css('left', '-1200px');
		jQuery(form).appendTo('body');		
		return form;
    },

    ajaxFileUpload: function(s) {
        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout		
        s = jQuery.extend({}, jQuery.ajaxSettings, s);
        var id = new Date().getTime()        
		var form = jQuery.createUploadForm(id, s.fileElementId);
		var io = jQuery.createUploadIframe(id, s.secureuri);
		var frameId = 'jUploadFrame' + id;
		var formId = 'jUploadForm' + id;		
        // Watch for a new set of requests
        if ( s.global && ! jQuery.active++ )
		{
			jQuery.event.trigger( "ajaxStart" );
		}            
        var requestDone = false;
        // Create the request object
        var xml = {}   
        if ( s.global )
            jQuery.event.trigger("ajaxSend", [xml, s]);
        // Wait for a response to come back
        var uploadCallback = function(isTimeout)
		{			
			var io = document.getElementById(frameId);
            try 
			{				
				if(io.contentWindow)
				{
					 xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
                	 xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
					 
				}else if(io.contentDocument)
				{
					 xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                	xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
				}						
            }catch(e)
			{
				jQuery.handleError(s, xml, null, e);
			}
            if ( xml || isTimeout == "timeout") 
			{				
                requestDone = true;
                var status;
                try {
                    status = isTimeout != "timeout" ? "success" : "error";
                    // Make sure that the request was successful or notmodified
                    if ( status != "error" )
					          {
                        // process the data (runs the xml through httpData regardless of callback)
                        //for (var key in xml) { alert(xml[key]); }
                        var data = jQuery.uploadHttpData( xml, s.dataType );    
                        // If a local callback was specified, fire it and pass it the data
                        if ( s.success )
                            s.success( data, status );
    
                        // Fire the global callback
                        if( s.global )
                            jQuery.event.trigger( "ajaxSuccess", [xml, s] );
                    } else
                        jQuery.handleError(s, xml, status);
                        
                } catch(e) 
								{
                    status = "error";
                    jQuery.handleError(s, xml, status, e);
                }

                // The request was completed
                if( s.global )
                    jQuery.event.trigger( "ajaxComplete", [xml, s] );

                // Handle the global AJAX counter
                if ( s.global && ! --jQuery.active )
                    jQuery.event.trigger( "ajaxStop" );

                // Process result
                if ( s.complete )
                    s.complete(xml, status);

                jQuery(io).unbind()

                setTimeout(function() {	
                	try	{
						jQuery(io).remove();
						jQuery(form).remove();	
					} catch(e) {
						jQuery.handleError(s, xml, null, e);
					}									
				}, 100)
                xml = null
            }
        }
        // Timeout checker
        if ( s.timeout > 0 ) 
		{
            setTimeout(function(){
                // Check to see if the request is still happening
                if( !requestDone ) uploadCallback( "timeout" );
            }, s.timeout);
        }
        try 
		{
           // var io = jQuery('#' + frameId);
			var form = jQuery('#' + formId);
			jQuery(form).attr('action', s.url);
			jQuery(form).attr('method', 'POST');
			jQuery(form).attr('target', frameId);
            if(form.encoding) {
                form.encoding = 'multipart/form-data';				
            }
            else {				
                form.enctype = 'multipart/form-data';
            }			
            jQuery(form).submit();

        } catch(e) {			
            jQuery.handleError(s, xml, null, e);
        }
        if(window.attachEvent){
            document.getElementById(frameId).attachEvent('onload', uploadCallback);
        }
        else {
            document.getElementById(frameId).addEventListener('load', uploadCallback, false);
        } 		
        return {
        	abort: function () {}
        };	

    },

    uploadHttpData: function( r, type ) {
        var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        // If the type is "script", eval it in global context
        if ( type == "script" )
            jQuery.globalEval( data );
        // Get the JavaScript object, if JSON is used.
        if ( type == "json" )
            eval( "data = " + data );
        // evaluate scripts within html
        if ( type == "html" )
            jQuery("<div>").html(data).evalScripts();
			//alert(jQuery('param', data).each(function(){alert(jQuery(this).attr('value'));}));
        return data;
    }
})



function ajaxFileUpload(inputFileNameNr) {
	   var blockWrap, pIndicator, fileInputElem;
	   var formName = 'uploadPhotosForm';  
	   
	   	blockWrap = document.getElementById("fileToUploadArea" + inputFileNameNr);
	   	fileInputElem = document.getElementById("fileToUpload" + inputFileNameNr); 
	   
	  	// pIndicator = document.getElementById("pIndicator");
	  	// if (!pIndicator) {
	  	pIndicator = document.createElement("p");
	   	pIndicator.setAttribute("Id", "pIndicator");
	   	blockWrap.appendChild(pIndicator);
	  	// 	}
	   	showStatus(1, pIndicator, blockWrap, fileInputElem);
	   		   	
	   	var przepis = '';
	   	
	   	if( typeof( jQuery( '#przepis_id' ).val() )  != 'undefined' ) {
	   		przepis = '/true';
	   	}
	   	
	   jQuery.ajaxFileUpload 
	   (
	   {
		//url:'/index.php/steps/upload',
		url:'/AjaxAttachCreate' + przepis,
		secureuri:false,
		fileElementId:'fileToUpload' + inputFileNameNr,
		dataType: 'json',
		success: function (data, status) {
			if (typeof(data.error) != 'undefined') {
				if (data.error != '') {
					//for (var key in data) { alert(data[key]); }
					alert('1: '+data.error);
					//alert("1. Podczas wgrywania pliku wystąpił błąd.");
					document.getElementById("fileToUpload" + inputFileNameNr).style.display="";
					pIndicator.style.display="none";
					blockWrap.className = 'fileToUploadArea';
				}
				else {
					addValues(data, pIndicator, blockWrap, fileInputElem, inputFileNameNr);					
				}
			}
			if (data.msg!='') 
				alert('message: ' + data.msg);
				pIndicator.style.display="none";
		},
		error: function (data, status, e) {
		//for (var key in e) { alert(e[key]); }
		if (typeof(e) != 'undefined') {
			//for (var key in e) { alert(e[key]); }			
			alert('2: '+data.error);
			//alert("2. Podczas wgrywania pliku wystąpił błąd.");
		}
		pIndicator.style.display="none";							
		}
	}
  )
	return false;
}
function addValues(data, pIndicator, blockWrap, fileInputElem, inputFileNameNr) {
	var myDiv, linkDelete, spanDelete;
	var formName = 'uploadPhotosForm';
	showStatus(2, pIndicator, blockWrap, fileInputElem);
	myDiv = document.getElementById('fileToUploadArea' + inputFileNameNr + 'Image');			
					
	for (var i=0; i<myDiv.childNodes.length; i++) {
		node = myDiv.childNodes[i];
		if (node.nodeName == "A") {
			linkDelete = myDiv.childNodes[i];	
			linkDelete.style.display = "";
		} 
	}			
	if ( data.link_mini == '' ) {
		var miniatura = '/images/plikinny.gif';
	} else {
		var miniatura = data.serwer + data.link_mini;
	}
	jQuery('#fileToUploadArea' + inputFileNameNr + 'Image').html('<img src="' + miniatura + '" alt="'+ data.nazwa +'"/>');
					
	myDiv.style.display = "";
	if (linkDelete) {
		myDiv.appendChild(linkDelete);
	}
	   				
	document.forms[formName].elements['fileName[' + inputFileNameNr + ']'].value = data.nazwa;
	document.forms[formName].elements['fileServer[' + inputFileNameNr + ']'].value = data.serwer;
	document.forms[formName].elements['fileUrl[' + inputFileNameNr + ']'].value = data.link;
	document.forms[formName].elements['fileUrlThumbnail[' + inputFileNameNr + ']'].value = data.link_mini;
}

function showStatus(status, pIndicator, blockWrap, fileInputElem) {
	switch (status) {
		case 0: //input 
			fileInputElem.style.display="block";
			pIndicator.style.display="none";
			blockWrap.className = 'fileToUploadArea';
		break;
		case 1: //loading
			//fileInputElem.style.display="";
			fileInputElem.style.display="none";
	   		pIndicator.innerHTML = '<img src="/images/lightbox-ico-loading.gif" alt="" />';
	   		pIndicator.style.display="block";
	   		blockWrap.className = 'loading';
		break;
		case 2: //loaded
			pIndicator.style.display="none";
			blockWrap.className = 'added';
			fileInputElem.value = '';
			//fileInputElem.style.display="block";
		break;
	}
}

function deleteFile(inputFileNameNr) {
	var realID = jQuery( "#fileId" + inputFileNameNr ).val();
	var formName = 'uploadPhotosForm';
	var blockWrap = document.getElementById("fileToUploadArea" + realID);
	var myDiv = document.getElementById('fileToUploadArea' + inputFileNameNr + 'Image');
	var fileInputElem;
	//var idDeleted = document.forms[formName].elements['fileId[' + inputFileNameNr + ']'].value;
	
	var checkDB = jQuery( "#fileDB" + inputFileNameNr ).val();
	if( checkDB == "true" ) {
		idDeleted = realID;
	} else {
		idDeleted = 0;
	}
	
	/*
	pIndicator = document.createElement("p");
	pIndicator.innerHTML = '<span class="napis"><img src="/images/lightbox-ico-loading.gif" alt="" />Proszę czekać, trwa usuwanie pliku...</span>';
	pIndicator.setAttribute("Id", "pIndicator");
	blockWrap.appendChild(pIndicator);	
	blockWrap.className = 'loading';
	pIndicator.style.display="block";
	*/
		
	// ukrycie tytulu, obrazka i linku Usun
	for (var i=0; i<myDiv.childNodes.length; i++) {
		jQuery( "#fileToUploadArea" + inputFileNameNr + "Image" ).hide();
		//node = myDiv.childNodes[i];
		//node.style.display = "none";
	}	
	//var input = jQuery( "#fileToUploadArea"+inputFileNameNr+" .fileToUploadCount" );
	//if( input.length > 0 ) {
	//	inputFileNameNr = input.val();
	//} 
		
		
	jQuery.ajax({
    	url: '/AjaxThumbDelete/' + idDeleted,//'/album/awatar/delete/filesDelete?nr=' + idDeleted,
    	dataType: 'json',
    	error: function(data, status, e){alert('data');
        	alert('Error:' + data.error + ' ' + e);
        	//pIndicator.style.display="none";
    	},
    	success: function(data, status){
			/*
			if (pIndicator) {
				pIndicator.style.display="none";
			}	
			*/
			jQuery('#fileToUploadArea' + inputFileNameNr + 'Image').html = '';
        	fileInputElem = document.getElementById("fileToUpload" + inputFileNameNr);
        	fileInputElem.style.display = "none";
        	fileInputElem.value = "";
        	blockWrap.className = 'fileToUploadArea';
	   		document.forms[formName].elements['fileName[' + inputFileNameNr + ']'].value = "";
			document.forms[formName].elements['fileServer[' + inputFileNameNr + ']'].value = "";
			document.forms[formName].elements['fileUrl[' + inputFileNameNr + ']'].value = "";
	   		document.forms[formName].elements['fileUrlThumbnail[' + inputFileNameNr + ']'].value = "";	   		
	   		if (data.msg!='') 
				alert(data.msg);	
    	}
	});
}
/*
function deleteFileById(idDeleted) {
	
	jQuery.ajax({
    	url: '/index.php/steps/filesDelete?nr=' + idDeleted,
    	dataType: 'json',
    	error: function(data, status, e){
        	alert('Error:' + data.error + ' ' + e);
    	},
    	success: function(data, status){
    		if (data.msg!='') 

				alert(data.msg);
    	},
    	error: function (data, status, e) {
			alert('Błąd!');
		}
	});
}
*/

