YAHOO.namespace("formhelp.panel");
YAHOO.namespace("formdate.calendar");

function c33() {
	var compositionId = '33';
	var editorId = '###E'
	var editorHeight = 0;
	
	this.resizeElements = function(sourceId, initialHeight) {
		var parent = document.getElementById(compositionId);
	}
	        
    this.validLetter = function(e) {
        var key;
        var keychar;

        if (window.event) key = window.event.keyCode;
        else if (e) key = e.which;
        else return true;

        keychar = String.fromCharCode(key);

        if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) return true;
        else if ((("äöüabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß").indexOf(keychar) > -1)) return true;

        return false;
    }
            
    this.validNumber = function(e) {
        var key;
        var keychar;

        if (window.event) key = window.event.keyCode;
        else if (e) key = e.which;
        else return true;

        keychar = String.fromCharCode(key);

        if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) return true;
        else if ((("0123456789").indexOf(keychar) > -1)) return true;

        return false;
    }
    
    this.validFloatNumber = function(e) {
        var key;
        var keychar;

        if (window.event) key = window.event.keyCode;
        else if (e) key = e.which;
        else return true;

        keychar = String.fromCharCode(key);

        if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) return true;
        else if ((("0123456789,").indexOf(keychar) > -1)) return true;

        return false;
    }
    
    this.addFormHelp = function(objId, objCssId, objZindex, activateType) {
    	var helpObj = new YAHOO.widget.Panel('formhelp'+objId+'_container', { width:'320px', visible:false, constraintoviewport:true } );
    	helpObj.beforeShowEvent.subscribe(function(){
    		document.getElementById('obj'+objId).style.zIndex = 9999;   
    	});
    	
    	helpObj.hideEvent.subscribe(function(){
            document.getElementById('obj'+objId).style.zIndex = objZindex;   
        }); 
    	   	
    	helpObj.render();           
		YAHOO.util.Event.addListener(objCssId, activateType, helpObj.show, helpObj, true);
    }
    
    this.addFormDate = function(objId, objCssId, objZindex) {

    	var calendar = new YAHOO.widget.Calendar(objCssId+'_calendar',objCssId+'_container', { title:"Datum w&auml;hlen", close:true, navigator:true, iframe:true } );
        
        calendar.beforeShowEvent.subscribe(function(){
            document.getElementById('obj'+objId).style.zIndex = 9999;   
        });
        
        YAHOO.util.Event.addListener(objCssId+'_trigger', "click", calendar.show, calendar, true);
        calendar.selectEvent.subscribe(function(type,args,obj) {
            var dates = args[0];
            var date = dates[0];
            var year = date[0], month = date[1], day = date[2];
            var dateInput = document.getElementById(objCssId);
            dateInput.value = day + "." + month + "." + year;
            document.getElementById('obj'+objId).style.zIndex = objZindex;   
            calendar.hide();
        }, calendar, true);
        calendar.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
        
        calendar.cfg.setProperty("MDY_DAY_POSITION", 1);
        calendar.cfg.setProperty("MDY_MONTH_POSITION", 2);
        calendar.cfg.setProperty("MDY_YEAR_POSITION", 3);
        
        calendar.cfg.setProperty("MD_DAY_POSITION", 1);
        calendar.cfg.setProperty("MD_MONTH_POSITION", 2);
        
        calendar.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]);
        calendar.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
        calendar.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]);
        calendar.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
        calendar.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
        calendar.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
        
        calendar.render();
    }
    
    var fireObjHeightChange = function(objId, yVal) {    	
    	var basisTop = $('#'+objId).position().top;

    	$('#'+objId).parent().children().not('#'+objId).each( function() {
    		if ($(this).position().top >= basisTop) {
    			// reduce/raise top
    			$(this).css('top', $(this).position().top + yVal);
    		}
    		
    		// check editor height
    		var tmpTop = $(this).position().top + $(this).outerHeight();
    		if (tmpTop > editorHeight) {
    			
    			$('#'+compositionId).css('minheight', editorHeight);

    			if ($.browser.msie) {
        			$('#'+compositionId).css('height', editorHeight);    				
    			}
    		}
    		
    		// check objects parent height
    		var parent = $(this).parent();
    		var parentBottom = parent.position().top + parent.outerHeight();
    		var elementBottom = $(this).position().top + $(this).outerHeight();
    		
    		if (elementBottom > parentBottom) {
    			var newMinHeight = elementBottom - parent.top;
    			var yChange = newMinHeight - parent.outerHeight();
    			
    			// increase parents height
    			parent.outerHeight(newMinHeight);
    			
    			fireObjHeightChange(parent.attr('id'), yChange);
    		}
    	})
    }
    
    var showObject = function(objId) {
    	if ($('#'+objId).css('display') == 'none') {
    		$('#'+objId).css('display', 'block');
    		
    		var yChange = $('#'+objId).outerHeight();
    		fireObjHeightChange(objId, yChange);
    	}
    }
    
    var hideObject = function(objId) {
    	if ($('#'+objId).css('display') == 'block') {
    		var yChange = -1 * $('#'+objId).outerHeight();
    		fireObjHeightChange(objId, yChange);
    		
    		$('#'+objId).css('display', 'none');
    	}
    }
	
	   
}

var c33 = new c33();

YAHOO.util.Event.onDOMReady(function() {

$('#formradio37').attr('selected', true);
});
