/* start zipped version Do Mai 12 15:42:50 CEST 2011 */
// global.js
var isTop = self===top;
var trans = '/images/trans.gif';
var adderClone = 0;

function send2server(url, callback) {
    jQuery.ajax({
        type: "GET",
        url: url,
        cache: false,
        success: callback
    });
};

/**
 * Returns the rating image for a given number of stars
 */
function getRateHTML(num) {
    return '<img src="' + trans + '" alt="" class="rateimg rate'+num+'" />';
};

/**
 * Adds the "mehr anzeigen" link to the left stats column in Mein DocInsider.
 * To be called inside Mein DocInsider -> Mein DocInsider ** NOT on domload! **
 * Assumes MORE_LINK_TEXTS defined globally, otherwise defaults to standard texts.
 */
function addStatsMoreLink() {
    self.MORE_LINK_TEXTS = self.MORE_LINK_TEXTS || [
        'mehr anzeigen',
        'weniger anzeigen'];
	
    document.write(	'<div class="dotline" style="margin:5px 0"></div>'+
        '<a id="l_fullstats" href="#" class="moreLink">'+MORE_LINK_TEXTS[0]+'</a>');
	
    jQuery('#fullstats').addClass('hide');
    jQuery( function() {
        jQuery('#l_fullstats').click( function() {
            var jFS = jQuery('#fullstats');
            if (typeof this.fullstatsON=='undefined') this.fullstatsON = 0;
            if (this.fullstatsON)
                jFS.fadeOut(300);
            else jFS.fadeIn(300);
            this.fullstatsON = ++this.fullstatsON % 2;
            jQuery(this).html( MORE_LINK_TEXTS[this.fullstatsON] ).toggleClass('reverse');
            return false;
        });
    });
};

/**
 * Set cursor focus on what field  
 */
jQuery( function() {
    if (typeof NO_FOCUS=='undefined' && document.location.href.indexOf('#') == -1) {
        // focus "was" field on start...
        var yuiWhat = jQuery('#yuiWhat');
        if (yuiWhat.length != 0) yuiWhat[0].focus();
    }

    jQuery('ul.smalltabs li a').bind('click', smallTabsClickHandler);
});

/**
 * to be assigned on dom load
 */
