// global vars
var msg_outdated_browser = 'Ihr Browser unterstützt leider nicht alle benötigten Funktionen. Bitte installieren Sie eine aktuelle Version.';
var msg_bad_login = 'Die Kundenummer darf nur aus Zahlen bestehen und ist max. 8-stellig.';
var msg_bad_password = 'Die Eingabe des Kennwortes/PIN muss 5-stellig sein.';
var openPop = function(url, width, height, winname) {
	if (!(url && width && height)) return;
	var piwikSiteId = "5";
	try {
		if(piwikSiteId != "") {
			piwikTracker.setCustomUrl(url);
			piwikTracker.trackPageView();
			piwikTracker.enableLinkTracking();
		}
	} catch( err ) {
	 	//alert(err);
	}
	
	var winname = winname || '';
	var w = window.open(url, winname, "width=" + width + ",height=" + height + ",menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no");
	w.focus();
};
var openPopSbDetails = function(url){
	openPop(url, 660, 660, 'SBS');
}
var elemById = function(id) {
	return document.getElementById(id);
};
var elemsByName = function(name) {
	return document.getElementsByName(name);
};
var elemsByTag = function(name) {
	return document.getElementsByTagName(name);
};
var focusAndSelect = function(elem) {
	elem.focus();
	elem.select();
};
var getCssClass = function(elem) {
	if (! elem) return '';
	return elem.getAttribute(document.all ? 'className' : 'class') || '';
};
var setCssClass = function(elem, cssClass) {
	if (! elem && cssClass) return;
	elem.setAttribute(document.all ? 'className' : 'class', cssClass);
};
var error = function(forElem, text) {
	var errorText = elemById('wd-login-error-text');
	if (errorText) {
		while (errorText.hasChildNodes()) { // delete old error message
			errorText.removeChild(errorText.firstChild);
		}
		errorText.appendChild(document.createTextNode(text));
		errorText.style.display = 'inline'; // show
	}

	if (forElem) {
		setCssClass(forElem, getCssClass(forElem) + ' error');
		focusAndSelect(forElem);
	}
	return false;
};
var checkOldBrowser = function() {
	return ((typeof encodeURI == 'undefined') ||
		// ie55 fehlt dieses object
		(typeof window.document.implementation == 'undefined'));
};

var badLogin = function(elem) {
	var value = elem.value || '';
	var maxlength = value.indexOf("-") != -1 ? 11 : 8;
	if (value.length == 0 || value.length > maxlength) return true;
	for (i=0; i<value.length; i++) {
		if ('0123456789-'.indexOf(value.charAt(i), 0) == -1) return true;
	}
		return false;
};
var badPassword = function(elem) {
	var value = elem.value || '';
	if (value.length != 5) return true;

	for (i=0; i<value.length; i++) {
		if ('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@$%?!<>'.indexOf(value.charAt(i), 0) == -1) return true;
	}
		return false;
};
var initLoginForm = function() {
	var form = elemById('wd-login-form');
	if (!form) return; // no login-form present...

	var inputLogin = elemById('kdnr_formular'),
	inputPassword = elemById('pin_formular');

	var inputFields = new Array(inputLogin,inputPassword);
	for (var i=0; i<inputFields.length; i++) {
		var field = inputFields[i];
		if (!field) return;

		field.onfocus = function(e) {
			var e = e || window.event;
			var src = e.target || e.srcElement;
			elemById(src.id + '_label').style.display = 'none';
			src.focus();
		};
		field.onblur = function(e) {
			var e = e || window.event;
			var src = e.target || e.srcElement;
			if (src.value.length == 0) {
				elemById(src.id + '_label').style.display = 'block';
			}
		};
		if (field.value.length > 0) { // hide label if fields were filled by browser
			field.focus();
		}
	}
	form.onsubmit = function(e) {
		// remove class="error"
		for (var i=0; i<inputFields.length; i++) {
			for (var j=0,css=getCssClass(inputFields[i]).split(' '),cssNew=''; j<css.length; j++) {
				if (css[j] != 'error') cssNew += css[j];
			}
			setCssClass(inputFields[i], cssNew);
		}

		// check browser
		if (checkOldBrowser()) {
			return error(null, msg_outdated_browser);
		}

		// check fields
		if (badLogin(inputLogin)) {
			return error(inputLogin, msg_bad_login);
		}
		if (badPassword(inputPassword)) {
			return error(inputPassword, msg_bad_password);
		}
	};
};

// onload...
window.onload = function()
{
	initLoginForm();
};