
/**
    ImageGallery
  **/

function ImageGallery( img_path, preview_width, preview_type )
{
//	this.prototype.prototype = new Object();
	
	this.msg_delete_success = "Delete successful!";
	this.msg_update_success = "Update successful!";

	this.preview_width = preview_width;
    this.preview_type = preview_type;

	this.edit_callback;
	
	this.img_path = img_path;
	
	this.editImage = function( sId, sType )
	{
		displayLoading( true );
		enableFields( false, false, "frm_img_gallery" );
		
		var sUrl = "gallery/file_process.php?function=" + sType + "&id=" + sId + "&caption=" + $( "caption:" + sId ).value;
		getXMLHttpRequestText( sUrl, ( sType == "deleteCaption" ) ? this.deleteImage_callback : this.updateImage_callback);
	}
	
	this.deleteImage_callback = function( sId )
	{
		edit_callback( "delete" );
	}
	
	this.updateImage_callback = function( sId )
	{
		edit_callback( "update" );
	}
	
	/**  unable to use as attribute?  **/
	function edit_callback( sType )
	{
		switch( sType )
		{
			case "delete":
				location.reload();
				alert( gallery.msg_delete_success );
			break;
			case "update":
				alert( gallery.msg_update_success );
			break;
		}
		
		enableFields( true, false, "frm_img_gallery" );
		displayLoading( false );
	}
	
/*	
	this.edit_callback = function( sType )
	{
		alert( "HELLO" );

		switch( sType )
		{
			case "delete":
				location.reload();
				alert( this.msg_delete_success );
			break;
			case "update":
				alert( this.msg_update_success );
			break;
		}
		
		enableFields( true, false, "frm_img_gallery" );
		displayLoading( false );
	}
	*/
	
	this.displayImage = function( sId )
	{
        var window_dimensions = getWindowDimensions();
        var scroll_dimensions = getScrollDimensions();
        
        var x = ( ( window_dimensions.x  - this.preview_width ) / 2 ) + scroll_dimensions.x;
        var y = ( ( window_dimensions.y  - this.preview_width ) / 2 ) + scroll_dimensions.y;
        
        if( ( this.preview_type == 'left' ) || ( this.preview_type == 'right' ) )
        {
            var large_preview = $( 'large_preview_' + this.preview_type );
            
//            y -= 320;
            
            if( y < 35 )  y = 35;
            
            large_preview.style.marginTop = y + 'px';
        }
        else
        {
            this.displayCanvas();
            this.displayPreview();
            
            var large_preview = $( 'large_preview' );
            
    		large_preview.style.left = x + 'px';
    		large_preview.style.top = y - ( this.preview_width / 3 ) + 'px';
        }
        
        large_preview.style.width = this.preview_width + 4 + 'px';
        large_preview.style.display = 'block';
        
        var large_img = $( 'large_img' );
        
        large_img.src = this.img_path + "/" + sId + ".jpg";
        large_img.style.width = this.preview_width + 'px';
        
        $( 'large_titlebar' ).innerHTML =  '<span style="float: left;"></span><span>X&nbsp;</span>';
        $( 'large_caption' ).innerHTML = '<img src="../img/cravings_logo_titlebar.jpg" />';/* $( 'caption:' + sId ).value;*/
	}
    
    this.displayPreview = function(  )  {
        var preview = document.createElement( 'div' );
        
        preview.onclick = function()  {  remove( this ); remove( $( 'canvas' ) );  }
        preview.id = 'large_preview';
        preview.innerHTML = 
            "<div id='large_titlebar'></div>" + 
            "<img src='' id='large_img' /></div>" +
            "<div id='large_caption'></div>";

        document.body.appendChild( preview );
    }
    
    this.displayCanvas = function()
    {
        var dimensions = getWindowDimensions();
        var canvas = document.createElement( 'div' );

		canvas.onclick = function()  {  remove( this ); remove( $( 'large_preview' ) );  }
        canvas.id = "canvas";
        canvas.style.height = document.body.scrollHeight + 'px';
        canvas.style.width = document.body.scrollWidth + 'px';
        
        document.body.appendChild( canvas );
    }
}




function displayLoading( bDisplay )
{
	$( 'large_caption' ).innerHTML = 
		bDisplay ? "<img src='loading.gif' />" : "";
}

function toggleDisplay( sId )
{
   $( sId ).className = 
		( ( $( sId ).className == "display" ) ? "hide" : "display" );
}

function enableFields( bEnable, bClear, sForm )
{
	var iFields = $( sForm ).elements.length;
	var element = null;
    
	for( i = 0; i < iFields; i++ )
    {
        element = $( sForm ).elements[ i ];

        element.disabled = !bEnable;
        if( bClear )  element.value = "";
    }
}

function hide( element )  {
    element.style.display = 'none';
}

function remove( element )  {
    element.parentNode.removeChild( element );
}




function $( sId )  {  return document.getElementById( sId );  }