var smallTabsClickHandler = function() {
    var me = this;
    if (this.className.match(/active/)) return false;
    jQuery('a.active', this.parentNode.parentNode).removeClass('active').each( function() {
        try {
            var divID = this.href.match(/(#.*)$/)[1];
            jQuery(divID).removeClass('active');
        } catch(ignore) {
            return;
        }
    });
    try {
        var divID = this.href.match(/(#.*)$/)[1];
        jQuery(this).add(divID).addClass('active');
    } catch(ignore) {
        return;
    }
    return false;
};

function escapeOverlay(url) {
    try {
        if (top.frames.length > 0 && url != null && url != '') {
            top.location.href = url;
        }
    } catch(ignore) {}
};

/**
 * MeinDocInsider -> Einstellungen -> Bearbeiten handler
 * To be assigned using activateEditHandlers() on the resp. page
 */
self.editLinkHandler = function() {
    this.isON = (this.isON || 0);
    var id = this.id.match(/editlink_(.*)$/)[1],
    editSelector = '#'+id+'_edit',
    infoSelector = '#'+id+'_info';
    jQuery(editSelector+','+infoSelector).toggleClass('hide');
    this.isON = ++this.isON % 2;
    this.innerHTML = self.EDIT_LINK_TEXTS[this.isON];
    if (editSelector == '#eintrag_edit') {
        document.getElementsByName('editData')[0].value = this.isON;
    } else
        if (editSelector == '#sprech_edit') {
            document.getElementsByName('editSchedule')[0].value = this.isON;
        } else
        if (editSelector == '#leistung_edit') {
            document.getElementsByName('editBenefits')[0].value = this.isON;
        } else
        if (editSelector == '#tags_edit') {
            document.getElementsByName('editTags')[0].value = this.isON;
        }
    if (self!=top && self.adaptSize) self.adaptSize();
    return false;
};

self.EDIT_LINK_TEXTS = [ // should be overwritten in respective files with wording from properties file
    'Bearbeiten',
    'Abbrechen'];

function activateEditHandlers() {
    jQuery('a.editlink').each( function() {
        jQuery(this).click(self.editLinkHandler);
        var id = this.id.match(/editlink_(.*)$/)[1],
        editSelector = '#'+id+'_edit';
        if (!jQuery(editSelector+'.hide').length) {
            this.isON = 1;
        }
        jQuery(this).html( self.EDIT_LINK_TEXTS[this.isON || 0] );
    });
};

/**
 * Adds 'add input field' functionality to a buttton/input pair.
 * @param string buttonID the 'add' buttton's ID
 * @param string protoInputID id of the text-input to use as pattern for new inputs
 * Updates the overlay's size if opened in the latter.
 */
function addAdderHandler(buttonID, protoInputID) {
    // add "add email address" functionality..
    jQuery('#'+buttonID).click( function() {
        var clone = document.getElementById(protoInputID).cloneNode(1);
        if (!clone.nodeName.match(/select/i)) clone.value = '';
        else clone.selectedIndex = 0;
        clone.removeAttribute('id');
        jQuery(this).before(clone);
        clone.focus();
        if (self!=top && self.adaptSize) self.adaptSize();
        return false;
    });
};

/**
 * Adds 'add input field' functionality to a buttton/input pair.
 * @param string buttonID the 'add' buttton's ID
 * @param string protoInputID id of the text-input to use as pattern for new inputs
 */
function addInputAdderHandler(buttonID, protoInputID) {
    // add "add email address" functionality..
    jQuery('#'+buttonID).click( function() {
        if (adderClone > 8) return false; // 10 items limit
        var clone = document.getElementById(protoInputID).cloneNode(1);
        if (!clone.nodeName.match(/select/i)) clone.value = '';
        else clone.selectedIndex = 0;
        var strId = clone.getAttribute('id');
        var strName = clone.getAttribute('name');
        if (strId == null) strId = '';
        if (strName == null) strName = '';
        clone.removeAttribute('id');
        adderClone++;
        clone.setAttribute('id',strId + adderClone);
        clone.setAttribute('name',strName + adderClone);
        jQuery(this).before(clone);
        clone.focus();
        if (self!=top && self.adaptSize) self.adaptSize();
        return false;
    });
};

loginUrlParameterWhat = '';
loginUrlParameterWhere = '';
loginUrlParameterClass = '';

function loginStatusOkCallbackHandler(obj) {
    if (obj != null) {
        //var stat = document.getElementById('loginMenu');
        var stat = jQuery('#loginMenu');
        if (stat != null) {
            //stat.innerHTML = obj
            stat.html(obj);
        }
    }
};

function getThickboxLink(url, msg) {
    return '<a href="'+url+'" rel="nofollow, noindex" class="thickbox">'+msg+'</a>';
};

function createStaticLoginMenu(divId, systemUrl, callbackUrl, loginText, registerText) {
    var loginUrl    = systemUrl+"login/auth?url="+callbackUrl+"&KeepThis=true&TB_iframe=true&width=931&height=432";
    var registerUrl = systemUrl+"user/register";

    var content = "";
    content +=  "<div class='loginMenuLogin'>";
    content +=      getThickboxLink(loginUrl, "<img src='"+systemUrl+"images/buttons/but_anmelden.jpg'/>");
    content +=  "</div>";
    content +=  "<div class='loginMenuRegister'>";
    content +=  "   <a href='"+registerUrl+"' rel='nofollow, noindex' id='lnk_reg'>"+registerText+"</a>";
    content +=  "</div>";
    document.getElementById(divId).innerHTML = content;
};

function adaptSize(updateHoriToo) {
    $(document).ready(function() {
        //console.log("adaptSize");
        var HORI_PADDING = 25,
        h = jQuery(self.document.body).innerHeight(),
        w = (updateHoriToo)? jQuery('#ocontent div:first').width() : jQuery(self.document.body).width(),
        jTBWIN = jQuery('#TB_window', top.document),
        reused = jTBWIN.attr('reused');		// indicates whether a new page has been loaded into an opened overlay

        if (!h || !w) return;
        var	o = {
            height: h+'px',
            width: ( (updateHoriToo)? (2*HORI_PADDING+w) : w ) + 'px'
        };

        jQuery('#TB_window', top.document).css(o);
        jQuery('#TB_iframeContent', top.document).css(o);
        if (top.updateTBOverlay) top.updateTBOverlay();

        if (updateHoriToo && reused) {
            jTBWIN.css({
                marginLeft:'-'+Math.round(w/2) + 'px',
                top: jQuery(top.document).scrollTop() + 'px'
            });
            // ^ restore top position too (same code as in jquery.thickbox.js->tb_position())
        }

        if (!reused) {
            jTBWIN.attr('reused', 1);
        }
    });
};

// ====================== docinsider-mobile ========================
  
function onMobileRemindSuccess(e) {
    var container = jQuery('#remindResult');
    container.html(e);
};

function clearBoxDelay(id, time) {
    setTimeout("document.getElementById('"+id+"').innerHTML='';", time);
};

function sendMobileRemind(url, cookieDomain) {
    jQuery('#remindResult').html('Erinnerung wird gespeichert...');
    var form = jQuery('#mobileRemindForm');
    var docId=jQuery('#i_docId');
    var mobileNumber=jQuery('#i_mobileNumber');
    var remindNumber=jQuery('#i_remindNumber');
    var remindDate=jQuery('#i_remindDate');
    var remindTime=jQuery('#i_remindTime');
    var agbConfirm=jQuery('#i_agbConfirm');

    url += '?docId=' + docId.val();
    url += '&mobileNumber=' + mobileNumber.val();
    url += '&remindNumber=' + remindNumber.val();
    url += '&remindDate=' + remindDate.val();
    url += '&remindTime=' + remindTime.val();
    url += '&agbConfirm=' + agbConfirm.val();
    
    send2server(url, onMobileRemindSuccess);
    writeMobileRemindNumberCookie(cookieDomain)
};

function getCookie(cookieName, defaultValue) {
    var cookie = ""+document.cookie;
    if (cookie.length > 0) {
        var start = cookie.indexOf(cookieName + "=");
        if (start != -1) { 
            start = start + cookieName.length+1; 
            var end = cookie.indexOf(";", start);
            if (end == -1) {
                end = cookie.length;
            }
            return unescape(cookie.substring(start, end));
        } 
    }
    return defaultValue;
};

function setCookie(name, expires, domain, path, value) {
    var time = new Date();
    time = new Date(time.getTime() + expires).toGMTString();
    var cookie = name+'='+value+'; expires='+time+'; domain='+domain+'; path='+path+';';
    document.cookie = cookie;
};

function writeMobileRemindNumberCookie(domain) {
    var remindNumber = document.getElementById("i_remindNumber");
    var mobileNumber = document.getElementById("i_mobileNumber");
    var rn = remindNumber.checked ? mobileNumber.value : "";
    setCookie("di_mobile_remind_number", 60*60*24*30, domain, "/", rn);
};

function readMobileRemindNumberCookie() {
    var value = getCookie("di_mobile_remind_number", "");
    var mobileNumber = document.getElementById("i_mobileNumber");
    var remindNumber = document.getElementById("i_remindNumber");
    mobileNumber.value   = value;
    remindNumber.checked = value != "";
};

function initDateSelectBox() { 
    var today = new Date();
    var min_m = today.getMonth()+1;
    var min_d = today.getDate();
    var min_y = today.getFullYear();

    var minDate = min_m+"/"+min_d+"/"+min_y;

    var max_m = min_m + 6;
    var max_y = min_y;
    if (max_m > 12) {
        max_m -= 12;
        max_y++;
    }
    var maxDate = max_m+"/"+min_d+"/"+max_y;
    YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1", "cal1Container", {
        close:true,
        mindate:minDate,
        maxdate:maxDate
    } );

    // Correct formats for Germany: dd.mm.yyyy, dd.mm, mm.yyyy 

    YAHOO.example.calendar.cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "."); 

    YAHOO.example.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 1); 
    YAHOO.example.calendar.cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); 
    YAHOO.example.calendar.cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); 

    YAHOO.example.calendar.cal1.cfg.setProperty("MD_DAY_POSITION", 1); 
    YAHOO.example.calendar.cal1.cfg.setProperty("MD_MONTH_POSITION", 2); 

    // Date labels for German locale 
    YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]); 
    YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); 
    YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]); 
    YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); 
    YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]); 
    YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);                                 

    YAHOO.example.calendar.cal1.render();        
    YAHOO.util.Event.addListener("datePickerButton", "click", YAHOO.example.calendar.cal1.show, YAHOO.example.calendar.cal1, true); 

    function handleSelect(type, args, obj) { 
        var dates = args[0]; 
        var date = dates[0]; 
        var y = date[0], m = date[1], d = date[2]; 

        //var dt = YAHOO.example.calendar.cal1.toDate(date);
        //var t = YAHOO.example.calendar.cal1.cfg.getProperty("WEEKDAYS_SHORT")[dt.getDay()];                                 

        var txtDate1 = document.getElementById("i_remindDate"); 

        if (d < 10) d = "0"+d;
        if (m < 10) m = "0"+m;

        txtDate1.value = d+"."+m+"."+y;
        this.hide();
    } 
    YAHOO.example.calendar.cal1.selectEvent.subscribe(handleSelect, YAHOO.example.calendar.cal1, true);   
};

