﻿var oQuantityLayer;
var oTotalLayer;
var oDialogLayer;
var _item_price;
var _item_sale_price;
var _onsale;

var optionFields = null;

/*
_formValidator._isText=1;
_formValidator._isRadio=2;
_formValidator._isList=3;
*/


function addToCartDialog(id){
	    // to position #confirmDialogue, we need the window height/width
	oDialogLayer = $('#dialogLayer');
 	oQuantityLayer = $('#QuantityLayer');
	oTotalLayer = $('#TotalLayer');
   $('#ProductID').val(id);
   $.ajax({
      type: "get",
      url: "ajax_getProductDetails.asp?productID="+id+'&ms='+(new Date().getTime()),
      dataType: "xml",
      error: function(msg){
         jAlert('error:'+msg.status+' : '+msg.statusText+' : '+msg.responseText,'Communications Error');
      },
      success: function(xmlDocument){
         showAddToCartDialog(xmlDocument);
      }
   });
}
function showAddToCartDialog(xmlDocument){
   //priceLayer,TotalLayer,QuantityLayer,optionsLayer,messageLayer,nameLayer
    //set values in dialog
    formValidator.clearFields();
    _onsale = ($('sale_price',xmlDocument).length!=0);
    
	_item_price = parseFloat($('price',xmlDocument).attr('value'));
	if(_onsale){
		_item_sale_price = parseFloat($('sale_price',xmlDocument).attr('value'));
		$('#priceLayer').html('<font color="red" style="font-size: 10px; text-decoration:line-through"><em>'+dollars(_item_price)+'</em></font>'+
		' <font color="green"><strong>'+dollars(_item_sale_price)+'</strong></font>');
		oTotalLayer.html('<font color="red" style="font-size: 10px; text-decoration:line-through"><em>'+dollars(_item_price)+'</em></font>'+
		' <font color="green"><strong>'+dollars(_item_sale_price)+'</strong></font>');
		$('#nameLayer').html($('name',xmlDocument).attr('value')+'<br /><br /><font color="red" style="color:red;"><strong>ON SALE!</strong></font>');
	}else{
		$('#priceLayer').text(dollars(_item_price));
		oTotalLayer.text(dollars(_item_price));
		$('#nameLayer').text($('name',xmlDocument).attr('value'));
	}
   $('#productID').val($('id',xmlDocument).attr('value'));
    
   //check for options
   var optionCount=$('option',xmlDocument).size();
   if(optionCount>0){
      var optionsText = '<table width="100%">'
      var messageText='Please select the ';
      $('option',xmlDocument).each(function(index){
         if(index>0){
            messageText+=' ,';
         }
         messageText+='a ' +$(this).attr('name');
         optionsText+='<tr><td align=left width=20 valign=middle nowrap';
         //if(index==0||optionCount==1){
            optionsText+=' style="border:none; font-weight:bold;"'
         //}
         optionsText+='>'+$(this).attr('name')+' :</td><td align=left valign=middle';
         if(index==0||optionCount==1){
            optionsText+=' style="border:none"'
         }
         optionsText+='>';
         var optionsArray = $(this).attr('value').split(' ');
         for(var i=0;i<optionsArray.length;i++){
            optionsText+='<span><input type=radio name="'+$(this).attr('jssafename')+'"  id="'+
            $(this).attr('jssafename')+'" value="'+$(this).attr('name')+':'+optionsArray[i]+'">'+optionsArray[i]+'</option></span> ';
         }
         optionsText+='</td></tr>';
         formValidator.addField($(this).attr('jssafename'),_formValidator._isRadio,"Please choose a <strong>"+$(this).attr('name')+'</strong>');
        });
      messageText+='and the <strong>Quanity</strong> you wish to purchase and click <a href="javascript:addToCart();void(null);" class="closeButton">[Add To Cart]</a>';
      optionsText += '</table>'
      $('#optionsLayer').show();
      $('#optionsLayer').html(optionsText);
      
   }else{
      var messageText='Please select the <strong>Quanity</strong> you wish to purchase and click <a href="javascript:addToCart();void(null);" class="dialogButton">[Add To Cart]</a>';
   }
   $('#messageLayer').html(messageText);
   oDialogLayer.css({top : ( $(window).height() - oDialogLayer.height() ) / 2+$(window).scrollTop() + "px" , left :  ($(window).width() - oDialogLayer.width() ) / 2+$(window).scrollLeft() + "px", display : 'block'});
	optionFields = formValidator.getFieldNames();
}

function addOne(){
	oQuantityLayer.text(' '+(parseInt(oQuantityLayer.text())+1)+' ')
	doMath()
}
function subOne(){
	var nQ=parseInt(oQuantityLayer.text())-1;
	if(nQ < 1){
		nQ=1
	}
	oQuantityLayer.text(' '+nQ+' ');
	doMath();
}

function doMath(){
	if(_onsale){
		oTotalLayer.html('<font color="red" style="font-size: 10px; text-decoration:line-through"><em>'+dollars(parseInt(oQuantityLayer.text())*_item_price)+'</em></font>'+
		' <font color="green"><strong>'+dollars(parseInt(oQuantityLayer.text())*_item_sale_price)+'</strong></font>');
	}else{
		oTotalLayer.text(dollars(parseInt(oQuantityLayer.text())*_item_price));
	}
}
function dollars(val){
	return '$'+CommaFormatted(CurrencyFormatted(val));
}
function CurrencyFormatted(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;
}
// end of function CurrencyFormatted()

function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}
// end of function CommaFormatted()
function addToCart(){

	if(!formValidator.validate()){
		return false;	
	}
		
	/** add to cart code here **/
	var ajaxString = 'ProductID='+$('#ProductID').val()+'&Quantity='+jQuery.trim($('#QuantityLayer').text());
	
	if(optionFields!=null){
		ajaxString+='&Options=';
		var sval='';
		for(var i = 0 ; i<optionFields.length;i++){
			sval = $('input[name='+optionFields[i]+']:checked').val();
			if(ajaxString.indexOf(sval) == -1){
   			ajaxString+=sval+'|';
	      }
		}
	}
	closeDialog();
    $.ajax({
      type: "get",
      url: "ajax_addtocart.asp?"+ajaxString+'&ms='+(new Date().getTime()),
      dataType: "xml",
      error: function(msg){
   		jAlert('error:'+msg.status+' : '+msg.statusText+' : '+msg.responseText,'Communications Error');
   	},
      success: function(xmlDocument){
       $('#CartLayer').show();
       $('#CartTotal').text($('cartTotal',xmlDocument).attr('value'));
       $('#cart_menu').css({display:'inline'});
      }
    });
}

function closeDialog(){
   $('#dialogLayer').hide();  
}