////////////////////////////////////////////////
function zgdbBlurLink(source) {
	source.blur();
}

function zgdbBlurLinkById(sourceId) {
	document.getElementById(sourceId).blur();
}

function zgdbConfirmDelete() {
	if (confirm(zgdbMsg_confirmDeleteObject)) {
		zgdbSetAction("delete");
		zgdbSubmitForm();
	}
}

function zgdbConfirmJump(query, jumpAddr) {
	if (confirm(query)) {
		location.href = jumpAddr;
	}
}

function zgdbSetStartParam(prefix, start) {
	document.getElementById('zgdbPageStart_' + prefix).value = start;
	zgdbSubmitForm();
}

function zgdbSetAction(action, mode) {
	if (document.getElementById("zgdbAction")) {
		document.getElementById("zgdbAction").value = action;
		if (mode && document.getElementById("zgdbMode")) {
			document.getElementById("zgdbMode").value = mode;
		}
	}
}

function zgdb_triggerExport(tid, identifier, objectType) {
	// Set export parameters
	document.getElementById('zgdb_exportTid').value = tid;
	document.getElementById('zgdb_exportFlag').value = 1;
	document.getElementById('zgdb_exportIdentifier').value = identifier;
	document.getElementById('zgdb_exportObjectType').value = objectType;
	
	// Submit the form
	zgdbSubmitForm(false, false, true);
	
	// Unset the export parameters
	document.getElementById('zgdb_exportFlag').value = 0;
	document.getElementById('tx_zingdbconn_pi1[form]').setAttribute('target', '');
}

function zgdbSetActionIdentifier(identifier) {
	document.getElementById("zgdbActionIdentifier").value = identifier;
}

function zgdb_setListMode(moduleIdentifier, listMode) {
	document.getElementById("tx_zingdbconn_pi1[" + moduleIdentifier + "][listMode]").value = listMode;
	zgdbSubmitForm();
}

function zgdbSortSelectorChanged(reference, object, langId) {
	
	var optActive = reference.options[reference.selectedIndex];
	var ldo = optActive.getAttribute("ldo");

	var el = reference.options[reference.selectedIndex];
	var cl = el.getAttribute('class');

	if(cl && cl.indexOf('zgdbParent') == 0) {
		// parent attribute
		var parentId = cl.replace('zgdbParent_', '');
		callFilter(
				object.objectTypeId,
				-1,
				reference,
				'sortSelector',
				langId,
				object.context,
				object.identifier,
				object,
				true,
				zgdbSortSelectorUpdate,
				ldo
		);
	} else {
		var tmpId = "tx_zingdbconn_pi1[" + object.identifier + "][ldoSort]";
		if(document.getElementById(tmpId)) {
			document.getElementById(tmpId).value = ldo ? 1 : 0;
		}
		
		zgdbSetAction('');
		zgdbSubmitForm();
	}
}

function zgdbSubmitForm(id, target, blank) {
	
	if (!id) id = 'tx_zingdbconn_pi1[form]';
	
	if (blank) {
		document.getElementById(id).setAttribute('target', '_blank');
	}
	
	if (target) {
		document.getElementById(id).setAttribute('action', target);
	}
	
	if (typeof l10nSwitch != 'undefined') {
		l10nSwitch.submitForm(target);
	} else {
		document.getElementById(id).submit();
	}
}

function zgdbPrintContent() {
	window.print();
}



function zgdbResetStart(postfix) {
	if (document.getElementById('zgdbPageStart_' + postfix)) {
		document.getElementById('zgdbPageStart_' + postfix).value = 0;
	} 
}

/**
 * Set-And-Submit... 
 * @param element
 * @param value
 * @param formId
 * @return void
 */
function zgdbSAS(element,value,formId) {
	document.getElementById("tx_zingdbconn_pi1[" + element + "]").value = value;
	zgdbSubmitForm(formId);
}


/******* TAB FUNCTIONS *******/
var zgdb_activeTab;