// Updatet den Overlay-Link durch setzen des Frage-URL-Parameters.

function showTooltip(toolTipId) {
    document.getElementById(toolTipId).style.display = "inline";
};

function hideTooltip(toolTipId) {
    document.getElementById(toolTipId).style.display = "none";
};

function showSalesInfoDiv() {
    jQuery('#salesDiv').css('visibility','visible');
};

function hideSalesInfoDiv() {
    jQuery('#salesDiv').css('visibility','hidden');
};

function checkLoginStatus() {
    var params = '&urlParams=';
    if (loginUrlParameterWhat != '') params += 'what:' + loginUrlParameterWhat + ',';
    if (loginUrlParameterWhere != '') params += 'where:' + loginUrlParameterWhere + ',';
    if (loginUrlParameterClass != '') params += 'class:' + loginUrlParameterClass;
    send2server(loginStatusUrl + (new Date().getTime()) + '?url=' + encodeURI(document.location.href + params), loginStatusOkCallbackHandler);
};

function getWeekOfYear() {
    var date = new Date();

    var d = date.getDate();
    var m = date.getMonth()+1;
    var y = String(date.getYear());
    var date = new Date();

    if (!d) {
        y = date.getYear();
        if (1900 > y) y +=1900;
        m = date.getMonth();
        t = date.getDate();
    } else {
        m--;
    }

    date = new Date(y,m,d,0,0,1);

    var day = date.getDay();
    if (day == 0) day = 7;

    var tmp = new Date(2004,0,1).getTimezoneOffset();
    var summertime = (Date.UTC(y,m,d,0,tmp,1) - Number(date)) / 3600000;
    date.setTime(Number(date) + summertime * 3600000 - (day - 1) * 86400000);
    var year = date.getYear();
    if (1900 > year) year += 1900;

    var woy = 1;
    if (new Date(year,11,29) > date) {
        var offset = new Date(year,0,1);
        offset = new Date(Number(offset) + 86400000*(8 - offset.getDay()));
        if (offset.getDate() > 4) offset.setTime(Number(offset) - 604800000);
        woy = Math.ceil((date.getTime() - offset) / 604800000);
    }
    return woy;
}

