function getProductSubcategories(categoryID){	
	jQuery('#Divsubcategories').html("<img src='"+base_url+"images/working.gif' >");
	jQuery.ajax({
            type: "GET",
            url: base_url+"products/getProductSubcategoriesCombo/"+categoryID,
            dataType: "html",
            success: function(response){				
             $('#Divsubcategories').html('');
			jQuery('#Divsubcategories').html(response);
            },
            error: function(){
                alert("Error occured during Ajax request...");
            }
        });
}
//===========
function ValidateForm(){
	var counter=0;	
	
	if($.trim($('#product_name').val())=='')
	{
		$('#nameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Product Name\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#nameErr').show();
		counter++;
	}else if(!validateSpecialChars($.trim($('#product_name').val()))){
	$('#nameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Special Characters are not allowed.\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#nameErr').show();
		counter++;
	}else{
		$('#nameErr').hide();
	}
	
	if($.trim($('#product_category').val())=='')
	{
		$('#categoryErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select Product Category\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#categoryErr').show();
		counter++;
	}else{
		$('#categoryErr').hide();
	}
	
	if($.trim($('#product_subcategory').val())=='')
	{
		$('#subcategoryErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select Product Sub-Category\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#subcategoryErr').show();
		counter++;
	}else{
		$('#subcategoryErr').hide();
	}
	
	if($.trim($('#product_sale_price').val())=='')
	{
		$('#priceErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Product Sale Price\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#priceErr').show();
		counter++;
	}else if(!IsValidAmount($.trim($('#product_sale_price').val()))){
		$('#priceErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Valid Product Sale Price\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#priceErr').show();
		counter++;
	}else{
		$('#priceErr').hide();
	}
	
	if($.trim($('#available_stock').val())=='')
	{
		$('#stockErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Product Available Stock\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#stockErr').show();
		counter++;
	}else if(!IsValidStock($.trim($('#available_stock').val()))){
		$('#stockErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Valid Product Available Stock\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#stockErr').show();
		counter++;
	}else{
		$('#stockErr').hide();
	}
	
	if($.trim($('#product_description').val())=='')
	{
		$('#descErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Product Description\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#descErr').show();
		counter++;
	}else if(!validateSpecialChars($.trim($('#product_description').val()))){
	$('#descErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Special Characters are not allowed.\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#descErr').show();
		counter++;
	}else{
		$('#descErr').hide();
	}
	
	
	if(counter>0){
		return false;	
	}else{
		return true;
	}
}
//==============
function setupAjaxFormNewProduct(form_id, form_validations){
	var form = '#' + form_id;
	var form_message = 'server-message';
	// en/disable submit button
	var disableSubmit = function(val){
		$(form + ' input[type=image]').attr('disabled', val);
	};
	// setup loading message
	$(form).ajaxSend(function(){
		//$(form_message).removeClass().addClass('loading').html('Loading...').fadeIn();
	});
	// setup jQuery Plugin 'ajaxForm' 	
	var options = {
		dataType:  'json',
		beforeSubmit: function(){
			// run form validations if they exist
			if(!ValidateForm()){
				return false;	
			}
			if(typeof form_validations == "function" && !form_validations()) {
				// this will prevent the form from being subitted
				return false;
			}
			disableSubmit(true);
		},
		success: function(json){
			//$('#server-message').hide();
			//$('#server-message').removeClass().addClass(json.type).html(json.message).fadeIn('slow');
			$.blockUI({ 
			message: json.message,  
					  css: { 
            border: 'none', 
            padding: '15px', 
            backgroundColor: 'RED', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: '.5', 
            color: '#fff' 
				} }); 
			setTimeout($.unblockUI, 7000); 			
			disableSubmit(false);
			if(json.type == 'success'){			
				if(json.comission>0){
					setTimeout("delayRedirect("+json.comission+","+json.productID+")", 7000);
					//window.location.href=base_url+"products/dopayment/"+json.comission+"/"+json.productID;
				}	
				$(form).clearForm();
			}
		}
	};
	$(form).ajaxForm(options);
}
//=========
function delayRedirect(comission, productID){
	window.location.href=base_url+"products/dopayment/"+comission+"/"+productID;	
}
//==============
$(document).ready(function() {  
    new setupAjaxFormNewProduct('add_product');
});
//==============
function setupAjaxFormEditProduct(form_id, form_validations){
	var form = '#' + form_id;
	var form_message = 'server-message';
	// en/disable submit button
	var disableSubmit = function(val){
		$(form + ' input[type=image]').attr('disabled', val);
	};
	// setup loading message
	$(form).ajaxSend(function(){
		//$(form_message).removeClass().addClass('loading').html('Loading...').fadeIn();
	});
	// setup jQuery Plugin 'ajaxForm' 	
	var options = {
		dataType:  'json',
		beforeSubmit: function(){
			// run form validations if they exist
			if(!ValidateForm()){
				return false;	
			}
			if(typeof form_validations == "function" && !form_validations()) {
				// this will prevent the form from being subitted
				return false;
			}
			disableSubmit(true);
		},
		success: function(json){
			$.blockUI({ 
			message: json.message,  
					  css: { 
            border: 'none', 
            padding: '15px', 
            backgroundColor: 'RED', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: '.5', 
            color: '#fff' 
				} }); 
			setTimeout($.unblockUI, 7000); 
			disableSubmit(false);
			if(json.type == 'success'){	
					window.location.href=base_url+"products/viewmyproducts/";
				//$(form).clearForm();
			}
		}
	};
	$(form).ajaxForm(options);
}
//==============
$(document).ready(function() {  
    new setupAjaxFormEditProduct('edit_product');
});
//==============
function IsValidAmount(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;   
}
//==============
function IsValidStock(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;   
}
//=================
function DeleteProduct(productID){
	if(!confirm("All records related to product will be deleted. Are you sure to delete Product?")){
		return;
	}
	jQuery.ajax({
            type: "GET",
            url: base_url+"products/deleteproduct/"+productID,
            dataType: "html",
            success: function(response){	
				if(response=='Deleted'){
					jsonmessage='Product has been deleted.';
					$('#'+productID).remove();
		             $.blockUI({ 
						message: jsonmessage,  
								  css: { 
						border: 'none', 
						padding: '15px', 
						backgroundColor: 'RED', 
						'-webkit-border-radius': '10px', 
						'-moz-border-radius': '10px', 
						opacity: '.5', 
						color: '#fff' 
							} }); 
						setTimeout($.unblockUI, 7000); 
				}else if(response=='pending_orders'){
					jsonmessage='Failed to delete Product. This Product has some pending order(s).';					
		             $.blockUI({ 
						message: jsonmessage,  
								  css: { 
						border: 'none', 
						padding: '15px', 
						backgroundColor: 'RED', 
						'-webkit-border-radius': '10px', 
						'-moz-border-radius': '10px', 
						opacity: '.5', 
						color: '#fff' 
							} }); 
						setTimeout($.unblockUI, 7000); 
				}else {
					jsonmessage='Failed to delete Product.';
		             $.blockUI({ 
						message: jsonmessage,  
								  css: { 
						border: 'none', 
						padding: '15px', 
						backgroundColor: 'RED', 
						'-webkit-border-radius': '10px', 
						'-moz-border-radius': '10px', 
						opacity: '.5', 
						color: '#fff' 
							} }); 
						setTimeout($.unblockUI, 7000); 
				}

            },
            error: function(){
                alert("Error occured during Ajax request...");
            }
        });					  
}

/*Check for a special character'***/
function validateSpecialChars(strToSearch)
{
      var illegalChars = "@#$%^*()+[]\\\'/{}|\"<>";
     for (var i = 0; i < strToSearch.length; i++){
  		if (illegalChars.indexOf(strToSearch.charAt(i)) != -1){  	   
		  	return false;
  		}
     }
	 
	 return true;
}
