var _sCartURL = '/include/cart.php';
var _sSearchURL = '/include/search.php';
var _sMailingURL = '/include/mailing.php';
var _nPromotionalDiscount = 0;
var _nCartTotal = 0;
var _aSpecials = new Array();	

_xSearch = {
	
	scrolled : false,
	_nMaxPrice : 0,
	_sTerm : '',
	_sType: '',
	_nCategory: 0,
	_bUpdatePagination: false,
	
	validate : function(){	
		
		if( isNaN($('#searchForm #maxprice').val()) ){
			$('#searchForm #maxprice').val('');
		}
				
		return true;
	}
	,
	performSearch : function(page_id){
		
		if(this.validate()){
			$('#searchIndicator').show();

			
			if(!page_id > 0){
				_bUpdatePagination = true;
				page_id = 1;
			}else
				_bUpdatePagination = false;
			$(".loadingIndicator").show();
			$('#searchIndicator').show();
			$.ajax({
			  type: "POST",
			  url: _sSearchURL,
			  data: "a=s&page="+page_id+"&key="+escape($('#searchForm #keyword').val())+"&type="+escape($('#searchForm #stype').val())+"&maxprice="+escape($('#searchForm #maxprice').val())+"&category="+escape($('#searchForm #category').val()),
			  success: function(msg){
  
				   $('#resultsArea').html(msg);
				   if(!_xSearch.scrolled){
					 setTimeout("scrollWindowToPos(380,500)",300);
				   	_xSearch.scrolled = true;
				   }
				   $('#searchIndicator').hide();
				   if(_bUpdatePagination)
						updatePaginationCollections();
				   
			  }
			});
		}
	
		return false;
		
	}
	,
	  
	jqSearchSelectCallback : function(page_id, jq){
		updatePaginationCollections();
		_xSearch.performSearch(page_id +1);
		 
	}
	
	
}

function updatePaginationCollections(){
	 
	$("#Pagination").paginationReverse([$("#Pagination_top"),$("#Pagination_bottom")]);
}


function scrollWindowToPos(p_nVal,p_nDuration){
	$.scrollTo(p_nVal,p_nDuration); 
}



function addToCart(p_nId){
	
	$('#project_message_'+p_nId).show();
	$('#project_message_'+p_nId).html('Adding...');	
		
	$.ajax({
	  type: "POST",
	  url: _sCartURL,
	  data: "id="+p_nId,
	  success: function(msg){
		  eval(msg);
	  }
	});

}


function applyDiscount(){
	
	var l_nVal = $('#promotion_code').val();
	
	if(checkEmpty(l_nVal)){
		alert('Please enter a code');
		return;
	}else{
		 $('#promotion_code').attr('disabled','disabled');
		 $.ajax({
		  type: "POST",
		  url: _sCartURL,
		  data: "action=code&ct="+_nCartTotal+"&code="+escape(l_nVal),
		  success: function(msg){
			  eval(msg);
			  updateCheckout();
			//alert( "Data Saved: " + msg );
		  }
		});
	}
}


function removeDiscount(){
	 
    $('#promotion_code').val('');
	$('#checkout_promotion').show();
	$('#checkout_response').hide();
	$('#checkout_response').html('');
	_nPromotionalDiscount = 0;
	updateCheckout();
}


function gotoPage(p_sV,p_nPage){
	document.location = p_sV + 'page' + p_nPage + '/';
}

