﻿var details = new Array();

	var _current = null; //current opened object
	var _id = 0;

	function showDetails(id,featured){
		myUrl = 'http://' + document.location.hostname + '/index.php?a=ajax&action=getListing&b=';
		myUrl += id;
		if(featured){
			_ele = id+featured;
		}else{
			_ele = id;
		}

		if(_current != $('extended_'+_ele)){ //close it if not this, and open the chosen
			if(_current != null){
				_current.effect('height',{duration:300,transition: Fx.Transitions.linear}).start(_current.oldOffset);
				_current.innerHTML = "";
				_current.expanded=false;
				removeClass($(_id+'l'),'expanded');
			}

			//apply necessary class to the tmp layer
			if(hasClass($(_ele + 'l'),'bolding')){
					addClass($('tmp')	, 'bolding');
			}else{
					removeClass($('tmp'),'bolding');
			}
				
			//expand it
			if (details['_'+id+'_']){
				$('tmp').innerHTML = details['_'+id+'_'];
				$('extended_'+_ele).oldOffset = $('extended_'+_ele).offsetHeight; 
				$('extended_'+_ele).innerHTML = details['_'+id+'_'];
				newheight = $('tmp').offsetHeight;
				$('extended_'+_ele).effect('height',{duration:200,transition: Fx.Transitions.linear}).start(newheight);
				$('extended_'+_ele).expanded = true;
				addClass($(_ele+'l'),' expanded');
			}else{
				ajax = new Ajax(myUrl,{method:'get',update: $('tmp'),onComplete: function(){
						details['_'+id+'_'] = $('tmp').innerHTML;
						myTarget = $('extended_'+_ele);
						myTarget.oldOffset = myTarget.offsetHeight;
						var heightChange = new Fx.Style('extended_'+_ele,'height',{duration:200,transition: Fx.Transitions.linear});
						myTarget.innerHTML = $('tmp').innerHTML;
						newheight = $('tmp').offsetHeight;
						heightChange.start(newheight);
					}
					});
					ajax.request();
					$('extended_'+_ele).expanded = true;
					addClass($(_ele+'l'),'expanded');
				}
			_current = $('extended_' + _ele);
			_id = _ele;
		}else if (_current == $('extended_'+_ele)){ //close it
			$('extended_'+_ele).innerHTML = "";
			$('extended_'+_ele).effect('height',{duration:300,transition: Fx.Transitions.linear}).start($('extended_'+_ele).oldOffset);
			$('extended_'+_ele).expanded=false;
			removeClass($(_ele+'l'),'expanded');
			_current = null;
			_id = 0;
		}
				
	}	

function hasClass(ele, cls) {
	return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}

function addClass(ele, cls) {
	if (!this.hasClass(ele, cls))
		ele.className += " " + cls;
}

function removeClass(ele, cls) {
	if (hasClass(ele, cls)) {
		var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
		ele.className = ele.className.replace(reg, ' ');
	}
}

function toggleClass(id, srcCls, dstCls) {
	var ele = $(id);
	if (!ele)
		return;
	if (hasClass(ele, srcCls))
		removeClass(ele, srcCls);
	if (!hasClass(ele, dstCls))
		addClass(ele, dstCls);
}

function changeStyle(id,suffix){
	//if(!window.ie6) return;
			obj = $('wrapper_'+ id);
			obj.oriStyle = obj.getStyle('background-color');
			obj.setStyle('background-color','');
			addClass($(id+suffix),'over');
		}
function restoreStyle(id,suffix){
	//if(!window.ie6) return;
			obj = $('wrapper_'+ id);
			obj.setStyle('background-color',obj.oriStyle);
			removeClass($(id+suffix),'over');
}