CRS = {};

/* Firmenfeld ein/ausblenden */
CRS.toggleCompanyInputField = function (status, selection) {
	if (status == true) {
		$('#row_'+selection+'_company').fadeIn();
	} else {
		$('#row_'+selection+'_company').fadeOut();
	}
}

CRS.clearText = function(field)
{
    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;
}

/**
 * Classs for toggle-list
 *
 * @param    {String}       listId - id-name from the ul-tag
 * @returns  {Object}       the API with public members
 */
CRS.ToggleList = function(listId)
{
    var _root = "";
    var _speed = "slow"
    var _unique = false;


    // --------------------- private-area [methods] ------------------------- //


    /**
     * Constructor - hides all toggle-list-elements
     *
     * @param    {String}         listId - listId - id-name from the ul-tag
     */
    function __construct(listId)
    {
        if (!listId) {throw "Constructor-parameter must be a string";}

        _root = listId;
        $(_root + " a.jsToggle").removeClass("jsActive");
        $(_root + " .jsToggle:not(a.jsToggle)").hide(0);
        _open();
    }

    /**
     * Opens all toggle-elements witch has the class name "jsOpen"
     *
     * @returns  {void}
     */
    function _open()
    {
        var index = 0;
        $(_root + " a.jsToggle").each(function(){
            if ($(this).hasClass("jsOpen"))
            {
                $(this).addClass("jsActive");
                $(_root + " .jsToggle:not(a.jsToggle):eq("+index+")").show(0);
            }
            index++;
        });
    }


    /**
     * Close all list-points
     *
     * @returns  {void}
     */
    function _closeAll(currentIndex)
    {
        var index = 0;
        
        $(_root + " a.jsToggle").each(function() {
            if (index != currentIndex)
            {
                $(this).removeClass("jsActive");
                $(_root + " .jsToggle:not(a.jsToggle):eq("+index+")").hide(_speed);
            }
            else
            {
                $(this).toggleClass("jsActive");
                $(_root + " .jsToggle:not(a.jsToggle):eq("+index+")").toggle(_speed);
            }
            index++;
        });
    }


    /**
     * Opens toggle-list-elements by number
     *
     * @param    {Array}         listArray - numbers of the toggle-list-elements, witch sould be open
     * @returns  {void}
     */
    function _toggle(listArray)
    {
        for (var i=0; i<listArray.length; i++)
        {
            $(_root + " a.jsToggle:eq(" + (listArray[i]-1) + ")").toggleClass("jsActive");
            $(_root + " .jsToggle:not(a.jsToggle):eq(" + (listArray[i]-1) + ")").toggle(_speed);
        }
    }

    
    __construct(listId);

    // --------------------- public-area [API] ------------------------------ //
    return {


        /**
         * Opens a toggle-list-element
         *
         * @param    {HTMLObject|Array}         handlerObject - HTMLObjet from the event-handler object (this)
         *                                      or Array with numbers (indexes)
         * @returns  {void}
         */
        toggle: function(handlerObject)
        {
			// toggle multiple lists
            if (handlerObject.constructor == Array) {
                _toggle(handlerObject);
                return;
            }

            var index = $(_root + " a.jsToggle").index($(handlerObject));
            if (_unique)
            {
                _closeAll(index);
            }
            else
            {
                $(_root + " .jsToggle:not(a.jsToggle):eq("+index+")").toggle(_speed);
                $(_root + " a.jsToggle:eq(" + index + ")").toggleClass("jsActive");
            }
            
            return false;
        },


        /**
         * Speed for the toggle-animation
         *
         * @param    {Mixed}         speed - based on jQuery-speed-handling
         * @returns  {void}
         */
        setSpeed: function(speed)
        {
            _speed = speed;
        },


        /**
         * If "_unique" ist "true", all other list-points will closed, when one is open
         *
         * @param    {Boolean}         value - true or false
         * @returns  {void}
         */
        setUnique: function(value)
        {
            if (value.constructor != Boolean) {throw "parameter from setUnique must from typof boolean";}
            _unique = value;
        }
    }
}


CRS.activate_button = function (handleObject, buttonObject) {
	var button = "#"+buttonObject;
	if ( $(handleObject).attr('checked')){
		$(button).removeClass('disabled');
		$(button).attr ('disabled', false);
	} else {
		$(button).addClass('disabled');
		$(button).attr ('disabled', true);
	}
}

// Countdown für Weiterleitung
sek = 8;
CRS.countdown = function(){
	sek--;
	document.getElementById('counter').innerHTML = sek;
	if(sek > 0)setTimeout('countdown()', 1000);
	else location.href='index.php';
}


// Prüfen, ob Feld nur Zahlen enthält
CRS.numbersonly = function (myfield, e, dec) {
	var key;
	var keychar;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
	return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	return true;
	
	// numbers
	else if ((("0123456789/-").indexOf(keychar) > -1))
	return true;
	
	// decimal point jump
	else if (dec && (keychar == ".")) {
		myfield.form.elements[dec].focus();
	return false;
	} else
	return false;
}

// Layer ein- und ausblenden
CRS.fsLayer = function (objectLayer, inOut, secondLayer) {
	var objectLayer = "#"+objectLayer;
	if (inOut == true)
	{
		$("#layer").css({'opacity':'0'});
		$("#layer").css({'display':'block'});
		$("#layer").animate({
			opacity: 1,
  			}, 500, function() {
			$(objectLayer).css({'z-index':'1001'});
			$(objectLayer).fadeIn();
			$(".jScrollPaneContainer").fadeIn();
		});
	} else
	{
		$(objectLayer).fadeOut(function() {
			if (secondLayer == true)
			{

			} else 
			{
				$("#layer").animate({
					opacity: 0,
					}, 500, function() {
					$("#layer").css({'display':'none'});
				});
			}
		});
	}	
}


// Funktion zum Layer einblenden //
CRS.openLayer = function (layer) {
	//alert ("blubb");
	$("#layer").fadeIn();
	$(layer).fadeIn();
	
}
// Funktion zum Layer ausblenden //
CRS.closeLayer = function(layer) {
	$("#layer").fadeOut();
	$(layer).fadeOut();
}

/* Tooltip */
$(function() {
	$('#room *').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		fade: 250
	});
});

CRS.showBlogArticle = function (id)
{
	var objectLayer = "#blog_article_" + id;
	var htmlContent = $(objectLayer).html();
	$("#text_layer_content").html(htmlContent);
	$("#text_layer").fadeIn();		
}
