
function edx_blendTo(obj, goal, step, time) {
    goOn=false;
    if (obj.currOpacity>goal) {
	obj.currOpacity-=step;
	if(obj.currOpacity<=goal) {
	     obj.currOpacity=goal;
	} else {
	     goOn=true;
	}
	if (obj.blendIn==true) goOn=false;
    } else if (obj.currOpacity<goal) {
	obj.currOpacity+=step;
	if(obj.currOpacity>=goal) {
	     obj.currOpacity=goal;
	} else {
	     goOn=true;
	}
	if (obj.blendIn==false) goOn=false;
    }

    if (obj.currOpacity == 0) obj.style.display="none";

    obj.style.opacity=obj.currOpacity/100;
    obj.style.filter = 'Alpha(opacity='+obj.currOpacity+')';

    if (goOn) window.setTimeout(function(){edx_blendTo(obj, goal, step, time);},time);
    
}


function edx_floating_pages_openPopup() {

    var flash_objects=document.getElementsByTagName("OBJECT");
    for(i=0; i<flash_objects.length; i++) {
	flash_objects[i].style.visibility="hidden";
    }
    $("edx_floating_page_overlay").style.opacity=0;

    $("edx_floating_page_overlay").style.filter = 'Alpha(opacity=0)';
    $("edx_floating_page_overlay").style.display="block";
    $("edx_floating_page_overlay").currOpacity =0;
//     $("edx_floating_page_overlay").style.height = document.body.offsetHeight+"px";
//     $("edx_floating_page_overlay").style.width = document.body.offsetWidth+"px";

// var s=getWinSize(window); 
//  var h = ((document.body.scrollHeight > s.height) ? document.body.scrollHeight : s.height);
//  var w = ((document.body.scrollWidth > s.width) ? document.body.scrollWidth : s.width); 
// 
//     $("edx_floating_page_overlay").style.height = h+"px";
//     $("edx_floating_page_overlay").style.width = w+"px";


    $("edx_floating_page_content").style.display="block";
    $("edx_floating_page_content").currOpacity =0;

    $("edx_floating_page_close").style.filter = 'Alpha(opacity=0)';
    $("edx_floating_page_close").style.display="block";
    $("edx_floating_page_close").currOpacity =0;

//     $("rr_DC_popup").style.top=(document.documentElement.scrollTop+100)+"px";
//     $("edx_floating_page_content").style.left=((document.body.offsetWidth/2)-($("edx_floating_page_content").offsetWidth/2))+"px";

    edx_blendTo($("edx_floating_page_overlay"),90, 5, 20);
    edx_blendTo($("edx_floating_page_content"),100, 10, 20);
    edx_blendTo($("edx_floating_page_close"),100, 10, 20);

}

function edx_floating_pages_closePopup() {

 var flash_objects=document.getElementsByTagName("OBJECT");
 for(i=0; i<flash_objects.length; i++) {
     flash_objects[i].style.visibility="visible";
 }
    $("edx_floating_page_content").style.overflow="hidden";
    edx_blendTo($("edx_floating_page_overlay"), 0, 5, 20); 
    edx_blendTo($("edx_floating_page_content"),0, 10, 20);
    edx_blendTo($("edx_floating_page_close"),0, 10, 20);


}

edx_windowResize=function() {
 win = window;
 var s = new Object();
 if(typeof win.innerWidth != 'undefined') {
    s.width = win.innerWidth;
    s.height = win.innerHeight;
 } else {
    var obj = document.body;
    s.width = parseInt(obj.clientWidth);
    s.height = parseInt(obj.clientHeight);
 }

 var h = ((document.body.scrollHeight > s.height) ? document.body.scrollHeight : s.height);
 var w = ((document.body.scrollWidth > s.width) ? document.body.scrollWidth : s.width); 

  if($("edx_floating_page_content").offsetHeight+30>h) h=$("edx_floating_page_content").offsetHeight+30;

  $("edx_floating_page_overlay").style.height = h+"px";
  $("edx_floating_page_overlay").style.width = w+"px";
// $("edx_floating_page_content").style.border="1px solid red"
$("edx_floating_page_close").style.width = $("edx_floating_page_content").offsetWidth+"px";
  $("edx_floating_page_content").style.left=( (document.body.offsetWidth/2)-($("edx_floating_page_content").offsetWidth/2))+"px";
//   $("edx_floating_page_close").style.left  =(((document.body.offsetWidth/2)-($("edx_floating_page_content").offsetWidth/2))+ 40 )+"px";
  $("edx_floating_page_close").style.left  =(((document.body.offsetWidth/2)-($("edx_floating_page_content").offsetWidth/2)) )+"px";

  $("edx_floating_page_content").style.top=(document.documentElement.scrollTop+50)+"px";
  $("edx_floating_page_close").style.top=(document.documentElement.scrollTop+30)+"px";

}

