// +++++++++++++++ Start clone functions from prototype.js ************
// TODO: Maybe this part should be separated as an extra library file.


// Make available funktionality "hasClassName" from prototype.js:
//
function strip(aString) {
    return aString.replace(/^\s+/, '').replace(/\s+$/, '');
}


// Make available funktionality "hasClassName" from prototype.js:
//
function hasClassName(element, className) {
	// if (!element || !(element instanceof Element)) return;
	if (!element || (element.nodeType != 1)) return;  // No valid (DOM-)element.
	var elementClassName = element.className;
	return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
}


// Make available funktionality "addClassName" from prototype.js:
//
function addClassName(element, className) {
	// if (!element || !(element instanceof Element)) return;
	if (!element || (element.nodeType != 1)) return;  // No valid (DOM-)element.
	if (!hasClassName(element, className)) {
		element.className += (element.className ? ' ': '') + className;
	}
	return element;
}

// Make available funktionality "removeClassName" from prototype.js:
//
function removeClassName(element, className) {
	// if (!element || !(element instanceof Element)) return;
	if (!element || (element.nodeType != 1)) return;  // No valid (DOM-)element.
	element.className = strip(
	    element.className.replace(
	        new RegExp("(^|\\s+)" + className + "(\\s+|$)"),
	        ' ')
	    );
	return element;
}
// ================ End clone functions from prototype.js =============



// +++++++++++++++++ Functions from old const.js +++++++++++++++++++++++
function isMapMode(mode) {
	return !mode || mode != 'route';
}

function isRouteMode(mode) {
	return mode == 'route';
}

// ================ End functions from const.js =========================



// ++++++++++++++++ Rewritten Code from old top.js ++++++++++++++++++++++

function localOnfocus(field) {
    var defaultValue = document.getElementById(field.id + "LocalDefault").innerHTML;
    if (field.value == defaultValue) {
       field.value = '';
    }
    // if(!window.csgTest) { window.csgTest = true; alert("field.id: " + field.id + ", document.getElementById(field.id): " + document.getElementById(field.id)); }
    removeClassName(document.getElementById(field.id), 'default');
}

function localOnblur(field) {
    var defaultValue = document.getElementById(field.id + "LocalDefault").innerHTML;
    if (field.value == '') {
       field.value = defaultValue;
    }
    if (field.value == defaultValue) {
       addClassName(document.getElementById(field.id), 'default');
    } else {
       removeClassName(document.getElementById(field.id), 'default');
    }
}

function clearLocalDefault(fieldId) {
    var field = document.getElementById(fieldId);
    if (field.value == document.getElementById(fieldId + "LocalDefault").innerHTML) {
       field.value = '';
    }
}

function clearLocalDefaults() {
    clearLocalDefault('q');
    clearLocalDefault('wo');
    clearLocalDefault('from');
    clearLocalDefault('to');
}

function getLocalMode() {
    return document.getElementById('localMode').value;
}


function setLocalMode(mode) {
	// Set / save mode on a hidden input field:
	document.getElementById('localMode').value = mode;
	
	if (isRouteMode(mode)) {
		removeClassName(document.getElementById('localTabMap'), 'visible');
		addClassName(document.getElementById('localTabRoute'), 'visible');
		
		removeClassName(document.getElementById('localMap'), 'selected');
		addClassName(document.getElementById('localRoute'), 'selected');
	} else {
		removeClassName(document.getElementById('localTabRoute'), 'visible');
		addClassName(document.getElementById('localTabMap'), 'visible');
		
		removeClassName(document.getElementById('localRoute'), 'selected');
		addClassName(document.getElementById('localMap'), 'selected');
	}
}
// ============== End rewritten Code from old top.js ====================