function updateCheckout(){
	 
	var l_nTotal = 0;
	_nCartTotal = 0;
	_nTotalItems = 0;
	_nTotalFrag = 0;
	_nLowestFragCost = -1;
	_nTotalShipping = 0;
	
	var l_sFirstTotal = 0;
	for(var i=0; i<checkoutIds.length; i++){
	 
		var l_nQuantity = $('#quantity_'+checkoutIds[i]).val();
		l_nQuantity = parseInt(l_nQuantity)
		if(l_nQuantity < 0 || isNaN(l_nQuantity))
			l_nQuantity = '';
		$('#quantity_'+checkoutIds[i]).val(l_nQuantity);
		
		l_nQuantity = l_nQuantity + 0;
		
		var l_nPrice = $('#quantity_'+checkoutIds[i]).attr('title');
		l_sFirstTotal += l_nQuantity*l_nPrice;
	}
	
	
	for(var i=0; i<checkoutIds.length; i++){
	 
		var l_nQuantity = $('#quantity_'+checkoutIds[i]).val();
		l_nQuantity = parseInt(l_nQuantity)
		if(l_nQuantity < 0 || isNaN(l_nQuantity))
			l_nQuantity = '';
		$('#quantity_'+checkoutIds[i]).val(l_nQuantity);
		
		l_nQuantity = l_nQuantity + 0;
		
		var l_nPrice = $('#quantity_'+checkoutIds[i]).attr('title');
		
		if(l_sFirstTotal < 70){
			if(_nTotalShipping == 0){
				_nTotalShipping += 5;	
				_nTotalShipping += 2 * (l_nQuantity-1);	
			}else
				_nTotalShipping += 2 * l_nQuantity;	
		}
		
		l_nTotal += l_nQuantity*l_nPrice;
		$('#amount_'+checkoutIds[i]).html(formatCurrency(l_nQuantity*l_nPrice) + '');
		
		_nTotalItems += l_nQuantity;
		if( $('#frag_'+checkoutIds[i]).val() == 1){
			if( l_nPrice < _nLowestFragCost || _nLowestFragCost == -1 )
				_nLowestFragCost = l_nPrice;
				
			_nTotalFrag += l_nQuantity;
		}
	}
	
	$('#checkout_shipping').html("<strong>Shipping Total:</strong> " + formatCurrency(_nTotalShipping));
	$('#checkout_subtotal').html("<strong>Sub Total:</strong> " + formatCurrency(l_nTotal));
	//l_nTotal = checkSpecials(l_nTotal,_aSpecials,_nTotalItems,_nTotalFrag,_nLowestFragCost);
	
	$('#shipping_total_value').val(_nTotalShipping);
	
	
	if(_nPromotionalDiscount > 0){
			
		$('#checkout_subtotal').show();
		$('#checkout_discount_total').show();
		
		
		if( _nPromotionalDiscount > 0 && _nPromotionalDiscount < 1){
			$('#checkout_discount_total').html("<strong>Discount:</strong> (-" + _nPromotionalDiscount * 100 + '%)');
			l_nTotal -= (l_nTotal * _nPromotionalDiscount);
		}
		else{
			$('#checkout_discount_total').html("<strong>Discount:</strong> (-" + formatCurrency(_nPromotionalDiscount) + ')');
			l_nTotal -= _nPromotionalDiscount;
		}
	}
	else{
		$('#checkout_discount_total').hide();
	}
	
	l_nTotal += _nTotalShipping;
	$('#checkout_total').html("<strong>Total:</strong> " + formatCurrency(l_nTotal));
	 
	if(checkoutIds.length <= 0){
		$('#noItems').show();
		$('#haveItems').hide();
	}
	_nCartTotal = l_nTotal;
	//alert("_nCartTotal = " + _nCartTotal );
}


