﻿/*****************************************

	RoundedFrame Class
	-------------------

	P'tite lib pour les cadres
	arrondis car ça commence à
	bien faire de se les taper
	à la main

	Ils sont générés en <table>

	Require: Prototype Framework v1.6

****************************************/

var RoundedFrame = Class.create({

    initialize: function(){
		this.options = Object.extend({
			className: 'roundedWhiteFrame',
			contentClassName: '',
			style: {
				width: 'auto',
				height: 'auto'
			},
			content: '',
			inPlace: false
		}, arguments[0] || {});
        
        this.className = this.options.className;
        
       // this.content = new Element('div').addClassName(this.options.contentClassName);
		this.content = new Element('td').addClassName(this.className + '_m').setStyle({padding: '0px'}).addClassName(this.options.contentClassName);
		
		if($(this.options.content)){
			var container = $(this.options.content).up();
			this.content.update($(this.options.content).show());
		}
		
        this.htmlElement = new Element('table').addClassName(this.className);
        this.htmlElement.setStyle(this.options.style);
        
        
        this.htmlElement.insert(
            new Element('tbody').insert(
                new Element('tr').insert(
                    new Element('td').addClassName(this.className + '_nw').setStyle({padding: '0px'})
                ).insert(
                    new Element('td').addClassName(this.className + '_n').setStyle({padding: '0px'})
                ).insert(
                    new Element('td').addClassName(this.className + '_ne').setStyle({padding: '0px'})
                )
            ).insert(
                new Element('tr').insert(
                    new Element('td').addClassName(this.className + '_mw').setStyle({padding: '0px'})
                ).insert(
                    //new Element('td').addClassName(this.className + '_m').setStyle({padding: '0px'}).insert(this.content)
					this.content
                ).insert(
                    new Element('td').addClassName(this.className + '_me').setStyle({padding: '0px'})
                )
            ).insert(
                new Element('tr').insert(
                    new Element('td').addClassName(this.className + '_sw').setStyle({padding: '0px'})
                ).insert(
                    new Element('td').addClassName(this.className + '_s').setStyle({padding: '0px'})
                ).insert(
                    new Element('td').addClassName(this.className + '_se').setStyle({padding: '0px'})
                )
            )
        );
        
        if(this.options.inPlace)
			container.insert(this.html());
    
    },
    
    html: function(){
		return this.htmlElement;
    },
    
    insertInto: function(container) {
        $(container).insert(this.htmlElement);
    },
    
    getContent: function(){
        return this.content;
    },
    
    setHTMLContent: function(theContent){
		this.content.update(theContent);
		return this;
    },
    
    setContent: function(theContent){
		this.content.insert(theContent);
		return this;
    },
    
    show: function() {
		this.htmlElement.show();
		return this;
    },
    
    hide: function(){
		this.htmlElement.hide();
		return this;
    }
    
});