/*
 * Created on 30.10.2008
 *
 * yui_functions.js
 * 
 * author: rwelbers <rwelbers@brainpool.de>
 */

/** Ajax **/

function ajax(method, url, action, div, formId, animation){
	if(typeof animation == 'undefined') animation = 'false';
	if(action != '') action='?action='+action;
	if(typeof div == 'undefined'){
		return;
	}
	if(url == ''){
		return;
	}
	if(url == 'ajax.php') url = project + '/includes/php/ajax.php';
	if(typeof method == 'undefined' || method == '') method = 'GET';
	
	if(typeof formId !== 'undefined' && formId != '') {
		formObj = document.getElementById(formId);
		YAHOO.util.Connect.setForm(formObj);
	} 
	
	var dummyDiv = document.getElementById('ajaxDummyDiv');
	var targetDiv = document.getElementById(div);
	var animationHeight = 0;
	if(!targetDiv || typeof(targetDiv) == 'undefined' || targetDiv == '')
	{
		YAHOO.log(typeof(targetDiv) +'('+div+')'+'not set?','error');
	}
	var callback = {
		success: function(o) {
			YAHOO.log('AJAX Request Success '+url+action, 'info'); 
			YAHOO.log('AJAX Request Targetdiv: '+div, 'info');
			//alert(document.getElementById(div));
			if(targetDiv)
			{
				if(animation == true)
				{
					dummyDiv.innerHTML = o.responseText;
					var anim = collapseDiv(targetDiv);
					animCallBack = function()
					{
						animationHeight = dummyDiv.offsetHeight;
						//animationHeight = animationHeight+15;
						expandDiv(targetDiv, animationHeight);
						targetDiv.innerHTML = dummyDiv.innerHTML;
						dummyDiv.innerHTML = '';
					}
					anim.onComplete.subscribe(animCallBack);
				}
				else
				{
					targetDiv.innerHTML = o.responseText;
				}
			}	
			else
				YAHOO.log('AJAX Request Targetdiv: '+div+' existiert nicht', 'error');
		},
		failure: function(o) {
			YAHOO.log('AJAX Request Failed: '+url, 'error'); 
		}
	}
	YAHOO.util.Connect.asyncRequest(method, url+action, callback);
	//return false;
}

function collapseDiv(div)
{
	var attributes = {
		//height: { to: 0 }
		opacity: { to: 0.2 }
	};
	
	var myAnim = new YAHOO.util.Anim(div.id, attributes, 0.2);
	myAnim.animate();
	return myAnim;
}
function expandDiv(div, height)
{
	//alert(document.getElementById(div).offsetHeight);
	var attributes = {
		height: { to: height },
		opacity: { to: 1 }
	};
	
	var myAnim = new YAHOO.util.Anim(div.id, attributes, 0.2);
	myAnim.animate();
	return myAnim;
}


/*...überflüssig, weils dadrpber schon so was ähnliches gibt..*/
function setTargetHeight(height, target){
    var attributes = {
               height: {
                           to: height 
               }
    };
    var anim = new YAHOO.util.Anim(target, attributes, 0.3, YAHOO.util.Easing.easeIn);
    anim.animate();
}
/*...überflüssig, weils dadrpber schon so was ähnliches gibt..*/
