/*
 *
 *  JAVASCRIPT FUNCTIONALITY FOR SHOP
 *
 */

function validateCart(oForm){

    for (var i =0;i < oForm['quantity[]'].length;i++){
        if (!Number(oForm['quantity[]'][i].value)){

            var text = 'Please check the quantity value for product "' + oForm['product_name[]'][i].value + '"';
            var id = 'error';

            PopupWindow.show(id,{html:getMessage('error','Validation Error',text,message)});
            oForm['quantity[]'][i].focus();
            oForm['quantity[]'][i].select();
            return false;
        }
    }
    return true;
}

var popupImageID = 'shopPopupImage';
var closeTimer;

function showImage(url,width,height){

	
    if (!$(popupImageID)){
    	
    	Element.insert(document.body,{
            'top':new Element('div',{id:popupImageID,style:'display:none;position:absolute;z-index:2'})
        });

        $(popupImageID).insert({
            'top':new Element('img',{id:'imgPopup'})
        });
       
        Event.observe(popupImageID,'mouseover',cancelClose);
        Event.observe(popupImageID,'mouseout',hideImage);
    }
    
    cancelClose();
    $('imgPopup').src = url;
    $('imgPopup').width = width;
    $('imgPopup').height = height;
    $(popupImageID).style.left = (mouseX + 30) + 'px';
    $(popupImageID).style.top = (mouseY - 30) + 'px';
    $(popupImageID).show();
    
}

function cancelClose(){
    if (closeTimer)
        clearTimeout(closeTimer);
}

function hideImage(){
    closeTimer = setTimeout('closeImage();',300);
}

function closeImage(){
    $(popupImageID).hide();
}

var deliveryDetailsStatus = 'enabled';

function toggleDeliveryDetails(){

    if (deliveryDetailsStatus == 'enabled'){

        $('deliveryDetails').descendants().each(
            function(element){
                //alert(element.tagName.toLowerCase());
                if (element.tagName.toLowerCase() == 'input' || element.tagName.toLowerCase() == 'select'){
                    element.disable();
                    element.addClassName('disabled');
                    element.removeClassName('validation-failed');
                    element.removeClassName('validation-success');
                }
                if (element.tagName.toLowerCase() == 'div' && element.className == 'validation-advice'){
                    element.remove();
                }
            }
        );
        deliveryDetailsStatus = 'disabled';
    }
    else {

        $('deliveryDetails').descendants().each(
            function(element){
                if (element.tagName.toLowerCase() == 'input' || element.tagName.toLowerCase() == 'select'){
                    element.enable();
                    element.removeClassName('disabled');
                }
            }
        );

        deliveryDetailsStatus = 'enabled';
    }
}

function checkStock(productName,input,stock){

    var id = 'error';
    var quantity = input.value;
    
    if (!Number(quantity)){
        var text = 'Please ensure quantity for product ' + productName + ' is a valid number';
        PopupWindow.show(id,{html:getMessage('error','Stock Error',text,message)});
      
        Form.Element.activate(input.id);
        return;
    }

    if (quantity > stock){
        var text = 'There is not enough stock for product ' + productName;
        PopupWindow.show(id,{html:getMessage('error','Stock Error',text,message)});

        Form.Element.activate(input.id);
    }

}
