function AddtoCart(ProductID){	
	if($.trim($('#product_quantity_'+ProductID).val())=='' || $.trim($('#product_quantity_'+ProductID).val())<=0){
		alert("Please enter Quantity");
		$('#product_quantity_'+ProductID).focus();
		return false;
	}else if(!IsNumeric($.trim($('#product_quantity_'+ProductID).val()))){
		alert("Please enter valid Quantity");
		$('#product_quantity_'+ProductID).focus();
		return false;
	}
	
	$('#process_'+ProductID).html("<img src='"+base_url+"images/working.gif'> ");
	quantity=$.trim($('#product_quantity_'+ProductID).val());
	
	jQuery.ajax({
            type: "GET",
            url: base_url+"shoppingcart/addtocart/"+ProductID+"/"+quantity,
            dataType: "html",
            success: function(response){
				if(response=='yes'){
					//$('#cartItems').html(response);
					$('#process_'+ProductID).html("");
				}else if(response=='not_found'){					
					$('#process_'+ProductID).html("");
					message="Sorry! Product is no longer available.";
					$.blockUI({ 
					message: message,  
							  css: { 
					border: 'none', 
					padding: '15px', 
					backgroundColor: 'RED', 
					'-webkit-border-radius': '10px', 
					'-moz-border-radius': '10px', 
					opacity: '.5', 
					color: '#fff' 
						} }); 
					setTimeout($.unblockUI, 5000); 
				}else if(response=='not_available'){					
					$('#process_'+ProductID).html("");
					message="Sorry! Product is out of Stock.";
					$.blockUI({ 
					message: message,  
							  css: { 
					border: 'none', 
					padding: '15px', 
					backgroundColor: 'RED', 
					'-webkit-border-radius': '10px', 
					'-moz-border-radius': '10px', 
					opacity: '.5', 
					color: '#fff' 
						} }); 
					setTimeout($.unblockUI, 5000); 
				}else{
					$('#process_'+ProductID).html("");
					message=response;
					$.blockUI({ 
					message: message,  
							  css: { 
					border: 'none', 
					padding: '15px', 
					backgroundColor: 'RED', 
					'-webkit-border-radius': '10px', 
					'-moz-border-radius': '10px', 
					opacity: '.5', 
					color: '#fff' 
						} }); 
					setTimeout($.unblockUI, 5000); 
				}
				countCartItems();		
				
            },
            error: function(){
				$('#process_'+ProductID).html("");
                //alert("Error occured during Ajax request...");
            }
        });
}
//=====================
function countCartItems(){
	jQuery.ajax({
            type: "GET",
            url: base_url+"shoppingcart/countItmes",
            dataType: "html",
            success: function(response){	
				$('#DivCartItems').html(response);
				//window.location.href=base_url+"view_cart.php"				
            },
            error: function(){
                //alert("Error occured during Ajax request...");
            }
        });
}
//===========
function ValidateViewCart(){

	for(var i = 0; i < document.update_cart.elements.length; i++){
	if(document.update_cart.elements[i].name == 'product_quantity[]'){
	if(!IsNumeric(document.update_cart.elements[i].value)){
		alert('Please enter valid product quantity.');
		document.update_cart.elements[i].focus();
		return false;
	}// end if()
	} // end if()
	} // end for()
	return true;
}
//=================
function setupAjaxFormUpdateCart(form_id, form_validations){
	var form = '#' + form_id;
	var form_message = 'server-message';
	// en/disable submit button
	var disableSubmit = function(val){
		$(form + ' input[type=submit]').attr('disabled', val);
	};
	$(form).ajaxSend(function(){
	});
	var options = {
		dataType:  'json',
		beforeSubmit: function(){
			if(!ValidateViewCart()){
				return false;	
			}
			if(typeof form_validations == "function" && !form_validations()) {
				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'){	
				setTimeout("delayViewCart()", 7000);			
			}
		}
	};
	$(form).ajaxForm(options);
}

//=========
function delayViewCart(){
	window.location.href=base_url+"shoppingcart/viewmycart/";	
}
//=========
$(document).ready(function() {  
    new setupAjaxFormUpdateCart('update_cart');
});

$(document).ready(function() {  
    new setupAjaxFormCheckOut('cart_checkout');
});
//=================
function setupAjaxFormCheckOut(form_id, form_validations){
	var form = '#' + form_id;
	var form_message = 'server-message';
	// en/disable submit button
	var disableSubmit = function(val){
		$(form + ' input[type=submit]').attr('disabled', val);
	};
	$(form).ajaxSend(function(){
	});
	var options = {
		dataType:  'json',
		beforeSubmit: function(){
			if(!ValidateCheckOut()){
				return false;	
			}
			if(typeof form_validations == "function" && !form_validations()) {
				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, 5000); 
			disableSubmit(false);
			if(json.type == 'success'){	
				window.location.href=base_url+"shoppingcart/dopayment/"+json.order_id;				
			}
		}
	};
	$(form).ajaxForm(options);
}

