TQ = {version: '1.0'};

TQ = {
	get: function(element) {
		if(typeof(element) == "string") {
			element = document.getElementById(element);
		}

		return element
	},

	sprintf: function() {
		var args = this.sprintf.arguments;
		var argsLength = args.length;

		if( argsLength < 2 ) {
			return;
		}

		var ret = args[ 0 ];

		for( var k=1; k<argsLength; ++k ) {
			var currentArg = args[k];

			switch( typeof( currentArg ) ) {
				case 'string':
					ret = ret.replace( /%s/, currentArg );
					break;

				case 'number':
					ret = ret.replace( /%d/, currentArg );
					break;

				case 'boolean':
					ret = ret.replace( /%b/, currentArg ? 'true' : 'false' );
					break;

				default:
					/// function | object | undefined
					break;
			}
		}

		return ret;
	},

	vsprintf: function() {
		var args = this.vsprintf.arguments;
		var argsLength = args.length;

		if( argsLength < 2 ) {
			return;
		}

		var ret = args[ 0 ];


		if( typeof( args[ 1 ] ) == 'object' ) {
			var k = 0;
			var replace = args[ 1 ];
		} else {
			var k = 1;
			var replace = args;
		}

		for( var k=1; k<replace.length; ++k ) {
			var currentArg = replace[k];

			switch( typeof( currentArg ) ) {
				case 'string':
					ret = ret.replace( /%s/, currentArg );
					break;

				case 'number':
					ret = ret.replace( /%d/, currentArg );
					break;

				case 'boolean':
					ret = ret.replace( /%b/, currentArg ? 'true' : 'false' );
					break;

				default:
					/// function | object | undefined
					break;
			}
		}

		return ret;
	}
}

/* ------------------------------------------------------------------------- */

/**
 * Form handling methods
 */
TQ.form = {
	submit: function(formElementId) {
		// INIT
		var formularElement;
		var result;

		formularElement = TQ.get(formElementId);

		if(formularElement) {
			if(formularElement.onsubmit) {
				// handle onsubmit

				try {
					// try to call the onsubmit-event manually
					result = formularElement.onsubmit();
				} catch(e) {
					// catched an error, maybe an empty onsubmit
					result = true;
				}

				if(result == true || typeof(result) == "undefined") {
					// onsubmit passed the submit, now fire submit()
					formularElement.submit();
				}
			} else {
				// simple submit
				formularElement.submit();
			}
		}

	}
};

/* ------------------------------------------------------------------------- */

/**
 * FormElement handling methods
 */
TQ.form.element = {
	submit: function(event, sender) {
		// INIT
		var event;

		if (!event) {
			event = window.event;
		}

		if( event.keyCode == 13 || event.which == 13 ) {
			TQ.form.submit(sender.form);
			return false;
		}
		return true;
	}
};


/**
 * FormElement handling methods
 */
TQ.form.element.date = {
	clear: function(formElementId) {
		formularElement = TQ.get(formElementId);

		if(formularElement) {
			formularElement.value = '';
		}
	}
}

/* ------------------------------------------------------------------------- */

/**
 * Browser handling methods
 */
TQ.browser = {
	bookmark: function(bookmarkTitle) {
		if( bookmarkTitle == "" || typeof(bookmarkTitle) == "undefined" ) {
			bookmarkTitle = "Schattauer.de";
		}

		if(window.sidebar) {
			window.sidebar.addPanel(bookmarkTitle, location.href,'');
		} else {
			window.external.addFavorite(location.href, bookmarkTitle );
		}
	},

	print: function() {
		window.print();
	},

	pageLoad: function(url) {
		window.location.href = url;
	}
}


function schattauerConfirmDelete(message) {
	return confirm(message);
}


function schattauerPaymentPopupForm( form ) {
	var paymentPopup;
	var ret = false;

	paymentPopup = window.open("", "paymentPopup", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");

	if( paymentPopup ) {
		form.target = "paymentPopup";
		paymentPopup.focus();
	 	ret = true;
 	}

 	return ret;
}

function schattauerAdminPopup(url) {
	var popup;
	var ret = true;

	popup = window.open(url, "adminPopup", "width=700,height=500,status=yes,scrollbars=yes,resizable=yes");

	if( popup ) {
		popup.focus();
	 	ret = false;
 	}

 	return ret;
}

function schattauerPaymentPopup(url) {
	var popup;
	var ret = true;

	popup = window.open(url, "paymentPopup", "width=700,height=500,status=yes,scrollbars=yes,resizable=yes");

	if( popup ) {
		popup.focus();
	 	ret = false;
 	}

 	return ret;
}

function schattauerGeneralPopup(url) {
	var popup;
	var ret = true;

	popup = window.open(url, "generalPopup", "width=700,height=500,status=yes,scrollbars=yes,resizable=yes");

	if( popup ) {
		popup.focus();
	 	ret = false;
 	}

 	return ret;
}


function schattauerPopupClose() {
	if(window) {
		window.close();
	}
}

function schattauerPopupCloseDelay(delay) {
	window.setTimeout("schattauerPopupClose()", delay*1000);
}


function schattauerNewsHandleClick(sender) {
	if(sender) {
		var linkElements = sender.getElementsByTagName("a");

		if( linkElements && linkElements[0] && linkElements[0].href ) {
			TQ.browser.pageLoad( linkElements[0].href );
		}
	}
}

function schattauerShowTabContent(senderTab, showElement, elementArray) {
	// Toggle tabs
	var element = false;


	var tabCount = elementArray.length;
	for(var i=0; i<tabCount; i++) {
		var tabKey = elementArray[i];
		// Disable tab
		element = document.getElementById("schattauerTabBody-"+tabKey);
		if(element) {
			element.className = element.className.replace(/-active/g, "-inactive");
		}

		// Hide content
		element = document.getElementById("schattauerTabContent-"+tabKey);
		if(element) {
			element.style.display = "none";
		}
	}


	// Enable tab
	element = document.getElementById("schattauerTabBody-"+showElement);
	if(element) {
		element.className = element.className.replace(/-inactive/g, "-active");
	}

	// Show content
	element = document.getElementById("schattauerTabContent-"+showElement);
	if(element) {
		element.style.display = "block";
	}

}
