(function($){
	var init = false;

	$.fn.reloadCaptcha = function() {
		var savesrc = $(this).attr("src");
		var idx = savesrc.indexOf('captchaImage');
		if (idx > 0) savesrc = savesrc.substring(0, idx + 'captchaImage'.length);
		$(this).attr("src",savesrc+'/'+(new Date().valueOf()));
		return false;
	}
	
	$.fillChildCombo = function(parentId,child_id,options_arr) {
		var opt			= document.createElement("option");
		var subOptions	= options_arr[parentId];
		if (typeof(arguments[3]) == 'undefined' || arguments[3] == null)
			var selected  = $("#"+child_id).val();
		else 
			var selected  = arguments[3];
		$("#"+child_id).html("");
		for(var subId in subOptions){
			$("#"+child_id).get(0).add(new Option(subOptions[subId],[subId]), document.all ? subId : null);
		}
		$("#"+child_id).val(selected);
	}
	
	$.fn.bindedCombo	= function(child_id,options_arr) {	
		if (typeof(arguments[3]) != 'undefined' )
			var selected = arguments[3];
		else 
			var selected = null;
		$(this).bind('change click keyup',function(e){
			$.fillChildCombo($(this).val(),child_id,options_arr,selected);
		});
	}
	
	
	$.fn.overlay = function(options) {
	
			//Options
			var defaults = {  
				text: '',
				title:'',
				text_color: '#333',
				text_align: 'center',
				border_color: '',
				background: '',
				freeze: false,
				close: true,
				type: 'notice',
				delay: '',
				icon: '',
				icon_path: ''  
			};  
			var options = $.extend(defaults, options);  
					
			//-- Functionality --- //
				
				//--- Message box --- //
				
				//Style overwrite
				var style='', icon='', close='';
				if(options.border_color != '') style += 'border: 2px solid ' + options.border_color +';';
				if(options.background != '')   style += 'background: ' + options.background +';';
				if(options.close) close = '<div id="overlay_close"></div>';
				else					close = '<div id="overlay_close" style="display: none"></div>';
				//Message with/without loading
				if(options.icon != '') icon = '<td width="1"><img src="'+options.icon_path + options.icon+'"></td>';
		
				
				//Box HTML
				var content = '\
				<div class=\"msgContent\"  > \
					<div class="overlay-div">\
						<div class="overlay-content">\
						 	<div class="overlay-header">'+options.title+'</div>\
							<div class="overlay-msg">'+options.text+'</div>\
						</div>\
						<div>\
	                    </div>\
	                </div>\
	                <div style="clear:both;"></div>\
				</div>';
				
				var box='\
				<div id="overlay" style="display: none;">\
					<div class="popup">\
					'+content+'\
					</div>\
				</div>';
					
				//Appened to body and show
				if(!init) { 
					$(this).append(box);
					init = true;
				}
				else {	
					$('#overlay .msgContent').remove();
					$('#overlay .popup').append(content);
				}
				
				if(options.freeze) $(this).append('<div id="overlay_freezeBG" style="display: none;"></div>');
				$('#overlay').fadeIn('normal');
				if(options.freeze) $('#overlay_freezeBG').fadeIn('normal');
			
				//Hide with delay
				if(options.delay != '') 
				{
					$('#overlay').fadeTo(options.delay, 1).fadeOut('slow');
					$('#overlay_freezeBG').fadeTo(options.delay, 0.4).fadeOut('slow');
				}
				
				//Close function
				$('#overlay_close').bind('click', function () {
					$('#overlay').fadeOut('slow');
					$('#overlay_freezeBG').fadeOut('slow');
				});
	}
	
		
	$.openBox	= function(url,param){

//		$.remoteCall(url, 'id='+param.id, $.drawInvoice, $.error);
//    $.remoteCall = function(Url, params, successFun, errorFun) {
        $.ajax({
            url: url,
            type: 'post',
//            dataType: 'json',
            contentType: 'application/x-www-form-urlencoded',
            data:  'id='+param.id ,
            processData: true,
            success: function(data) {
              $.drawInvoice(data);
            },
            error: function(data) {
                $.error(data);
            }
        });
//    }
		
    }
    
    $.error			= function (){
    	$.drawInvoice('Data transfer error!');
    }
    
    $.PrintInvoice	= function (){
    	$('.invoice').jqprint();
    }
    
    $.drawInvoice	= function (data){
    	
    	$.blockUI({ message: data,css:{cursor:'auto',width:'600px',top:'10%',height:'370px'}});
    }
    
    $.ajaxTabPaging = function(url,obj) {
    	var container = $(obj).parents('div.pagination').parent();
    	$(container).load(url);
    }
    
    
	
})( jQuery ); // confine scope
