function doJive(max_rows, dup_table, dup_row, clone_lable) { 

idPool = new Array();

     for(var i = 1; i < max_rows; i++) {
         idPool.push(i);
     }

	done = false;

                 $("#addR").click(function(){
                   var clone = $("#"+dup_table+" #"+dup_row).clone();
                   var cloneBlob = $("#"+dup_table+" #"+dup_row+"_blob").clone();
                   var cloneMsg = $("#"+dup_table+" #"+dup_row+"_msg").clone();
                   var cloneB = $("#addR").clone();

		    if(clone_lable)
			var clone_lable = $("#"+dup_table+" #"+dup_row+"_desc").clone();

			var table=document.getElementById(dup_table)
			var x=table.rows;
			var usedSpace = $("#used_"+dup_row).attr("value") - 1;

				if(usedSpace > 0 && done != true) {
				   idPool.splice(0, usedSpace);
				   done = true;
				}

			if(idPool.length == (max_rows - 1)) {
			   $("#used_"+dup_row).attr("value", "1");
			   usedSpace = 0;
			}

			if(idPool.length > 0) {

			var numRows = idPool.shift();
			idPool.splice(0, 0);

			var rowNum = 2 + usedSpace;

           		row=table.insertRow(rowNum)

			if(clone_lable)
			    d = row.insertCell(4)

		            y = row.insertCell(0)
		            z = row.insertCell(1)
		            c = row.insertCell(2)

			x[rowNum].id="row_"+numRows;

			x[rowNum].cells[1].id="cell"+numRows;
			x[rowNum].cells[2].id="cellM"+numRows;
			x[rowNum].cells[2].valign="top";

                        $(clone).attr("id", dup_row+""+numRows);
                        $(clone).attr("name", dup_row+""+numRows);
                        $(clone).attr("value", "");

                        $(cloneBlob).attr("id", dup_row+""+numRows+"_blob");
                        $(cloneBlob).attr("name", dup_row+""+numRows+"_blob");

                        $(cloneMsg).attr("id", dup_row+""+numRows+"_msg");
                        $(cloneMsg).attr("name", dup_row+""+numRows+"_msg");
                        $(cloneMsg).attr("innerHTML", "");

                        $(cloneB).attr("id", "delR"+numRows);
                        $(cloneB).attr("name", "delR"+numRows);
                        $(cloneB).attr("value", "-");
                        $(cloneB).attr("style", "width: 28px");
                        //$(cloneB).attr("onclick", "alert('"+numRows+"'); RemoveRow('"+numRows+"');");

                        $("#cell"+numRows).append(clone);
                        $("#cell"+numRows).append("&nbsp;&nbsp;");
                        $("#cell"+numRows).append(cloneBlob);
                        $("#cell"+numRows).append(cloneMsg);
                        $("#cellM"+numRows).append(cloneB);

			$("#delR"+numRows).click(function(){

				RemoveRow(numRows);
			});

			$("#"+dup_row+""+numRows+"_blob").attr("style", "color: rgb(221, 0, 0); font-size: 14px");

                        $("#"+dup_row+""+numRows+"_blob").hide().fadeIn('slow');
                        $("#"+dup_row+""+numRows).hide().fadeIn('slow');
                        $("#delR"+numRows).hide().fadeIn('slow');


			} else {

				alert("Limit Reached (Max "+max_rows+")");

			}

                   return false;
                });

}
      function RemoveRow(index)
      {
		idPool.push(index);

		$("#delR"+index).attr("disabled", "true");
		$("#row_"+index).fadeOut("slow", function(){


			if(document.getElementById("row_"+index)) {

			var parent = document.getElementById("row_"+index).parentNode;
			parent.removeChild(document.getElementById("row_"+index));

			}

		}); 
      }

      function showLoading(message, hide_bg, blockUI)
      {

	if(message == '' || message == undefined || message == 'undefined')
	    message = 'Please Wait...';

	if(hide_bg == true)
	    $.extend($.blockUI.defaults.overlayCSS, { filter: 'alpha(opacity=50)', opacity: '.5' });
	else
	    $.extend($.blockUI.defaults.overlayCSS, { filter: 'alpha(opacity=0)', opacity: '0' });

	if(blockUI == undefined || blockUI == true)
		block = true;
	else
		block = false;



        $.blockUI({ css: { 
            border: 'none', 
            fontWeight: 'bold',
            padding: '15px', 
            backgroundColor: '#000', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: '.7', 
	    filter: 'alpha(opacity=70)',
            color: '#fff',
	    cursor: 'default',
	    fontSize: '9pt'
        }, message: message, totalBlock: block }); 
        //}, message: message + '<div style="padding-top: 5px;"><img src="img/ajax-loader3.gif"></div>' }); 

     }

     function confirm_jive(message)
     {

	 var ui_buttons  = '<input type="button" id="yes" value="Yes" />';
	     ui_buttons += '<input type="button" id="no" value="No" />';

         $.blockUI({
           message: '<div style="padding: 15px;">' + message + '</div><div style="padding-bottom: 15px; padding-top: 15px; text-align: center;">' + ui_buttons + '</div>',
           css: { textAlign: 'left', fontSize: '9pt', border: '4px solid #333', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', 'top': '25%' },
	   totalBlock: false
        });

	$("#yes").click(function() { 
					$.unblockUI();
					return true;
				   });

        $("#no").click(function() { 
                                        $.unblockUI();
                                        return false; 
                                   });


     }

     function alert_jive(message)
     {

         var ui_buttons  = '<input type="button" id="ok" value="OK" style="width: 100px"/>';

	 $.extend($.blockUI.defaults.overlayCSS, { filter: 'alpha(opacity=50)', opacity: '.5' });

         $.blockUI({ 
	   message: '<div style="padding: 15px;">' + message + '</div><div style="padding-bottom: 15px; padding-top: 15px; text-align: center;">' + ui_buttons + '</div>',
	   css: { textAlign: 'left', fontSize: '9pt', border: '4px solid #333', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', 'top': '25%' } 
	});

        $("#ok").click(function() {
                                        $.unblockUI();
                                        return true;
                                   });

     }
