// JavaScript Document

function isInDocument(el) 
{
    var html = document.body.parentNode;
    while (el) 
	{
        if (el === html) 
		{
            return true;
        }
        el = el.parentNode;
    }
    return false;
}

function fireCart($release_id,$cat_no_suffix) 
{
	myCartPopupRelocate();
	
	cartQuery($release_id,$cat_no_suffix);

	fadeInCartPopup();
 	document.getElementById("cart_popup").style.display = "block";
    document.getElementById("full_wrapper_mask").style.display = "block";
	
	if(isInDocument("media_embed"))
	{
		document.getElementById("media_embed").style.display = "none";
	}
	document.body.onscroll = myCartPopupRelocate;
	window.onscroll = myCartPopupRelocate;	

}

function AddToCartList($init)
{	
	if(!$init)
	{
		$init = false;
	}

	ajaxPost = cart_xmlhttpPost();
	if(!ajaxPost)
	{
		alert('Error setting up XMLHttpRequest');
	}

    ajaxPost.xmlHttpReq.open('POST', 'add_to_cart_list.php', true);
    ajaxPost.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
	ajaxPost.xmlHttpReq.onreadystatechange = function() 
	{
        if (ajaxPost.xmlHttpReq.readyState == 4) 
		{
            updateCartList(ajaxPost.xmlHttpReq.responseText);
        }
    }

	if($init)
	{
		var $qs = 'init=true';
	}
	else
	{
		var $qs = 'init=false';
	}
	
	ajaxPost.xmlHttpReq.send($qs);
}


function setCartOpacity( value ) 
{
    document.getElementById("cart_popup").style.opacity = value / 10;
    document.getElementById("cart_popup").style.filter = 'alpha(opacity=' + value * 10 + ')';
}

function fadeInCartPopup() 
{
	for( var i = 0 ; i <= 100 ; i++ )
    {
   		setTimeout( 'setCartOpacity(' + (i / 10) + ')' , 4 * i );
	}
}



function fadeOutCartPopup() 
{
	document.getElementById("cart_popup").innerHTML = "";
	document.getElementById("full_wrapper_mask").style.display = "none";

	for( var i = 0 ; i <= 100 ; i++ ) 
    {
		setTimeout( 'setCartOpacity(' + (10 - i / 10) + ')' , 4 * i );
	}

 	setTimeout('close_cart_popup()', 400 );

	AddToCartList();
}


function myCartPopupRelocate() 
{
 var scrolledX, scrolledY;
 if( self.pageYOffset ) {
   scrolledX = self.pageXOffset;
   scrolledY = self.pageYOffset;
 } else if( document.documentElement && document.documentElement.scrollTop ) {
   scrolledX = document.documentElement.scrollLeft;
   scrolledY = document.documentElement.scrollTop;
 } else if( document.body ) {
   scrolledX = document.body.scrollLeft;
   scrolledY = document.body.scrollTop;
 }

 var centerX, centerY;
 if( self.innerHeight ) {
   centerX = self.innerWidth;
   centerY = self.innerHeight;
 } else if( document.documentElement && document.documentElement.clientHeight ) {
   centerX = document.documentElement.clientWidth;
   centerY = document.documentElement.clientHeight;
 } else if( document.body ) {
   centerX = document.body.clientWidth;
   centerY = document.body.clientHeight;
 }

 var leftOffset = scrolledX + (centerX - 300) / 2;
 var topOffset = scrolledY + (centerY - 200) / 2;

 document.getElementById("cart_popup").style.top = topOffset + "px";
 document.getElementById("cart_popup").style.left = leftOffset + "px";
}



function cart_xmlhttpPost() 
{
    var xmlHttpReq = false;
    var self = this;

	try 
	{ 
		self.xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch (e) 
	{ 
		try 
		{ 
			self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
		catch (e) 
		{ 
			try 
			{ 
				self.xmlHttpReq = new XMLHttpRequest(); 
			}
			catch (e) 
			{ 
				return false; 
			}
		}
	}
	
	return self;
}

function cartQuery($release_id,$cat_no_suffix)
{
	document.body.style.cursor='wait';
	ajaxPost = cart_xmlhttpPost();
	if(!ajaxPost)
	{
		alert('Error setting up XMLHttpRequest');
	}

    ajaxPost.xmlHttpReq.open('POST', 'popup_add_to_cart.php', true);
    ajaxPost.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
	ajaxPost.xmlHttpReq.onreadystatechange = function() 
	{
        if (ajaxPost.xmlHttpReq.readyState == 4) 
		{
            updateCartQuery(ajaxPost.xmlHttpReq.responseText);
        }
    }
    
	var $qs = 'id=' + $release_id + '&suffix=' + $cat_no_suffix;
	
	ajaxPost.xmlHttpReq.send($qs);
	
}

function updateCartQuery(str)
{
    document.getElementById("cart_popup").innerHTML = str;
	document.getElementById("cart_popup").style.display="block";
	
	document.body.style.cursor='auto';

}

function updateCartList(str)
{
    document.getElementById("cart_list").innerHTML = str;
	
	document.body.style.cursor='auto';

}

function close_cart_popup()
{	
	document.getElementById("cart_popup").innerHTML = "";
	document.getElementById("cart_popup").style.display="none";
	if(isInDocument("media_embed"))
	{
		document.getElementById("media_embed").style.display="block";
	}
}