function edx_getFormValues(frm) {
	var objForm;
	var submitDisabledElements = true;
	var prefix="";
	var sXml="";
	objForm = frm;
	if (objForm && objForm.tagName == 'FORM')
	{
		var formElements = objForm.elements;
		for( var i=0; i < formElements.length; i++)
		{
			if (!formElements[i].name)dx_js
				continue;
			if (formElements[i].name.substring(0, prefix.length) != prefix)
				continue;
			if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
				continue;
			if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false)
				continue;
			var name = formElements[i].name;
			if (name)
			{
				if (sXml != '')
					sXml += '&';
				if(formElements[i].type=='select-multiple')
				{
					for (var j = 0; j < formElements[i].length; j++)
					{
						if (formElements[i].options[j].selected == true)
							sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
					}
				}
				else
				{
					sXml += name+"="+encodeURIComponent(formElements[i].value);
				}
			} 
		}
	}
	return sXml;
}


edx_processForms=function(e) {
    var el=Event.element(e);
    Event.stop(e);
     new Ajax.Request(el.action+"&edx=1",
 	    {
 	      parameters: edx_getFormValues(el)+'&edx_get_floating_page_ajax=1',
 	      method: 'post',
 	      onComplete: function(response) {
 		    $("edx_floating_page_content").style.overflow="auto";
 		    $("edx_floating_page_content").style.display="block";
 		    $("edx_floating_page_content").style.left="0";

		    var s=response.responseText.split("<script>");
 		    $("edx_floating_page_content").innerHTML=s[s.length-1];
		    edx_windowResize();
		    for(var i=0; i<s.length-1;i++) eval(s[i]);
 
		    s=$("edx_floating_page_content").getElementsByTagName("FORM");
 		    for(var i=0; i<s.length;i++) Event.observe(s[i], "submit", edx_processForms);
 
       }});

    Event.stop(e);
}

edx_openFloatingPage=function(e) {
    var el=Event.element(e);
    while(el.tagName!="A" && el!=null) {
	el=$(el).up();
    }

    Event.stop(e);

    $("edx_floating_page_content").style.left="0";
    $("edx_floating_page_content").innerHTML='<img style="margin:10px;" src="typo3conf/ext/edx_floating_pages/loading.gif" />';
//     $("edx_floating_page_content").style.left=((document.body.offsetWidth/2)-($("edx_floating_page_content").offsetWidth/2))+"px";

    edx_windowResize();
    edx_floating_pages_openPopup();
    $("edx_floating_page_content").style.width="auto";

    new Ajax.Request(el.href,
	    {
	      parameters: 'edx_get_floating_page_ajax=1',
	      method: 'post',
	      evalJS: 'force',
	      onComplete: function(response) {

		   $("edx_floating_page_content").style.overflow="hidden";
		   $("edx_floating_page_content").style.display="block";
// 		   $("edx_floating_page_content").style.left="0";
// alert("000");
		    var s=response.responseText.split("<script>");
if($("edx_ContentSlider_pagination") != "undefined"){
 		    $("edx_floating_page_content").innerHTML=s[s.length-1];
}
		    edx_windowResize();
		    for(var i=0; i<s.length-1;i++) eval(s[i]);

		    s=$("edx_floating_page_content").getElementsByTagName("FORM");
		    for(var i=0; i<s.length;i++) Event.observe(s[i], "submit", edx_processForms);

// 		    window.setTimeout(function() {$("edx_floating_page_overlay").style.height = document.body.scrollHeight+"px";alert(document.body.scrollHeight);},2000);
	      }});
if( $("edx_ContentSlider_pagination") ){
	$("edx_ContentSlider_pagination").remove();
}

}

// edx_addEventListener = function() {
//      alert("TEST");
// }
// 
// edx_attachEvent = function() {
//      alert("TEST");
// }

edx_initFloatingPages=function() {
    var aTags=document.getElementsByTagName("A");
    var p="";
    Event.observe($("edx_floating_page_overlay"), "click", edx_floating_pages_closePopup);
    for(var i=0; i<aTags.length; i++) {
// 	p=$(aTags[i]).getAttribute("rel");
	if(aTags[i].href.match(/edx=1/)) Event.observe(aTags[i], "click", function(e) {edx_openFloatingPage(e);});
    }

    Event.observe(window, "resize", edx_windowResize); 

//       if (window.addEventListener) {
// 	Element.prototype.edx_backup_addEventListener=Element.addEventListener;
//         Element.prototype.addEventListener = edx_addEventListener;
//       } else {
// 	Element.prototype.edx_backup_attachEvent=Element.attachEvent;
//         Element.prototype.attachEvent = edx_attachEvent;
//       }
}

Event.observe(window, "load", edx_initFloatingPages); 

