/** Dikdörtgen bir alan  **/
var AlbumYapBoxVars = {
	id : 0,
	parent_pre : 'parent_',
	top_prefix : 'top_',
	body_pre : 'body_',
	body_l_pre : 'body_l_',
	body_r_pre : 'body_r_'
}

/*
 4 tür dialog olacak
 1 : varsayılan ve içi boş **id sini biz veriyoruz**
 2 : nesneyi direkt veriyoruz. verilen nesneyi yönetiyoruz (verilen nesnenin id si )
 3 : varsayılan çerçeve içerik verdiğimiz id'nin görselliği (**id sini biz veriyoruz**)
 4 : boş bir div, içinde div vs gösterme amacıyla kullanılır. (**id sini biz veriyoruz**)
*/

var AlbumYapBox = Class.create();
AlbumYapBox.prototype = {
	initialize : function(_box_type, _box_id, hide_on_over, _effects){
		this.BOX_DEFAULT = 1;this.BOX_USER = 2;this.BOX_USER_TYPE2 = 3;
		this.BOX_EMPTY_HOLDER=4;
		this.box_type = _box_type;
		this.box_id = _box_id;this.effects = _effects;
		this.hider = null;this.isMouseIn = false;
		this.hideonover = hide_on_over;this.timeout = 200;
		this.listeners = new EventListenerBase();
		if(this.box_type == 4){
		this.initEmptyHolder();
		}else{
		this.init();
		}
	},
	initElements : function(){this.parent_box_id = null;this.box_body_id = null;},
	setClassName : function(){},
	setParentStyle : function(options){$(this.parent_box_id).setStyle(options);},
	setBodyStyle : function(options){$(this.box_body_id).setStyle(options);},
	setTimeout : function(_timeout){this.timeout = _timeout;},
	init : function(){
		var box_elem = null;
		var box_body = null;
		var tmpStr = new StringBuffer();
		
		this.parent_box_id = AlbumYapBoxVars.parent_pre + this.box_id;

		if(this.box_type == this.BOX_DEFAULT || this.box_type == this.BOX_USER_TYPE2){
			box_elem = Builder.node('div', {id:this.parent_box_id, style:'width:300px;position:absolute;display:none;z-index:1500;'});
			document.body.insertBefore(box_elem, document.body.childNodes[0]);
			
			if(this.box_type == this.BOX_USER_TYPE2){
				this.box_body_id = AlbumYapBoxVars.body_pre + this.box_id;
			}else{
				this.box_body_id = this.box_id;
			}
			
			tmpStr.add('<table cellspacing="0" cellpadding="0" style="width:100%;padding:0px;"><tr><td class="aybox_corner" style="background:url(http://btcool.simplecdn.net/images/corners/albl/left.gif) no-repeat;"></td><td class="aybox_mid"></td><td class="aybox_corner" style="background:url(http://btcool.simplecdn.net/images/corners/albl/right.gif) no-repeat;"></td></tr>');
			tmpStr.add('<tr><td class="aybox_mid"></td><td style="border:1px solid #d7d7d7;" id="').add(this.box_body_id).add('"></td><td class="aybox_mid"></td></tr>');
			tmpStr.add('<tr><td class="aybox_corner" style="background:url(http://btcool.simplecdn.net/images/corners/albl/left_bot.gif) no-repeat;"></td><td class="aybox_mid"></td><td class="aybox_corner" style="background:url(http://btcool.simplecdn.net/images/corners/albl/right_bot.gif) no-repeat;"></td></tr>');
			tmpStr.add('</table>');
			
			$(this.parent_box_id).update(tmpStr.toString());
		}
		
		if(this.box_type == this.BOX_DEFAULT){
			
		}else if(this.box_type == this.BOX_USER){
			box_elem = $(this.box_id);
			this.parent_box_id = this.box_id;
		}else{
			$(this.box_body_id).appendChild($(this.box_id));
		}
		
		if(this.hideonover == true){
			Event.observe(box_elem, 'mouseover', this.stopHider.bindAsEventListener(this));
			Event.observe(box_elem, 'mouseout', this.startHider.bindAsEventListener(this));
		}
	},
	initEmptyHolder : function(){
		var box_elem = null;
		var box_body = null;
		var tmpStr = new StringBuffer();
		this.parent_box_id = AlbumYapBoxVars.parent_pre + this.box_id;
		box_elem = Builder.node('div', {id:this.parent_box_id, style:'position:absolute;display:none;z-index:1500;'});
		document.body.insertBefore(box_elem, document.body.childNodes[0]);
		this.box_id = this.parent_box_id;
	},
	showBorder : function(){
	},
	setContent : function(content_type, content){
		if(content_type == 'html'){
			if(Prototype.Browser.IE){
				$(this.box_id).innerHTML = content;
			}else{
				$(this.box_id).update(content);
			}
		}else if(content_type == 'elem'){
			$(this.box_id).update('');
			$(this.box_id).appendChild(content);
		}
	},
	setWidth : function(w){
		$(this.parent_box_id).setStyle({'width': w + 'px'});
	},
	getWidth : function(){
		return $(this.parent_box_id).getDimensions().width;
	},
	getHeight : function(){
		return $(this.parent_box_id).getDimensions().height; 
	},
	show : function(elem){
		this.showBorder();
		var pos = Element.cumulativeOffset(elem);
		$(this.parent_box_id).setStyle({'display' : 'block','top': pos[1] + 'px','left': pos[0] + 'px' });
	},
	showPositioned : function(x, y){
		this.stopHider(); 
		var width = Client.viewportWidth();
		var elem = $(this.parent_box_id);
		if((x + elem.getDimensions().width) > width){
			x = x - elem.getDimensions().width;
		}
		elem.setStyle({'display':'block','top': y + 'px','left': x + 'px' });
	},
	startHider : function(event){
		if(this.hider != null){
			clearTimeout(this.hider);
		}
		this.hider = setTimeout(this.hide.bindAsEventListener(this), this.timeout);        
	},
	stopHider : function(event){
		if(this.hider != null){
			clearTimeout(this.hider);
		}
	},
	hide : function(){
		this.stopHider();
		$(this.parent_box_id).setStyle({display:'none'});
		this.listeners.notifyListeners('hide', '');
	},
	addListener : function(_callback, _caller){
		this.listeners.addListener(_callback, _caller);
	},
	resetHider : function(){
		this.startHider();
	}
}