function alphanumeric(inputField){
    var alphanumericValue = inputField.value.toLowerCase().replace(/([^0-9a-z])/g,"");
    if (inputField.value != alphanumericValue)
        inputField.value = alphanumericValue;
}

function hashPassword(loginform) {
    var passwordField = document.getElementById("LoginForm_password");
    var usernameField = document.getElementById("LoginForm_username");
    
    if (passwordField.value.length != 64)
        passwordField.value = SHA256(usernameField.value + SHA256(passwordField.value));
    return true;
}


var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;
        
function jsddm_open(){
    jsddm_canceltimer();
    jsddm_close();
    ddmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function jsddm_close(){
    if (ddmenuitem)
        ddmenuitem.css('visibility', 'hidden');
}

function jsddm_timer(){
    closetimer = window.setTimeout(jsddm_close, timeout);
}

function jsddm_canceltimer(){
    if (closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}


function slideSwitch() {
    var $active = $('#slideshow div.active');
    var $activeFloater = $('#floaters div.active');

    if ( $active.length == 0 ) $active = $('#slideshow div:last');
    if ( $activeFloater.length == 0 ) $active = $('#floaters div:last');

    var $next =  $active.next().length ? $active.next()
        : $('#slideshow div:first');
    var $nextFloater =  $activeFloater.next().length ? $activeFloater.next()
        : $('#floaters div:first');
        
    $active.addClass('last-active');
    $activeFloater.addClass('last-active');

    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 700, function() {
            $active.removeClass('active last-active');
            $activeFloater.removeClass('active last-active');
            $nextFloater.addClass('active');
        });
         
}

$(document).ready(function() {
    generateBlogLinks();
    if ($("a.images").fancybox) {
      $("a.images").fancybox({
        'hideOnContentClick': true,
        'overlayOpacity'    : 0.6,
        'overlayColor'      : '#000000',
        'titlePosition'     : 'over'
      });
    } 
    $('#menu > li').bind('mouseover', jsddm_open);
    $('#menu > li').bind('mouseout', jsddm_timer);
    
    document.onclick = jsddm_close;
    
    generateMailLinks();
});



function generateLink(str) {
        if (str.indexOf("(a)") != -1 )
            var parts = str.split("(a)");
        else if (str.indexOf(" at ") != -1 )
            var parts = str.split(" at ");
        else if (str.indexOf(" ät ") != -1 )
            var parts = str.split(" ät ");
        else
            return str;

        if (parts.length == 2) {
            for (var j = 0; j < 2; j++) {
                parts[j] = parts[j].replace(" piste ", ".");
                parts[j] = parts[j].replace(" dot ", ".");
                parts[j] = parts[j].replace(" ", "");
            }
        }
        return "<a href=\"mailto:" + parts[0] + "@" + parts[1] + "\">" + parts[0] + "@" + parts[1] + "</a>";
}

function generateMailLinks() {
    $("span.meili").each(
        function(index) {
            $(this).html(generateLink($(this).html()));
        }
    );
}

function generateBlogLinks() {
    // Adds links to all thumbnail images that are not linked.
    $(".blogArticle img").not(".blogArticle a img").each(function() {
        if (this.src.indexOf("/files/") != -1) {
            var addr = this.src.replace("thumbs/", "");
            $(this).wrap("<a href='" + addr + "' class='images' rel='blog'></a>");
        }
    });
}

