function xstooltip_findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function xstooltip_findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}
function groupOnFocus(){
	// Do null value of recommend product
	if ($('rec_id') != null ) {
		if ( $('flag').value == 1 ) {
			$("qty_id_"+$('rec_id').value).value = 0;
			$('flag').value = 0;
		}
	}
}
function checkEnter(e, recommend){ 
	var characterCode 
	
	
	if(e && e.which){		
		e = e
		characterCode = e.which 
	}
	else {		
		characterCode = e.keyCode 
	}

	if(navigator.userAgent.indexOf('Safari')!=-1 && characterCode == 3) {
		productAddToCartForm.submit(recommend);
		return false;
	}

	if(characterCode == 13){ 
		productAddToCartForm.submit(recommend);
		return false;
	}	
	return true;
}

var Addtocart = Class.create();
Addtocart.prototype = {
    initialize: function(form, getPostUrl){
        this.form = form;       
        this.getPostUrl = getPostUrl;
		this.onComplete = this.resetLoadWaiting.bindAsEventListener(this);
		this.containerSuffix = '';
    },
	
	_disableEnableAll: function(element, isDisabled) {
        var descendants = element.descendants();
        for (var k in descendants) {
            descendants[k].disabled = isDisabled;
        }
        element.disabled = isDisabled;
    },
	
	resetLoadWaiting: function(transport){
        this.setLoadWaiting(false);
    },
	
	setLoadWaiting: function(enable) {
        if (enable) {
			var container = $('cart-container'+this.containerSuffix);
            container.setStyle({opacity:.5});
            this._disableEnableAll(container, true);
            Element.show('cart-please-wait'+this.containerSuffix);
        }
		else {
			var container = $('cart-container'+this.containerSuffix);
            container.setStyle({opacity:1});
            this._disableEnableAll(container, false);
            Element.hide('cart-please-wait'+this.containerSuffix);
        }
    },
	
	closePopup: function(){
       	$('msgs').innerHTML = '';
		$('popup-added').style.display='none';
    },
	
    getAddtocart: function(url){
			this.setLoadWaiting(true);
            var request = new Ajax.Request(
                 this.getPostUrl,
                {
                    method: 'post',
					onComplete: this.onComplete,
                    onFailure: function(response){
						alert('An error occurred while processing your request');
						this.onComplete;
					},
					onSuccess: function(response){
						$('popup-added').style.display='';
						$('popup-added').style.left = xstooltip_findPosX($('btnaddtocart')) - 160 + "px";
        				$('popup-added').style.top = xstooltip_findPosY($('btnaddtocart')) - 134 + "px";
						result = response.responseText;
						$('msgs').innerHTML = result;
						$('view_cart').style.display = '';
						isSuccess = /was successfully added to your shopping cart.$/.test(result);
						if(!isSuccess) {
							$('view_cart').style.display = 'none';
						} else {
							minicart.update();
						}
					},
                    parameters: Form.serialize(this.form)
                }
            );
	},
	
	// Submit action for configurable product
	submitaction: function(url) {
		var split_url = url.split('product'); // Split url 
		var  prod_id = $("productid").value; // Product id
		if ( prod_id == "" ) {
			prod_id = document.getElementById("rec_product_id").value;
		}
		this.setLoadWaiting(true);
		var request = new Ajax.Request(
				split_url[0]+"product/"+prod_id+"/",
				{
					method: 'post',
					onComplete: this.onComplete,
					onFailure: function(response){
						alert('An error occurred while processing your request');
						this.onComplete;
					},
					onSuccess: function(response){
						$('popup-added').style.display='';
						$('popup-added').style.left = xstooltip_findPosX($('btnaddtocart')) - 160 + "px";
						$('popup-added').style.top = xstooltip_findPosY($('btnaddtocart')) - 134 + "px";
						result = response.responseText;
						$('msgs').innerHTML = result;
						$('view_cart').style.display = '';
						isSuccess = /was successfully added to your shopping cart.$/.test(result);
						if(!isSuccess) {
							$('view_cart').style.display = 'none';
						} else {
							minicart.update();
						}
					},
					parameters: Form.serialize("product_addtocart_form")
				}
				
		);
	}
}
