var hide_timer_timeout = 6000;
var hide_timer_id = null;
var curr_id = 0;
var curr_img = null;
var is_selector_showen = false;

function add2sc_over(e, id, img){
	if (curr_id != id || curr_img !== img){
		hideQuantitySelector();
		showQuantitySelector(e, img);
		curr_id = id;
		curr_img = img;
	}
}

function add2sc_out(){
}

function selector_over(e){
	var r = (e.relatedTarget) ? e.relatedTarget : e.fromElement;
	//document.getElementById('log').innerHTML += "over_" + e.id + "_" + e.tagName + "("+r.id+" x "+r.tagName+"*"+isInsideBox(r)+")" + "\n";
	if (!isInsideBox(r)) true_selector_over(e);
}

function selector_out(e){
	var r = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	//document.getElementById('log').innerHTML += "out_" + e.id + "_" + e.tagName + "("+r.id+" x "+r.tagName+"*"+isInsideBox(r)+")" + "\n";
	//alert(r.tagName+' '+r.id);
	if (!isInsideBox(r)) true_selector_out(e);
}

function true_selector_over(e){
	//alert('over');
	if (hide_timer_id) window.clearInterval(hide_timer_id);
}

function true_selector_out(e){
	//alert('out');
	//	hide_timer_id = window.setTimeout("hideQuantitySelector()",hide_timer_timeout);
	hideQuantitySelector();
}

function isInsideBox(el){
	//document.getElementById('log').innerHTML += 'isInsideBox\n';
	var t = el;
	do {
		//document.getElementById('log').innerHTML += t.tagName+'\n';
		if (t != null && t.id && t.id == 'QuantitySelectorBox') return true;
		t = t.parentNode;
	}
	while (t != null);
	return false;
}

function showQuantitySelector(e, img){
	if (is_selector_showen) return;
	var offset = (window.pageYOffset) ? window.pageYOffset : document.body.scrollTop;
	var selector_height = 170;
	var img_height = 17;	//img.height - not work on link in ie
    var win_height = document.body.clientHeight + document.body.scrollTop;
    //if (img.y && img.x){
		//var img_y = img.y;
		//var img_x = img.x;
    //}
	//else{
	    var img_y = getElementPosition(img).top;
	    var img_x = getElementPosition(img).left;
	//}
	with (document.getElementById('QuantitySelectorBox')){
		style.left = img_x - 5; 	//e.clientX - 18;
	    if ((img_y + selector_height + img_height) > win_height ){
			style.top = img_y - selector_height - 5;
	    }
		else{
			style.top = img_y + img_height + 5; 	//e.clientY + offset + 15;
		}
		style.display='';
	}
	hide_timer_id = window.setTimeout("hideQuantitySelector()",hide_timer_timeout);
	is_selector_showen = true;
}

function hideQuantitySelector(){
	if (!is_selector_showen) return;
	with (document.getElementById('QuantitySelectorBox')){
		style.display='none';
	}
	if (hide_timer_id) window.clearInterval(hide_timer_id);
	curr_id = 0;
	curr_img = null;
	is_selector_showen = false;
}

function getElementPosition(elem)
{
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}	


