			function absHeight( obj ) {	
				return obj.offsetHeight
			}

			function absWidth( obj ) {
				return obj.offsetWidth;
			}
		
			function absTop( obj ) {
				var iVal = 0;
				while ( obj != null ) {
					iVal += obj.offsetTop;
					if ( obj.nodeName == "BODY" ) 
						break;		
					obj = obj.offsetParent;
				}
				return iVal;
			}

			function absLeft( obj ) {
				var iVal = 0;
				while ( obj != null ) {
					iVal += obj.offsetLeft;
					if ( obj.nodeName == "BODY" ) 
						break;		
					obj = obj.offsetParent;
				}
				return iVal;
			}

			function setOpacity( pObj, pValue ) {
				pObj.style.filter = "alpha(opacity=" + ( pValue * 100 ) + ")";
				pObj.style.opacity = pValue;
			}

			function smoothTransitionCallBack( pCurrent, pNext, pPercent ) {
			
				return function() {
			
					var ipf = document.getElementById( "imagePreviewFadder" );
					var ipv = document.getElementById( "imagePreview" ).firstChild;
				
					if ( pPercent == 0 ) {
		
						ipf.src = "/home/images/" + pCurrent + ".jpg";

						ipf.style.visibility = "visible";
						ipf.style.left = absLeft( ipv );
						ipf.style.top = absTop( ipv );
						ipf.style.height = absHeight( ipv );
						ipf.style.width = absWidth( ipv );

						setOpacity( ipf, 1 );
						
						ipf.style.zIndex = 2;

						var divContainer = document.getElementById( "imagePreview" );
						ipv.src = "/home/images/" + pNext + ".jpg";

					} else

						setOpacity( ipf, ( ( 100 - pPercent ) / 100 ) );
						
						
					if ( pPercent == 100 ) {
					
						ipf.style.visibility = "hidden";

					} else {

						setTimeout( smoothTransitionCallBack( pCurrent, pNext, pPercent + 20 ), 50 );

					}
				
				}
				
			}

			function transitionCallBack( pCurrentImage, pMaxImage ) {
				return function() {
					
					var pNextImage = ( ( pCurrentImage + 1 ) > pMaxImage ? 1 : ( pCurrentImage + 1 ) );
					
					setTimeout( smoothTransitionCallBack( pCurrentImage, pNextImage, 0 ), 20 );
					
					setTimeout( transitionCallBack( pNextImage, pMaxImage ), 5000 );
				};
			}

			function imageSliderInit() {
				
				// 1 - imageCount
				var imageCount = 5;

				// Cache usage
				for ( var i = 1; i <= imageCount; i++ ) {
					( new Image() ).src = "/home/images/" + i + ".jpg";
				}

				setTimeout( 
					transitionCallBack( 1, imageCount ), 4000 );
				
				
			}

