/**
 * Private Util Library
 *
 * @author Piotr Kowalski
 * @email piotr.kowalski@piecioshka.pl
 */

var pklib = {

	autor:"Piotr Kowalski",
	version:"0.2",
	lastModified:"2010/02/23",

	outerlink:function(){
		$("a").each(function(){
			if( $(this).attr("rel") == "outerlink" ){
				$(this).click(function(){
					window.open( $(this).attr("href") );
					return false;
				});
			}
		});
	},

	content:{
    
		clearfocus:function( objectToClear ){
			if( objectToClear == undefined ){
				return false;
			}
			var defaultValueOfObjectToClear = '';
			var valueOfObjectToClear = '';
			var typeObjectToClear = '';
	  
			objectToClear.bind('focus',function(e){
				defaultValueOfObjectToClear = $(this)[0].defaultValue;
				typeObjectToClear = $(this)[0].nodeName;
		  
				switch( typeObjectToClear ){
				case 'INPUT':
					valueOfObjectToClear = $(this).val();
					if( defaultValueOfObjectToClear == valueOfObjectToClear ){
						$(this).val('');
					}
					break;
				case 'TEXTAREA':
					valueOfObjectToClear = $(this).text();
					if( defaultValueOfObjectToClear == valueOfObjectToClear ){
						$(this).text('');
					}
					break;
				}
		  
			}).bind('blur',function(e){
				switch( typeObjectToClear ){
				case 'INPUT':
					valueOfObjectToClear = $(this).val();
					if( valueOfObjectToClear == '' ){
						$(this).val( defaultValueOfObjectToClear );
					}
					break;
				case 'TEXTAREA':
					valueOfObjectToClear = $(this).text();
					if( valueOfObjectToClear == '' ){
						$(this).text( defaultValueOfObjectToClear );
					}
					break;
				}
			});
		},

		disable:function( objectToDisable ){
			if( objectToDisable == undefined ){
				return false;
			}
			objectToDisable.bind('keypress',function(e){
				return false;
			});
		}

	},
	
	glass:{
		
		htmlObject:$('<div id="glass"></div>'),
		
		show:function(){
			if( $('body').find('#glass').length == 0 ){
				$('body').append( pklib.glass.htmlObject );
			}
			pklib.glass.htmlObject.fadeIn().removeClass('hide');
		},
		hide:function(){
			pklib.glass.htmlObject.fadeOut().addClass('hide');
		}
	},
  
	popup:{
		
		content:'',
		type:'',

		htmlObject:$('<div class="popup-window"><div class="popup-manager"><a href="#popup-close" class="popup-close button">x</a><a href="#popup-previous" class="popup-previous button hide">/</a><a href="#popup-maximalize" class="popup-maximalize button">+</a><a href="#popup-minimalize" class="popup-minimalize button">-</a></div><div class="popup-content"></div></div>'),
		
		width:200,
		height:0,
		
		positionX:0,
		positionY:0,
		
		bind:function(){
			pklib.popup.htmlObject.find('.popup-manager .popup-close.button').bind('click',function(){
				pklib.popup.hide();
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-minimalize.button').bind('click',function(){
				pklib.popup.minimalize();
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-maximalize.button').bind('click',function(){
				pklib.popup.maximalize();
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-previous.button').bind('click',function(){
				pklib.popup.previous();
			});
		},
		
		show:function( content, type ){
			if( type == undefined ){
				pklib.popup.type = 'info';
			} else {
				pklib.popup.type = type;
			}
			if( content == undefined ){
				pklib.popup.content = 'Test';
			} else {
				pklib.popup.content = content;
			}
			
			pklib.glass.show();
			
			pklib.popup.htmlObject.find('.popup-content').html( pklib.popup.content );
			$('body').append( pklib.popup.htmlObject );
			
			pklib.popup.positionX = ( document.width - pklib.popup.width )/2;
			pklib.popup.positionY = ( document.height - pklib.popup.height )/2;
			
			pklib.popup.htmlObject.css({
				position:'absolute',
				width: pklib.popup.width + 'px',
				top: pklib.popup.positionY + 'px',
				left: pklib.popup.positionX + 'px'
			}).fadeIn();
			
			pklib.popup.height = pklib.popup.htmlObject.height();
			pklib.popup.bind();
		},

		hide:function(){
			pklib.popup.htmlObject.fadeOut().addClass('hide');
			pklib.glass.hide();
		},
		
		minimalize:function(){
			pklib.popup.htmlObject.css({
				top:'2px',
				left:'2px',
				height:'25px',
				width:'200px',
				overflow:'hidden'
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-maximalize.button').addClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-previous.button').removeClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-minimalize.button').addClass('hide');
			pklib.glass.hide();
		},
		
		maximalize:function(){
			pklib.popup.htmlObject.css({
				top:'0px',
				left:'0px',
				height:'100%',
				width:'100%',
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-maximalize.button').addClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-previous.button').removeClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-minimalize.button').removeClass('hide');
		},
		
		previous:function(){
			pklib.popup.htmlObject.css({
				top: pklib.popup.positionY + 'px',
				left: pklib.popup.positionX + 'px',
				height: pklib.popup.height + 'px',
				width: pklib.popup.width + 'px',
				overflow:'auto',
			});
			pklib.popup.htmlObject.find('.popup-manager .popup-maximalize.button').removeClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-previous.button').addClass('hide');
			pklib.popup.htmlObject.find('.popup-manager .popup-minimalize.button').removeClass('hide');
			pklib.glass.show();
		}
	}

};

//console.log( pklib  );