function ValidateCheckOut(){
	var counter=0;
	if($.trim($('#first_name').val())==''){
	$('#FNameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter your first name\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#FNameErr').show();
		counter++;
	}else if(!validateSpecialChars($.trim($('#first_name').val()))){
	$('#FNameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Special Characters are not allowed.\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#FNameErr').show();
		counter++;
	}else{
		$('#FNameErr').hide();
	}
	
	if($.trim($('#last_name').val())==''){
	$('#LNameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter your last name\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#LNameErr').show();
		counter++;
	}else if(!validateSpecialChars($.trim($('#last_name').val()))){
	$('#LNameErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Special Characters are not allowed.\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#FNameErr').show();
		counter++;
	}else{
		$('#LNameErr').hide();
	}
	if($.trim($('#payeremail_id').val())=='')
	{
		$('#mailErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Email ID\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#mailErr').show();
		counter++;
	}
	else if(!validateEmail($.trim($('#payeremail_id').val()))){
		$('#mailErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Valid Email ID\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#mailErr').show();
		counter++;
	}
	else{
		$('#MailErr').hide();
	}
	
	if($.trim($('#contact_no').val())==''){
		$('#ContactErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Contatc Number\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#ContactErr').show();
		counter++;
	}else if(!IsValidContactNo($.trim($('#contact_no').val()))){
		$('#ContactErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Valid Contatc Number\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#ContactErr').show();
		counter++;
	}else{
		$('#ContactErr').hide();
	}
	
	if($.trim($('#country').val())==''){
	$('#countryErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select your Country\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#countryErr').show();
		counter++;
	}else{
		$('#countryErr').hide();
	}
	
	if($.trim($('#stateID').val())==''){
	$('#stateErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select your state\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#StateErr').show();
		counter++;
	}else{
		$('#stateErr').hide();
	}
	
	if($.trim($('#city').val())==''){
	$('#CityErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select your city\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#CityErr').show();
		counter++;
	}else{
		$('#CityErr').hide();
	}
	
	if($.trim($('#zip_code').val())==''){
	$('#ZipErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter your Zip Code\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#ZipErr').show();
		counter++;
	}else if(!ChkZipCode($.trim($('#zip_code').val()))){
	$('#ZipErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter valid Zip Code\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#ZipErr').show();
		counter++;
	}else{
		$('#ZipErr').hide();
	}	
	
	if($.trim($('#shipping_address').val())=='')
	{
		$('#AddressErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter Shipping Address\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#AddressErr').show();
		counter++;
	}else{
		$('#AddressErr').hide();
	}
	
	if($.trim($('#captcha_text').val())==''){
	$('#CaptchaErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter image text\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#CaptchaErr').show();
		counter++;
	}else if($.trim($('#captcha_text').val()).toLowerCase()!=$.trim($('#captcha_image').val()).toLowerCase()){
	$('#CaptchaErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Enter valid image text\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#CaptchaErr').show();
		counter++;
	}else{
		$('#CaptchaErr').hide();
	}
	
	if(counter>0){
		return false;	
	}else{
		return true;	
	}
}
//==============Email Validation
function validateEmail(email){
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}//end function
//============
$(document).ready(function() {  
    new setupAjaxFormOrderStatus('order_status');
});
//=================
function setupAjaxFormOrderStatus(form_id, form_validations){
	var form = '#' + form_id;
	var form_message = 'server-message';
	// en/disable submit button
	var disableSubmit = function(val){
		$(form + ' input[type=submit]').attr('disabled', val);
	};
	$(form).ajaxSend(function(){
	});
	var options = {
		dataType:  'json',
		beforeSubmit: function(){
			if(!ValidateOrderStatus()){
				return false;	
			}
			if(typeof form_validations == "function" && !form_validations()) {
				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, 5000); 
			disableSubmit(false);
			if(json.type == 'success'){	
				$('#status_'+$('#orderID').val()).remove();
				$('#statusBTN_'+$('#orderID').val()).remove();				
				//window.location.href=base_url+"shoppingcart/dopayment/"+json.order_id;				
			}
		}
	};
	$(form).ajaxForm(options);
}

function ValidateOrderStatus(){
	var counter=0;
	if($.trim($('#neworder_status').val())==''){
	$('#statusErr').html("<img  class='form_info_icon' src='"+base_url+"images/warn.gif' onmouseover='showFloatDesc(\"Select Order Status\")'  onmousemove='moveFloatDesc( event )' onmouseout='hideFloatDesc()'> ");
		$('#statusErr').show();
		counter++;
	}else{
		$('#statusErr').hide();
	}
	
	if(counter>0){
		return false;	
	}else{
		return true;	
	}
}
//================
function IsNumeric(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 IsValidContactNo(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 ChkZipCode(sText){
   var ValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   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;   
}
/*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;
}