function toggle(element){
    if (document.getElementById(element).style.display=='none') {
        document.getElementById(element).style.display='';
    } else {
        document.getElementById(element).style.display='none';
    }
};

function setFocusOnId(id) {
    try { // IE fix
        var focusControl = document.getElementById(id);
        if (focusControl != null && focusControl.type != 'hidden' && !focusControl.disabled) {
            focusControl.focus();
        }
    } catch(ignore) {
    }
};

function openPopUnder(url) {
    var win=window.open(url);
    if(win) {
        win.blur();
        window.focus();
    }
};


var openAutocompletes = 0; 

/* Used for search */
jQuery.diSearch = function(opts) {
    // opts.url
    // opts.attachToDomId

    if (!opts.slideUpDelay) {
        opts.slideUpDelay = 8000;
    };

    if (!opts.value) {
        opts.value = '';
    };

    if (!opts.typeDelay) {
        opts.typeDelay = 300;
    };

    if (!opts.attachResultsToDomId) {
        opts.attachResultsToDomId='newheader';
    };

    if (!opts.attachToDomId) {
        return;
    };

    if (!opts.attachToFormId) {
        opts.attachToFormId='hp';
    };

    var dom = jQuery('#' + opts.attachToDomId);
    if (!dom) {
        return;
    } else {
        if (dom.val() == '') {
            dom.val(opts.value);
        }

        dom.focus(function() {
            if (dom.val() == '' || dom.val() == opts.value) {
                dom.val('');
            }
        });

        dom.blur(function() {
            if (dom.val() == '') {
                dom.val(opts.value);
            }
            slideUpResults(0);
        });

        dom.keyup(function(key) {
            if (key.keyCode == 13 || key.keyCode == 38 || key.keyCode == 40) {
                
                return;
            }

            resetGetDataTimeout();
        });

        dom.keydown(function(key) {
            if (key.keyCode == 13) { // submit form on enter key

                var total = totalEntries();
                var str = dom.val();

                if (total > 0) {
                    str = currentEntry()['value'];
                    dom.val(str);

                    if (searchWord == str) {
                        jQuery('#' + opts.attachToFormId).submit();
                    }
                } else {
                    jQuery('#' + opts.attachToFormId).submit();                    
                }

                searchWord = str;
                slideUpResults(0);
                key.preventDefault(); 
            } else
                if (key.keyCode == 38) { // handle key up
                    prevEntry();
                } else

            if (key.keyCode == 40) { // handle key down
                nextEntry();
            }
    });



    dom.attr('autocomplete', 'off');
};

var searchWord;

// Create results
var results = document.createElement("div");
// Create jQuery object for results
var results = jQuery(results);
results.attr('id', opts.attachToDomId + 'Div');

hideResults();

// Add to body element
jQuery('#' + opts.attachResultsToDomId).append(results);

function getData() {
    var query = trim(dom.val());

    if (query == '') {
        return;
    };

    var strUrl = opts.url + query + '&div=' + opts.attachToDomId;

    jQuery.ajax({
        type: "GET",
        url: strUrl,
        cache: false,
        success: function(data) {
            hideResults();
            if (data != '') {
                results.html(data);
                results.slideDown(300);
                openAutocompletes++;
                addFunctions();
            }
        },
        error: function() {
            // alert('error');
        }
    });
};

function addFunctions() {

    var obj = jQuery('#'+opts.attachToDomId+'Div').children().filter("ul").children().filter("li");
    var counter = 0;

    obj.each(function() {
        var li = jQuery(this);

        li.attr('id',''+counter);
        counter++;

        li.mousedown(function() {
            var value = li.attr('val');
                 
            dom.val(value);
            slideUpResults(0);
            dom.focus();
        });

        li.mouseover(function() {
            setActiveClassForId(li.attr('id'));
        });

    });
};

function currentEntry() {
    var obj = results.children().filter("ul").children().filter("li");
    var id = '';
    var val = '';

    obj.each(function() {
        var obj=jQuery(this);
        var cn = obj.attr('class');
        if (cn == 'active') {
            id = obj.attr('id');
            val = obj.attr('val');
        };
    });

    var item = new Array();

    item['id'] = id;
    item['value'] = val;

    return item;
};

function totalEntries() {
    return results.children().filter("ul").children().filter("li").length;
};

function setActiveClassForId(pos) {
    var obj = results.children().filter("ul").children().filter("li");

    var counter = 0;

    obj.each(function() {

        if (counter == pos) {
            jQuery(this).addClass('active');
        } else {
            jQuery(this).removeClass('active');
        }

        counter++;
    });
};

function nextEntry() {
    var pos = parseInt(currentEntry()['id']);
    var total = totalEntries();

    if (pos + 1 < total) {
        setActiveClassForId(pos + 1);
    } else {
        setActiveClassForId(0);
    }
};

function prevEntry() {
    var pos = currentEntry()['id'];
    var total = totalEntries();

    if (pos - 1 >= 0) {
        setActiveClassForId(pos - 1);
    } else {
        setActiveClassForId(total - 1);
    }
};

function hideResults() {
    results.css('display','none');
};

function slideUpResults(delay) {
    openAutocompletes--;
    if (opts.slideUpDelayId) {
        clearTimeout(opts.slideUpDelayId);
    }

    if (delay == 0) {
        jQuery('#'+opts.attachToDomId+'Div').slideUp(300, function() {
            hideResults();
        });
    } else {
        opts.slideUpDelayId = setTimeout(function() {
            jQuery('#'+opts.attachToDomId+'Div').slideUp(300, function() {
                hideResults();
            });
        }, delay);
    }
};

function resetGetDataTimeout() {
    // do this with a delay
    if (opts.typeDelayId) {
        clearTimeout(opts.typeDelayId);
    }
    opts.typeDelayId = setTimeout(function() {
        getData();
    }, opts.typeDelay);
};


};

