
var dragEnabled = false;
var dragObject = null;
var mousePos = null;
var oldMousePos = null;

//document.onmousedown = mouseDown;
document.onmousemove = mouseMove;
document.onmouseup = mouseUp;

String.prototype.trim = function() {
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};

function getElementPosition(e){
	var left = 0;
	var top  = 0;
	while (e.offsetParent){
		left += e.offsetLeft;// + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop;//  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}
	left += e.offsetLeft;// + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop;//  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	return {x:left, y:top};
}

function mouseCoords(ev){
    var tempX = 0;
    var tempY = 0;
    if (document.all) {
        tempX = event.clientX + document.body.scrollLeft;
        tempY = event.clientY + document.body.scrollTop;
    }
    else {
        tempX = ev.pageX;
        tempY = ev.pageY;
    }  
    if (tempX < 0){tempX = 0;}
    if (tempY < 0){tempY = 0;}
    return { x:tempX, y:tempY };
}

function mouseMove(ev) {
	ev = ev || window.event;
	var target = ev.target || ev.srcElement;
	mousePos = mouseCoords(ev);
    if(dragEnabled==true) {
        if(oldMousePos!=null) {
            var dragee = document.getElementById('drag_ingredient');
            dragee.style.left = (parseInt(dragee.style.left) + (mousePos.x-oldMousePos.x))+'px';
            dragee.style.top = (parseInt(dragee.style.top) + (mousePos.y-oldMousePos.y))+'px';
            oldMousePos = mousePos;
        }
        oldMousePos = mousePos;
    }
    return false;
}

function mouseUp(ev){
	stopDrag();
    oldMousePos = null;
    return false;
}

function changeDressing(p_Type, p_Img) {
    var priceBox = document.getElementById('iprice');
	
	switch(p_Type) {
        case 0:
            if(document.getElementById('d_0').value==1) {
                document.getElementById('d_0').value = 0;
                // p_Img.src = "images/red_bottle0.jpg";
				p_Img.style.backgroundImage = "url(images/red_bottle0.jpg)";
                document.getElementById('dressing_0').style.display = 'none';
            }
            else {
                document.getElementById('d_0').value = 1;
                // p_Img.src = "images/red_bottle1.jpg";
				p_Img.style.backgroundImage = "url(images/red_bottle1.jpg)";
                document.getElementById('dressing_0').style.display = 'block';
            }
            break;
        
		case 1:
            if(document.getElementById('d_1').value==1) {
                document.getElementById('d_1').value = 0;
                // p_Img.src = "images/yellow_bottle0.jpg";
				p_Img.style.backgroundImage = "url(images/yellow_bottle0.jpg)";
                document.getElementById('dressing_1').style.display = 'none';
				priceBox.value = parseInt(priceBox.value)-5;
            }
            else {
                document.getElementById('d_1').value = 1;
                //p_Img.src = "images/yellow_bottle1.jpg";
				p_Img.style.backgroundImage = "url(images/yellow_bottle1.jpg)";
                document.getElementById('dressing_1').style.display = 'block';
				priceBox.value = parseInt(priceBox.value)+5;
            }
            break;
            
        case 2:
            if(document.getElementById('d_2').value==1) {
                document.getElementById('d_2').value = 0;
                //p_Img.src = "images/orange_bottle0.jpg";
				p_Img.style.backgroundImage = "url(images/orange_bottle0.jpg)";
                document.getElementById('dressing_2').style.display = 'none';
				priceBox.value = parseInt(priceBox.value)-6;
            }
            else {
                document.getElementById('d_2').value = 1;
                //p_Img.src = "images/orange_bottle1.jpg";
				p_Img.style.backgroundImage = "url(images/orange_bottle1.jpg)";
                document.getElementById('dressing_2').style.display = 'block';
				priceBox.value = parseInt(priceBox.value)+6;
            }
            break;
        case 3:
            if(document.getElementById('d_3').value==1) {
                document.getElementById('d_3').value = 0;
                //p_Img.src = "images/white_bottle0.jpg";
				p_Img.style.backgroundImage = "url(images/white_bottle0.jpg)";
                document.getElementById('dressing_3').style.display = 'none';
				priceBox.value = parseInt(priceBox.value)-6;
            }
            else {
                document.getElementById('d_3').value = 1;
                //p_Img.src = "images/white_bottle1.jpg";
				p_Img.style.backgroundImage = "url(images/white_bottle1.jpg)";
                document.getElementById('dressing_3').style.display = 'block';
				priceBox.value = parseInt(priceBox.value)+6;
            }
            break;
    }
}
function addIngredient(p_Item) {
    var newIngredient = document.createElement('div');
    newIngredient.innerHTML = p_Item.innerHTML;
    newIngredient.className = 'div_bowl_ingredient';
    newIngredient.onclick = new Function ("removeIngredient(this, true)");
    document.getElementById('cart_contents_bowl_ingredients').appendChild(newIngredient);
    document.getElementById('cart_ingredients_contents').removeChild(p_Item);
}
function removeIngredient(p_Item, p_CheckEmpty) {
    var newIngredient = document.createElement('div');
    newIngredient.innerHTML = p_Item.innerHTML;
    newIngredient.className = 'div_ingredient';
    newIngredient.onclick = new Function ("addIngredient(this)");
    newIngredient.onmousedown = new Function ("startDrag(this)");
    document.getElementById('cart_ingredients_contents').appendChild(newIngredient);
    document.getElementById('cart_contents_bowl_ingredients').removeChild(p_Item);
    if(p_CheckEmpty==true) checkAndEnableCommandez();
}
function clearBowl() {
    var ingreds = document.getElementById('cart_contents_bowl_ingredients').getElementsByTagName('div');
    var i = 0;
    for(i=ingreds.length-1; i>=0; i--) {
        removeIngredient(ingreds[i], false);
    }
    checkAndEnableCommandez();
}
function startDrag(p_Obj) {
    if(dragEnabled==true) {
        dragEnabled = false;
        dragObject = null;
        return false;
    }
    dragObject = p_Obj;
    dragEnabled = true;
    var pos = getElementPosition(p_Obj);
    var dragee = document.getElementById('drag_ingredient');
    dragee.innerHTML = p_Obj.innerHTML;
    dragee.style.left = pos.x+'px';
    dragee.style.top = pos.y+'px';
    dragee.style.display = 'block';
    p_Obj.style.visibility = 'hidden';
    return false;
}

function stopDrag() {
    if(dragEnabled==false) return;
    var bowlPos = getElementPosition(document.getElementById('cart_contents_bowl_ingredients'));
    //alert("left:"+bowlPos.x+", top:"+bowlPos.y);
    //alert("x:"+mousePos.x+", y:"+mousePos.y);
    if(mousePos.x >= bowlPos.x && mousePos.x <= bowlPos.x+document.getElementById('cart_contents_bowl_ingredients').offsetWidth &&
       mousePos.y >= bowlPos.y && mousePos.y <= bowlPos.y+document.getElementById('cart_contents_bowl_ingredients').offsetHeight) {
        addIngredient(dragObject);
    }
    else {
        dragObject.style.visibility = 'visible';
    }
    dragEnabled = false;
    dragObject = null;
    document.getElementById('drag_ingredient').style.display = 'none';
    oldMousePos = null;
	checkAndEnableCommandez();
}
function pay(p_Type) {
    
    // check ingreds
    var added = document.getElementById('cart_contents_bowl_ingredients').getElementsByTagName('div');
    if(added.length<=0) {
        alert('Veuillez ajouter des ingredients dans votre salade !!!');
        return;
    }
    else {
        var ingredsField = document.getElementById('hIngreds');
        ingredsField.value = '';
        var i = 0;
        for(i=0; i<added.length; i++) {
            ingredsField.value += ' - '+added[i].innerHTML;
        }
    }
    
    // check valid name and email
    if(document.getElementById('custName').value.trim()=='' || document.getElementById('custEmail').value.trim()=='') {
        alert('Veuillez entrer votre nom et adresse email');
        document.getElementById('custName').focus();
        return;
    }
    
    var enable = false;
	
    if(document.getElementById('iformule_item').value==1) {
        enable = true;
    }
    else if(document.getElementById('iformule_item').value==2) {
        if(document.getElementById('iboisson').value!='') {
            enable = true;
        }
    }
    else if(document.getElementById('iformule_item').value==3) {
        if(document.getElementById('iboisson').value!='' && document.getElementById('idesert').value!='') {
            enable = true;
        }
    }
	
	if(enable==false) {
		alert('Veuillez choisir une des trois options:\n1. Salade\n2. Salade + Boisson\n3. Salade + Boisson + Dessert');
        return;
	}
    
    document.buy_form.submit();
}
function gotoPaypal(p_Doc, p_InvoiceID) {
    p_Doc.paypal_form.invoice.value=p_InvoiceID;
    p_Doc.paypal_form.submit();
}
function mouseOverFormule(p_Option) {
	var curItem = document.getElementById('iformule_item').value;
	switch(curItem) {
		case 1:
			document.getElementById('formule_option2').src = 'images/salad-boisson.jpg';
			document.getElementById('formule_option3').src = 'images/salad-bois-dess2.jpg';
			break;
		case 2:
			document.getElementById('formule_option1').src = 'images/salade2.jpg';
			document.getElementById('formule_option3').src = 'images/salad-bois-dess2.jpg';
			break;
		case 3:
			document.getElementById('formule_option1').src = 'images/salade2.jpg';
			document.getElementById('formule_option2').src = 'images/salad-boisson.jpg';
			break;
		default:
			document.getElementById('formule_option1').src = 'images/salade2.jpg';
			document.getElementById('formule_option2').src = 'images/salad-boisson.jpg';
			document.getElementById('formule_option3').src = 'images/salad-bois-dess2.jpg';
			break;
	}
	switch(p_Option) {
		case 1:
			document.getElementById('formule_option1').src = 'images/salade.jpg';
			break;
		case 2:
			document.getElementById('formule_option2').src = 'images/salade-boisson.jpg';
			break;
		case 3:
			document.getElementById('formule_option3').src = 'images/salad-bois-dess.jpg';
			break;
	}
}
function changeFormule(p_Option) {
	document.getElementById('formule_option1').src = 'images/salade2.jpg';
	document.getElementById('formule_option2').src = 'images/salad-boisson.jpg';
	document.getElementById('formule_option3').src = 'images/salad-bois-dess2.jpg';
	switch(p_Option) {
		case 1:
			document.getElementById('formule_option1').src = 'images/salade.jpg';
			document.getElementById('extra_outer').style.display = 'none';
			document.getElementById('iformule').value = 'Salade';
			break;
		case 2:
			document.getElementById('formule_option2').src = 'images/salade-boisson.jpg';
			document.getElementById('extra_outer').style.display = 'block';
			document.getElementById('desert').style.display = 'none';
			document.getElementById('iformule').value = 'Salade + Boisson';
			break;
		case 3:
			document.getElementById('formule_option3').src = 'images/salad-bois-dess.jpg';
			document.getElementById('extra_outer').style.display = 'block';
			document.getElementById('desert').style.display = 'block';
			document.getElementById('iformule').value = 'Salade + Boisson + Dessert';
			break;
	}
	document.getElementById('iformule_item').value = p_Option;
	window.scrollBy(0,500);
	checkAndEnableCommandez();
}
function cartRadioClicked(p_Item) {
	var elem = p_Item;
	var group = elem.getAttribute('igroup');
	// turn-off current
	var curItem = document.getElementById(group+'_item').value;
	if(curItem!='') {
		document.getElementById(curItem).className = 'cart_radio_item0';
	}
	// turn-on new
	document.getElementById(group).value = elem.innerHTML;
	document.getElementById(group+'_item').value = elem.id;
	elem.className = 'cart_radio_item1';
	
	checkAndEnableCommandez();
	
}
function checkAndEnableCommandez() {
	var enable = false;
	
	var added = document.getElementById('cart_contents_bowl_ingredients').getElementsByTagName('div');
	if(added.length>0) {
		if(document.getElementById('iformule_item').value==1) {
			enable = true;
		}
		else if(document.getElementById('iformule_item').value==2) {
			if(document.getElementById('iboisson').value!='') {
				enable = true;
			}
		}
		else if(document.getElementById('iformule_item').value==3) {
			if(document.getElementById('iboisson').value!='' && document.getElementById('idesert').value!='') {
				enable = true;
			}
		}
	}
	
	if(enable==true) {
		document.getElementById('commandez_button').src = 'images/commandez1.jpg';
	}
	else {
		document.getElementById('commandez_button').src = 'images/commandez0.jpg';
	}
}