function switchTab(activeTab, bla) {
	
	zgdb_activeTab = activeTab;
	
	var container = document.getElementById("zgdb_tabWrap");
	
	var children = container.childNodes;
	var iterator, newClass, zIndex;
	
	for (var i = 0; i < children.length; i++) {
		iterator = children[i];
		if (iterator.nodeName == 'undefined' || iterator.nodeName.toLowerCase() != 'div') {
			continue;
		}
		
		newClass = iterator.getAttribute('id') == ("zgdb_tab_" + activeTab)
		?	'active' : 'inactive';
		zIndex = iterator.getAttribute('id') == ("zgdb_tab_" + activeTab) ? 1 : 0;
		
		iterator.setAttribute('className', 'tab ' + newClass);
		iterator.setAttribute('class', 'tab ' + newClass);
		iterator.style.zIndex = zIndex;
	}
	
	container = document.getElementById("zgdb_tabTitleSubWrapRow");
	children = container.childNodes;
	
	for (var i = 0; i < children.length; i++) {
		iterator = children[i];
		if (iterator.nodeName == 'undefined' 
		|| 	iterator.nodeName.toLowerCase() != 'td'
		||	iterator.getAttribute('id') == null
		||	iterator.getAttribute('id').indexOf("zgdb_tabTitle") == -1	
		) {
			continue;
		}
		
		newClass = iterator.getAttribute('id') == ("zgdb_tabTitle_" + activeTab)
		?	'active' : 'inactive';
		iterator.setAttribute('className', 'tabTitle ' + newClass);
		iterator.setAttribute('class', 'tabTitle ' + newClass);
		
	}
	
	if (document.getElementById("zgdbTab")) {
		document.getElementById("zgdbTab").value = activeTab;
	}
	zgdb_ensureVisibility('zgdb_tabTitles', 'zgdb_tabTitle_' + activeTab, 'zgdb_tabTitleSubWrap');
	
	// resize pickers, if there are any
	if (typeof zgdb_resizePickers == 'function') {
		zgdb_resizePickers();
	}
}


function zgdb_previousTab() {
	var tmpIndex = -1;
	for (var i = 1; i < tabs.length && tmpIndex == -1; i++) {
		if (tabs[i] == zgdb_activeTab) tmpIndex = i;
	}
	if (tmpIndex == -1) return;
	
	switchTab(tabs[tmpIndex - 1]);
}


function zgdb_nextTab() {
	var tmpIndex = -1;
	for (var i = 0; i < tabs.length - 1 && tmpIndex == -1; i++) {
		if (tabs[i] == zgdb_activeTab) tmpIndex = i;
	}
	if (tmpIndex == -1) return;
	
	switchTab(tabs[tmpIndex + 1]);
}

var zgdb_tabOffset = 0;

function zgdb_ensureVisibility(parentTable, childCell, container) {
	var childCell = $(childCell);
	var parent = $(childCell).getOffsetParent();
	var container = $(container); 
	
	var offsetLeft = childCell.offsetLeft;
	var offsetWidth = childCell.offsetWidth;
	
	var offsetParentWidth = container.offsetWidth;
	
	if ($('tabDebug')) {
		$('tabDebug').innerHTML = "offsetLeft: " + offsetLeft + "<br />"
		+	"offsetWidth: " + offsetWidth + "<br />"
		+	"zgdb_tabOffset: " + zgdb_tabOffset + "<br />"
		+	"offsetParentWidth: " + offsetParentWidth;
	}
	
	if (offsetLeft + offsetWidth > offsetParentWidth - zgdb_tabOffset) {
		zgdb_tabOffset = offsetParentWidth - (offsetWidth + offsetLeft);
		parent.style.left = zgdb_tabOffset + "px";
	} else if (offsetLeft < 0 - zgdb_tabOffset) {
		zgdb_tabOffset = - offsetLeft;
		parent.style.left = zgdb_tabOffset + "px";
	}
}


function zgdb_export(key, target) {
	
	zgdbSetActionIdentifier(key);
	zgdbSetAction('export', key);
	document.getElementById('tx_zingdbconn_pi1[form]').action = target;
	zgdbSubmitForm();
	
	/*
	var a = document.getElementsByTagName('input'), tmp, trgId, first=true;
	
	for (var i = 0; i < a.length; i++) {
		tmp = a[i];
		if (!tmp.getAttribute('id')) continue;
		//alert(tmp.getAttribute('id'));
		if (tmp.getAttribute('id').indexOf('zgdb_checked' + key) > -1) {
			
			var trgId = tmp.getAttribute('id')
						.	replace('zgdb_checked' + key + "[", '')
						.	replace(']', '');
			alert("target ID: " + trgId);
			
			/*
			if(tmp.getAttribute('checked') == 'on') {
				alert(tmp.getAttribute('id') + ": checked");
			} else {
				alert(tmp.getAttribute('id') + ": unchecked");
			}
			*/
/*	
}
	}
	*/
}

function zgdb_setPickerCSS(identifier, target) {
	document.getElementById("zgdb_PickerCSS_" + identifier).setAttribute('href', target);
	zgdb_resizePickerResultCells(identifier);
}

