 function validate()
        {
			    if (isNaN(document.getElementById('tbQty').value))
			    {
				    alert("Invalid Quantity");
				    return false;
			    }
         }

		function tbQty_onBlur()
		{
			if (isNaN(document.getElementById('tbQty').value) || (document.getElementById('tbQty').value.length==0) )
			{
			    alert("Invalid Quantity");
			    return false;
			}
		}

		//call back error handler
		function caCallback_CallbackError(sender, eventArgs)
        {
			alert("Callback error has occured");
        }

		//filter product data
		function filterProduct()
		{
			//create filter string
			var filter = '';
			
			
			//add type filter if one is selected
			if (document.getElementById('Top_ProductSelector_ddlType') != null)
				if (document.getElementById('Top_ProductSelector_ddlType').selectedIndex > 0)
					filter += ("TypeID=" + document.getElementById('Top_ProductSelector_ddlType').options[document.getElementById('Top_ProductSelector_ddlType').selectedIndex].value);
					
								
			//add line filter if one is selected
			if (document.getElementById('Top_ProductSelector_ddlSkin') != null)
				if (document.getElementById('Top_ProductSelector_ddlSkin').selectedIndex > 0)
					filter += (";LineID=" + document.getElementById('Top_ProductSelector_ddlSkin').options[document.getElementById('Top_ProductSelector_ddlSkin').selectedIndex].value);
					
			//add supplier filter if one is selected
			if (document.getElementById('Top_ProductSelector_ddlBrand') != null)
				if (document.getElementById('Top_ProductSelector_ddlBrand').selectedIndex > 0)
					filter += (";ManufacturerID=" + document.getElementById('Top_ProductSelector_ddlBrand').options[document.getElementById('Top_ProductSelector_ddlBrand').selectedIndex].value);		
					
			//filter info
			if (filter == '')
				filter = 'all=all';
			
			//alert(filter);
			
			//if (gridExists())
			//caGrid.Filter(filter);
			//caCallBack_Callback(filter);
			ExecTelerikCallback(filter);	
			//else
			//window.top.location.href = ('ProductList.aspx?element=3&category=1&Filter=' + filter);
		}
		
		/* Sort By Filter */
            function ddlSortBy_onChange()
            {
                try
                {
                    // Drop down list object
				    var obj = document.getElementById("Top_ddlSortBy");
    				
				    // Selected value
				    var sortBy = obj.options[obj.selectedIndex].value;
				    
				    // Update the hidden textbox
				    //document.getElementById("tbSortBy").value = sortBy;

                    // Run callback
				    //caCallBack_Callback("ChangeSort", "sortby=" + sortBy + ";");
				    ExecTelerikCallback("ChangeSort", "sortby=" + sortBy + ";");	
                }
                catch (ex)
                {
                    alert("Top_ddlSortBy_onChange:\n" + ex.description);
                }
                finally
                {
                }
            }	
		
		
	//search product data
		function searchProduct()
		{
					
			if (document.getElementById('Top:ProductSearch:tbSearch') != null)
				if (document.getElementById('Top:ProductSearch:tbSearch').value != ''){
					if (gridExists())
						caGrid.Filter('keywords=' + document.getElementById('Top:ProductSearch:tbSearch').value);
					else
						window.top.location.href = ('ProductListAJAX.aspx?element=3&category=1&Filter=keywords=' + document.getElementById('Top:ProductSearch:tbSearch').value);
				}else{
					if (gridExists())
						caGrid.Filter('all=all');
					else
						window.top.location.href = ('ProductListAJAX.aspx?element=3&category=1&Filter=keywords=all=all');
				}
					
		}
				
		function testFormat(amount)
		{
			var i = parseFloat(amount);
			if(isNaN(i)) { i = 0.00; }
			var minus = '';
			if(i < 0) { minus = '-'; }
			i = Math.abs(i);
			i = parseInt((i + .005) * 100);
			i = i / 100;
			s = new String(i);
			if(s.indexOf('.') < 0) { s += '.00'; }
			if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
			s = minus + s;
			return s;
		}

       

			/* Products Per Page Filter */
            function ddlProductsPerPage_onChange()
            {
                try
                {
                
                    // Drop down list object
				    var obj = document.getElementById("ddlProductsPerPage");				    
				    
				    // Selected value
				    var productsPerPage = obj.options[obj.selectedIndex].value;
				    
				    
				    
				    // Update the hidden textbox
				    document.getElementById("tbProductsPerPage").value = productsPerPage;				    
				    	    
				    // Run callback
				    //caCallBack_Callback("ChangePageSize", "pagesize=" + productsPerPage);
				    ExecTelerikCallback("ChangePageSize", "pagesize=" + productsPerPage);	
				    
				    
                }
                catch (ex)
                {
                   alert("ddlProductsPerPage_onChange:\n" + ex);
                }
                finally
                {
                }
            }
	
	 /* Change current page index */
	function ChangePageIndex(index)
	{
		try
		{		
			if (index && typeof(index) == "number")
			{
				// Update the hidden textbox
				//document.getElementById("tbCurrentPage").value = index;
	            
				// Run calback
				//caCallBack_Callback("ChangeCurrentPage", "currentpage=" + index);
				ExecTelerikCallback("ChangeCurrentPage", "currentpage=" + index);
			}
		}
		catch (ex)
		{
			alert("ChangePageIndex:\n" + ex);
		}
		finally
		{
		}
	}
	
	function caCallback_Complete()
	{
		alert('complete');
	}
	
	function btnBulkAdd_onClick() {
		try {
			var isValid=true;
			var hasQty=false;
			var tb;
			
			for(var i=0; getQtyTb(i) != null; i++) {
				tb = getQtyTb(i);
				if(trim(tb.value) != "") {
					if(!isInteger(tb.value)) {
						isValid=false;
						break;
					}
				}
				if(parseInt(tb.value,0) > 0)
					hasQty=true;
			}
			
			if(!isValid) {
				alert("You must enter a valid numeric value for the Qty.");
				tb.focus();
				tb.select();
				return false;
			}
			else {
				if(!hasQty) {
					alert('You must enter at least one non-zero quantity.');
					return false;
				}
				else {
					return true;
				}
			}
		}
		catch(ex) {
			alert(ex.description);
			return false;
		}
	}