function hasOpenAutocompletes() {
return openAutocompletes>0; 
}

function showQuestionOverlay() {
var url = questionOverlayUrl;
var question = jQuery('#newq').val();

url = url.replace('title=', 'title=' + question);
tb_show('Fragen', url, '');
return false;
};

function showRegistrationOverlay() {
var username = jQuery('#welcomeUsername').val();
if (username.length == 0) return;
var url = registrationOverlayUrl.replace('username=', 'username=' + username);
tb_show('Registrieren', url, '');
return false;
};

function trim(str) {
if (str == null || str.length == 0) return '';
return str.replace (/^\s+/, '').replace (/\s+$/, '');
};

/* moreLess JavaScript */
jQuery( function() {
jQuery('#moreHits a.moreLink').bind('click', function() {
    jQuery(this.href.match(/(#.*)$/)[1]||'foo').slideToggle(300, function() {
        if (self.adaptSize) self.adaptSize();
    });
    var jMe = jQuery(this);
    var newWord = '';
    if (!this.isOpen) {
        newWord = MORELINK_LESS_WORDING;
        this.oldWord = jMe.html();
    } else {
        newWord = this.oldWord || '???';
    }
    jMe.html(newWord).toggleClass('reverse');
    this.isOpen = !this.isOpen;
    return false;
}).each( function() {
    this.isOpen=0
});

jQuery('#moreHits a.moreLink2').bind('click', function() {
    jQuery(this.href.match(/(#.*)$/)[1]||'foo').slideToggle(300, function() {
        if (self.adaptSize) self.adaptSize();
    });

    var jMe = jQuery(this);
    var newWord = '';

    if (!this.isOpen) {
        newWord = MORELINK_LESS_WORDING;
        this.oldWord = jMe.html();
    } else {
        newWord = this.oldWord || '???';
    }
    jMe.html(newWord).toggleClass('reverse');
    this.isOpen = !this.isOpen;
    return false;
}).each( function() {
    this.isOpen=0
});
});

function preloadImages(arrImages) {
if (document.images) {
    if(!document.preloadImagesArray) {
        document.preloadImagesArray = new Array();
    }

    for(var i=0;i<arrImages.length;i++) {
        var img = new Image();
        img.src = arrImages[i];
        document.preloadImagesArray[document.preloadImagesArray.length] = img;
    }
}
}

function checkDate(elm) {
    var thisdate = elm.value.replace(/\./g,':');
    thisdate = thisdate.replace(/,/,':');
    thisdate = thisdate.replace(/-/,':');
    if (thisdate.indexOf(':')==-1 && thisdate.length <= 2 && thisdate.length > 0) {
        thisdate += ':00';
    }
    elm.value = thisdate;
}/* end zipped version Do Mai 12 15:42:50 CEST 2011 */

