	var prev_inserted = false;

	function cancel_event_propagation(e){
		if(!e) e.window.event;
		
		e.cancelBubble = true;
		if(e.stopPropagation) {
			e.stopPropagation()
		}
	
	}


function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function deleteItemImIn(item, tagName) {
	while(item.tagName != tagName){
		item = item.parentNode;
	}
	item.parentNode.removeChild(item);
}

function addEvent(eventName, element, fun){
   if(window.addEventListener) {
      // w3c model
      element.addEventListener(eventName, fun, false);
      return;
   }
   if(window.attachEvent) {
      //microsoft model
      element.attachEvent('on'+eventName, fun);
      return;
   }else {
      alert('Warning! None of W3C or Microsoft event registration models supported');
   }
}

var onBeforeUnloadAttached = false;


function observeFormsChanges(formIds, message) {
	var i=0;
	for(i=0; i<formIds.length; i++) {
	  $(formIds[i]).observe('click', function() {beforeUnloadConfirm(message)});
     $(formIds[i]).observe('keypress', function() {beforeUnloadConfirm(message)});
     $(formIds[i]).observe('submit', function() {disableBeforeUnloadConfirm()});
     firedebug("Uwaga, jesli podpinasz funkcje do zdarzenia onsubmit formularza i ona nie dziala, " +
     		        "to pewnie Ci ja nadpisuje. W takim wypadku skontaktuj sie ze mna" +
     		        "\nGrzegorz Pawlik");
	}
}

function firedebug(msg) {
	if(console.warn) {
		console.warn(msg);
	}
}


function disableBeforeUnloadConfirm() {
	window.onbeforeunload = null;
}

function beforeUnloadConfirm(message) {
	if(!onBeforeUnloadAttached){
//		alert('trying to attach unload event');
   	window.onbeforeunload = function(){return(message)}; 
      onBeforeUnloadAttached = true;
	}else {
		return false;
	}
	
}