function checkSpecials(p_nTotal,p_aSpecials,p_nTotalItems,p_nTotalFrag,p_nLowestFragCost){
	//alert(p_nTotalItems + ',' + p_nTotalFrag + ',' + p_nLowestFragCost);
	for(i=0; i<p_aSpecials.length; i++){
		var l_nQuantity = p_aSpecials[i][0];
		var l_nGet = p_aSpecials[i][1];
		$('#checkout_special').html('');
		$('#special_total').val(0);
		$('#special_total_text').val();
		
		$('#checkout_subtotal').hide();
		//alert('Special ' + l_nQuantity + ' get ' + l_nGet);
		if(p_nTotalFrag >= l_nQuantity && p_nTotalFrag > 1){
			$('#checkout_subtotal').show();
			$('#checkout_special').html('<strong>Special Promotion:</strong> Buy '+l_nQuantity+' Fragrances get ' + l_nGet + ' free<br /><strong>Savings:</strong> -($'+ (l_nGet * p_nLowestFragCost)+')');
			$('#special_total_text').val('Buy '+l_nQuantity+' Fragrances get ' + l_nGet + ' free');
			$('#special_total').val( (l_nGet * p_nLowestFragCost) );
			//alert(p_nTotal + " is now " + (p_nTotal - p_nLowestFragCost ) );
			return p_nTotal - p_nLowestFragCost;	
		}
	}
	return p_nTotal;	

}

function removeFromArray(p_nId,p_aIds){
	var newArray = new Array();
	for(i in p_aIds){
		if(p_aIds[i] != p_nId)
			newArray.push(p_aIds[i]);
	}
	
	return newArray;
}

function removeItem(p_nId){
	
	checkoutIds = removeFromArray(p_nId,checkoutIds);
	
	$('#cart_row_'+p_nId).fadeOut("slow",function(){
		$('#cart_row_'+p_nId).empty();
	});
	
	$.ajax({
	  type: "POST",
	  url: _sCartURL,
	  data: "action=remove&id="+p_nId,
	  success: function(msg){
		  eval(msg);
		  updateCheckout();
		//alert( "Data Saved: " + msg );
	  }
	});
	
}


function formatCurrency(strValue)
{
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + '$' + dblValue + '.' + strCents);
}


function validateMailForm(){
	
	var msg = '';
	
	if( checkEmpty($('#mailing_name').val()) )
		msg = 'Please Enter your name';
	else if( checkEmpty($('#mailing_email').val()) || !echeck($('#mailing_email').val()) )
		msg = 'Please Enter a valid email';
		
	if(msg != ''){
		$('#mailing_msg').html('<span class="red_text">'+msg+'</span>');	
	}
	else{
		$('#mailing_msg').html('sending info ...');	
		
		$.ajax({
		  type: "POST",
		  url: _sMailingURL,
		  data: "action=add_mailing&name="+$('#mailing_name').val()+"&email="+$('#mailing_email').val(),
		  success: function(msg){
			  eval(msg);
		  }
		});
			
		
	}
	
	
	return false;

}



function validateOrderForm(){
	
	var msg = '';
	
	if( checkEmpty($('#email').val()) || !echeck($('#email').val()) )
		msg = 'Please Enter a valid email';
	else if( checkEmpty($('#onum').val()) )
		msg = 'Please Enter your Order Number';
		
	if(msg != ''){
		$('#order_msg').html('<span class="red_text">'+msg+'</span>');	
	}
	else{
		$('#order_msg').html('sending info ...');	
		
		$.ajax({
		  type: "POST",
		  url: _sCartURL,
		  data: "action=order_status&email="+$('#email').val()+"&onum="+$('#onum').val(),
		  success: function(msg){
			  eval(msg);
			  $('#order_msg').html('&nbsp;');	
		  }
		});
			
		
	}
	
	return false;

}




function checkEmpty(p_sVal){
	l_sVal = escape(p_sVal);
	l_sVal = l_sVal.replace(/\s*((\S+\s*)*)/, "$1");
	l_sVal = l_sVal.replace(/((\s*\S+)*)\s*/, "$1");
	return l_sVal.length < 1;
}

function echeck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){  return false	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){  return false	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){  return false }
	if (str.indexOf(at,(lat+1))!=-1){   return false }
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){   return false }
	if (str.indexOf(dot,(lat+2))==-1){   return false }
	if (str.indexOf(" ")!=-1){   return false }
	return true					
}

