



















    function mgnlPopupWindow(strLink, width, height, menubar){
        var tmp = window.open(strLink , "popupWindow", "directories="+menubar+",location="+menubar+",toolbar="+menubar+",menubar="+menubar+",resizable=yes,scrollbars=yes,width="+width+",height="+height);
        tmp.focus();
    }

	function openWin(url, namn, attr) {
		window.open(url, namn, attr);  
	}
	
    function addThousandSepartor(number) {
        number = '' + number;
        while (number.match(/^\d\d{3}/)){
            number = number.replace(/(\d)(\d{3}(\.|,|$))/, '$1 $2');
        }
        return number;
    }

    function validIntField(field) {
        if (!field.value.match(/^\d+$/)) {
            field.focus();
            field.select();
            return false;
        }
        return true;
    }

	function popup(url, name) {
		window.open(url, name, "width=600,height=550,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1");
		return true;
	}

    function defaultText(elementId, defaultText, defaultText2) {
        var e = $j(elementId);
        if (e) {
            if (e.val() == '')
                e.val(defaultText);
            $j(elementId).focus(function() {
                var dest = this;
                if (typeof(dest) != 'undefined' && dest) {
                    if (dest.value == defaultText) {
                        dest.value = '';
                    } else if (typeof(defaultText2) != 'undefined' && dest.value == defaultText2) {
                        dest.value = '';
                    } else {
                        dest.select();
                    }
                }
            });
            $j(elementId).blur(function() {
                 var dest = this;
                if (typeof(dest) != 'undefined' && dest) {
                    if (dest.value == '')
                        dest.value = defaultText;
                }
            });
        }
    }

	function buildSelectorLocation(path, selector) {
		var query;
		var extension;
	
		// strip query parameters
		var i = path.indexOf('?');
		if (i != -1) {
			query = path.substring(i);
			path = path.substring(0, i);
		}

		// strip extension if any
		i = path.lastIndexOf('.');
		if (i != -1) {
			extension = path.substring(i);
			path = path.substring(0, i);
		}

		// strip selector part if present
		i = path.indexOf('.', path.lastIndexOf('/'));
		if (i != -1) {
			path = path.substring(0, i);
		}

		path = path + "." + selector;
		if (extension)
			path += extension;
		if (query)
			path += query;
	
		return path;
	}

	/**
	 *	Returns a Date object or false if the date could not be validated.
	 */
	function validateDate(format, dateString, toBound, fromBound) {
		var datePattern = '^'+format.replace(/\w/g, "\\d") + '$';
		if (!dateString.match(datePattern))
			return false;
		var yearIndex = format.indexOf('yyyy');
		var monthIndex = format.indexOf('MM');
		var dayIndex = format.indexOf('dd');
	
		var year = parseInt(dateString.substring(yearIndex, yearIndex+4), 10);
		var month = parseInt(dateString.substring(monthIndex, monthIndex+2), 10) -1;
		var day = parseInt(dateString.substring(dayIndex, dayIndex+2), 10);
	
		var d = new Date(year, month, day);
		if (d.getMonth() != month)
			return false;
	
		if (fromBound != null)
			if (d.getTime() < fromBound.getTime())
				return false; 
	
		if (toBound != null)
			if (d.getTime() > toBound.getTime())
				return false; 
	
		return d;
	}

	function mouseOverButton(e) {
		$j(e).addClass('buttonOver');
	}
	function mouseOutButton(e) {
		$j(e).removeClass('buttonOver');
	}

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) {
                return c.substring(nameEQ.length,c.length);
            }
        }
        return null;
    }

    function decode64(input) {
        var keyString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = keyString.indexOf(input.charAt(i++));
            enc2 = keyString.indexOf(input.charAt(i++));
            enc3 = keyString.indexOf(input.charAt(i++));
            enc4 = keyString.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            output = output + String.fromCharCode(chr1);
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
        }
        return output;
    }

    function readStoredDeparture() {
        var departure = readCookie('DEPARTURE');
        if (departure != null)
            return decode64(departure);
        return null;
    }

    function readStoredDestination() {
        var destination = readCookie('DESTINATION');
        if (destination != null)
            return decode64(destination);
        return null;
    }

    function scrollToTarget(id) {
        var scrollable = $j('html, body');
        var target = $j(id);
        var targetTop = target.offset().top;
        scrollable.animate({scrollTop: targetTop + 'px'}, 500);
    }



