
function changed() {
	var elem = document.getElementById('isFormChanged');
	if (elem) {
		elem.value = 1;
	}
}

function changedReset() {
	var elem = document.getElementById('isFormChanged');
	if (elem) {
		elem.value = 0;
	}
}

function askLeave() {
	var elem = document.getElementById('isFormChanged');
	if (elem && (elem.value == 1)) {
		return confirm('Wprowadziłeś już zmiany w tym formularzu i ich nie zapisałeś, chcesz kontynuować?');
	} else {
		return true;
	}
}

function setValue(id, value) {
	var elem = document.getElementById(id);
	elem.value = value;
}

function getValue(id) {
	var elem = document.getElementById(id);
	return elem.value;
}

function setChecked(id, value) {
	var elem = document.getElementById(id);
	elem.checked = value;
}

function getChecked(id) {
	var elem = document.getElementById(id);
	return elem.checked;
}

function sortClick(column)  {
	var columns = column.split(',');
	var prevColumns = getValue('sorting').split(',');
	// sprawdzamy czy to te same kolumny
	var same = true;
	if (columns.length != prevColumns.length) {
		same = false;
	}
	if (same == true)
	for (var i = 0; i < columns.length; i+=2) {
		if (columns[i] != prevColumns[i]) {
			same = false;
			break;
		}
	}

	if (same == false) {
		setValue('sorting', columns);
	} else {
		var newColumns = '';
		var first = true;
		for (var i = 0; i < columns.length; i++) {
			if (first) {
				first = false;
			} else {
				newColumns += ',';
			}
			newColumns += columns[i];
			i++;
			if (prevColumns[i] == 1) {
				newColumns += ',0';
			} else {
				newColumns += ',1';
			}
		}
		setValue('sorting', newColumns);
	}
	document.getElementById('form').submit();
}

function toggleBlock(block) {
	var d = document.getElementById(block);
	if(d.style.display == '') {
		d.style.display = 'none';
	} else {
		d.style.display = '';
	}
}

function hideBlock(block) {
	var d = document.getElementById(block);
	d.style.display = 'none';
}

function showBlock(block) {
	var d = document.getElementById(block);
	d.style.display = '';
}

function isBlockHidden(block) {
	var d = document.getElementById(block);
	return (d.style.display == 'none');
}

function setVisibility(element, visibility) {
	var d = document.getElementById(element);
	d.style.visibility = visibility ? 'visible' : 'hidden';
}

function toTimestamp(dateString) {
	var aDate = dateString.split('-');
	if (aDate.length < 3) {
		return null;
	}
	var date = new Date();
	if (aDate[2].length==4) {
		date.setFullYear(aDate[2]);
		date.setMonth(aDate[1]-1);
		date.setDate(aDate[0]);
	} else {
		date.setFullYear(aDate[0]);
		date.setMonth(aDate[1]-1);
		date.setDate(aDate[2]);
	}
	return date.getTime();
}

function formatDate(timestamp) {
	var d = new Date(timestamp);
	var month = d.getMonth()+1;
	if (month < 10) {
		month = '0' + month;
	}
	return d.getDate() + "-" + month + "-" + d.getFullYear();
}

function findPos(obj) {
	var left = top = 0;
	if (obj.offsetParent) {
		left = obj.offsetLeft
		top = obj.offsetTop
		while (obj = obj.offsetParent) {
			left += obj.offsetLeft
			top += obj.offsetTop
		}
	}

	return [left,top];
}

function createBookmark(url, title) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else
	if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else
	if(window.opera && window.print) { // Opera Hotlist
		return true;
	}
}

function submitToNewPage(formId, module) {
	var form = document.getElementById(formId);
	if (!form) {
		return false;
	}
	var oldAction = form.a.value;
	var oldTarget = form.target;
	
	form.a.value = module;
	form.target = '_blank';
	
	form.submit();

	form.a.value = oldAction;
	form.target = oldTarget;
	
	return true;
}

function submitToNewWindow(formId, module, windowName, windowOptions) {
	var windowHandle = window.open('', windowName, windowOptions);
	window.setTimeout('var formId=\''+formId+'\';var module=\''+module+'\';var windowName=\''+windowName+'\';var form = document.getElementById(formId);var oldAction = form.a.value;var oldTarget = form.target;form.a.value = module;form.target = windowName;form.submit();form.a.value = oldAction;form.target = oldTarget;', 200);
	windowHandle.focus();
	return windowHandle;
}

function getElements(startElement, nameRegex) {
	var result = new Array();
	var regexp = new RegExp("^"+nameRegex+"$");
	_getElements(result, startElement, regexp);
	return result;
}

function  _getElements(result, startElement, regexp) {
	if (startElement && startElement.name && startElement.name.match(regexp)) {
		result.push(startElement);
	}

	var el = startElement.firstChild;
	while (el) {
		_getElements(result, el, regexp)
		el = el.nextSibling;
	}
}

function getElementsByTagName(startElement, tagName, nameRegex) {
	var regexp = new RegExp("^"+nameRegex+"$");
	var result = new Array();
	var elements = startElement.getElementsByTagName(tagName);
	for (var i = 0; i < elements.length; i++) {
		if ((elements[i].name!=null) && (elements[i].name.match(regexp))) {
			result.push(elements[i]);
		}
	}
	return result;
}

function extractPath(path) {
	var regexp = new RegExp("\\[([\\w\\d\\s]+)\\]");
	return regexp.exec(path);
}
