/*
	This javascript class is responsible for showing a up. 
	It will adjust the position when the user scroll (horizon and vertical)
	
	Usage::

	url: the url that it need to async call to get content
	elementID: id of the document element it will populate the data into
	popUp(url, elementID) 
	
	
*/

	function popUp(url, elementID) {
	
		setHeight();
		popUpRelocate(elementID);
		asyncGet(url, 'updateCOPage', {'elementId': elementID});

		document.getElementById('co_top').style.display = "block";
		document.getElementById('pop_up_bg').style.display = "block";
		
		document.body.onscroll = popUpRelocate;
		window.onscroll = popUpRelocate;
	
	}
	
	function popUp(url, elementID, url_params) {
	
		setHeight();
		popUpRelocate(elementID);
		asyncGet(url, 'updateCOPage', {'elementId': elementID}, url_params);
		document.getElementById('co_top').style.display = "block";
		document.getElementById('pop_up_bg').style.display = "block";
		document.body.onscroll = popUpRelocate;
		window.onscroll = popUpRelocate;
	
	}
	
	function closePopUp() {
		document.getElementById("co").style.display="none"; 
		document.getElementById("co_top").style.display="none"; 
		document.getElementById("pop_up_bg").style.display = "none";
	}

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


	function centerX() {
		
		var centerX;
		if( self.innerHeight ) {
		  centerX = self.innerWidth;
		} else if( document.documentElement && document.documentElement.clientHeight ) {
		  centerX = document.documentElement.clientWidth;
		} else if( document.body ) {
		  centerX = document.body.clientWidth;
		}
		
		return centerX;
	} 
	
	function centerY() {
	
		var centerY;
		if( self.innerHeight ) {
		  centerY = self.innerHeight;
		} else if( document.documentElement && document.documentElement.clientHeight ) {
		  centerY = document.documentElement.clientHeight;
		} else if( document.body ) {
		  centerY = document.body.clientHeight;
		}
	
		return centerY;	
	}
	
	function popUpRelocate() {
	
		var leftOffset = scrolledX() + 50;
		var topOffset = scrolledY() + 50;
		
		document.getElementById('co').style.top = topOffset + "px";
		document.getElementById('co').style.left = leftOffset + "px";
		
	}
	
	function showAjaxLoader() {
	
		setAjaxHelperHeight();
		document.getElementById('ajax_loader').style.display = "block";
	}
	
	function closeAjaxLoader() {
		document.getElementById('ajax_loader').style.display = "none";
	}
	
	function setAjaxHelperHeight(){

			var container = document.getElementById('container');
            if (!container) { return; };

            var pixelHeight = container.offsetWidth;
            var ajax_loader = document.getElementById('ajax_loader');

            if (!ajax_loader) { return; };

            ajax_loader.style.height = pixelHeight + "px";

	}
	
	
	function setHeight(){

            var container = document.getElementById('container');
            if (!container) { return; };

            var pixelHeight = document.body.offsetHeight;

            var co_top = document.getElementById('co_top');

            if (!co_top) { return; };

            co_top.style.height = pixelHeight + "px";
            
            var pop_up_bg = document.getElementById('pop_up_bg');

            if (!pop_up_bg) { return; };

            pop_up_bg.style.height = pixelHeight + "px";
	}
	
