/* xCartMod.com Variants Chart */
function when_main_area_loads() {

	document.getElementById('vc_main_area_img').style.display = ''; 
	document.getElementById('vc_main_area_img_load').style.display = 'none';  
	document.getElementById('vc_main_area_img_none').style.display = 'none'; 
	document.getElementById("vcaImgInfoLine").style.display = '';
}

function scroll_holder_to_pos (pos) {
	var scroll_area_width = document.getElementById("vcaScrollDiv").offsetWidth;

	if (pos < scroll_area_width/(2*th_width_ex)) {
		document.getElementById("vcaSliderMover").style.left = "0px";
		document.getElementById("vcaThumbsHolder").style.left = "0px";
	} else if (max_pos - pos + 1 < scroll_area_width/(2*th_width_ex)) {

		left = -1*t_width;
		s_left = (-1)*100*left/rol_step;
		
        document.getElementById("vcaSliderMover").style.left = s_left+"px";
        document.getElementById("vcaThumbsHolder").style.left = left +"px";
	} else {

		scr_pos = pos - scroll_area_width/(2*th_width_ex) + 0.5;

		left = -1*(th_width_ex)*scr_pos;

		s_left = (-1)*100*left/rol_step;

    	document.getElementById("vcaSliderMover").style.left = s_left+"px";
    	document.getElementById("vcaThumbsHolder").style.left = left +"px";
	}
}


function update_scroll_area() {
    var variantid = false;

    for (var x in variants) {

        if (variants[x][1].length == 0)
            continue;

        variantid = x;
        for (var c in variants[x][1]) {
            if (getPOValue(c) != variants[x][1][c]) {
                variantid = false;
                break;
            }
        }

        if (variantid)
            break;
    }

    if (variantid) {
		if (typeof(variant_pos[variantid]) != "undefined") {
			select_clck_variant(variantid);	
			load_variant_img(variantid);

			if (document.getElementById("table_in").offsetWidth >= area_width) {
				scroll_holder_to_pos (variant_pos[variantid]);
			}
		} else {
			load_variant_img(0);
			select_clck_variant(0);	
		}
	}
}

function select_options_dropdowns (vid) {
	if (typeof(variants[vid]) != "undefined") {
		for (var x in variants[vid][1]) {
			setPOValue(x,variants[vid][1][x]); 
		}
	}
	check_options();
}

function setPOValue(c,o) {
    if (document.getElementById('po'+c) && document.getElementById('po'+c).tagName.toUpperCase() == 'SELECT') {
    	document.getElementById('po'+c).value = o;
	}
}

function load_variant_img (vid) {

	document.getElementById("vc_main_area_img_none").style.display = '';
	document.getElementById("vcaImgInfoLine").style.display = 'none';

	if (!vid) {
		document.getElementById("vc_main_area_img").style.display = 'none';
		return;
	} 

	document.getElementById("vc_main_area_img_none").style.display = 'none';
	
    if (no_main_images) {
		if (cached_var_images[vid][1] == false) {
			document.getElementById("vc_main_area_img").style.display = 'none';
			document.getElementById("vc_main_area_img_load").style.display = '';
    		document.getElementById("vc_main_area_img").height = var_image_height;
			document.getElementById("vc_main_area_img").src=variant_images[vid];
			cached_var_images[vid][0].src = variant_images[vid];
			cached_var_images[vid][1] = true;
		} else {
            document.getElementById("vc_main_area_img").height = var_image_height;
            document.getElementById("vc_main_area_img").src=cached_var_images[vid][0].src;	
		}
	} else {
    	document.getElementById("vc_main_area_img").height = var_image_height;
    	document.getElementById("vc_main_area_img").src=variants[vid][0][2].src;
	}

	document.getElementById("vcaImgInfoLine").innerHTML = update_info_line(vid,curr_clck_varid);
}

function update_info_line(vid, __curr_clck_varid) {
	var info_line = '&nbsp;&nbsp;<nobr>';
	var disp_price = 0;	

    if (typeof(variants[vid]) != "undefined") {
        for (var x in variants[vid][1]) {
            info_line += names[x]['options'][variants[vid][1][x]] + ', ';    
        }
    
    	info_line = info_line.substr(0, info_line.length-2);
		info_line += '</nobr>';

		if (show_price) {
			disp_price = variants[vid][0][0];
/*			if (discount_per_amount > 0 || discount_abs_amount > 0) {
				onsale_price = onsale_calculate_product_discount(variants[vid][0][0]);

				info_line += '&nbsp;&nbsp;&nbsp;<span style="text-decoration: line-through;">'+currency_symbol+price_format(disp_price < 0 ? 0 : disp_price)+'</span>&nbsp;&nbsp;&nbsp;'+currency_symbol+price_format(onsale_price < 0 ? 0 : onsale_price)+'&nbsp;&nbsp;&nbsp;<img src="'+ImagesDir+'/sale_tag.gif" alt="'+lbl_os_onsale+'" width="20" align="top"><span style="color:#FFFFFF; font-weight:bold;">'+lbl_os_onsale+'</span>';
				
			} else {*/
				info_line += '&nbsp;&nbsp;&nbsp;'+currency_symbol+price_format(disp_price < 0 ? 0 : disp_price);
//			}
		}

        if (show_avail) {
           	info_line += ' &nbsp;&nbsp;<nobr>'+variants[vid][0][1]+' '+lbl_available+'</nobr>';
        }

    	if (__curr_clck_varid != vid) {
        	info_line += '    ';
    	} else {
			if (variants[vid][0][1] > 0) {
				info_line += ' &nbsp;&nbsp;<nobr><a class="vcaAddToCartLink" onclick="javascript: select_options_dropdowns ('+vid+'); if(FormValidation()) '+orderform_submit_func+'">'+lbl_add_to_cart+'</a></nobr>';
			} else {
        		info_line += ' &nbsp;&nbsp;<nobr>'+lbl_sorry_out_of_stock+'</nobr>';
			}
    	}
	}

//	document.getElementById("dbg0").innerText = info_line;
//	info_line = '<nobr>'+info_line+'</nobr>';

	return info_line; 
}	

function show_over_variant(vid) {
	if (vid != curr_over_varid) {
		load_variant_img(vid);
		curr_over_varid = vid;
	}
}

function show_clck_variant() {
	curr_over_varid = 0;
	load_variant_img(curr_clck_varid);
}

function select_clck_variant(vid) {
	if (curr_clck_varid != 0) {
		document.getElementById("img_"+curr_clck_varid).className = "vcaScrollVariantCellImg";
	}

	if (vid != 0) {
		document.getElementById("img_"+vid).className = "vcaSelectedScrollVariantCellImg";
	}

	document.getElementById("vcaImgInfoLine").innerHTML = update_info_line(vid, vid);

	curr_clck_varid = vid;

}

function popup_shadowbox () {
	Shadowbox.open(document.getElementById('spacer_'+curr_clck_varid));
}

var main_vector = 1;
var main_step = 10;
var speed = 100;

var arrow_vector = 0;
var arrow_step = 10;
var arrow_speed = 50;

function getPosit(elem) {
    var pos = {x : elem.offsetLeft, y : elem.offsetTop};
    if (elem.offsetParent) {
        var tmp = getPosit(elem.offsetParent);
        pos.x += tmp.x;
        pos.y += tmp.y;
    } 
    return pos;
}

function change_position(event) {
	if (typeof(event) == "undefined")
		event = window.event;
	obj = (event.srcElement) ? event.srcElement : event.target;
	
	if (obj.id != "vcaSlider")
		return false;
	
	var s_left = (typeof(event.offsetX) != "undefined") ? event.offsetX : event.layerX;
	
	s_left = s_left - 14;
	if (s_left > s_width)
		s_left = s_width;
	if (s_left < 0)
		s_left = 0;

	var left = s_left*rol_step/100*(-1);
	
	document.getElementById("vcaSliderMover").style.left = s_left+"px";
	document.getElementById("vcaThumbsHolder").style.left = left +"px";
}

function auto_scroll() {
	var left = document.getElementById("vcaThumbsHolder").style.left;
	left = parseInt(left.substr(0, left.length-2));
	var s_left = document.getElementById("vcaSliderMover").style.left;
	s_left = parseInt(s_left.substr(0, s_left.length-2));

	var vect = main_vector;
	if (arrow_vector != 0)
		vect = arrow_vector;
	
	var step = main_step;
	if (arrow_step != 0)
		step = arrow_step;

	s_left = s_left + step*vect;
	left = s_left*rol_step/100*(-1);

	if (s_left > s_width) {
		main_vector = -1;
		left = t_width*(-1);
		s_left = s_width;
	}
	
	if (s_left < 0) {
		left = 0;
		main_vector = 1;
		s_left = 0;
	}

	document.getElementById("vcaSliderMover").style.left = s_left+"px";
	document.getElementById("vcaThumbsHolder").style.left = left +"px";
}

function start_scroll(st) {
	if (st == 1)
		timerId = setInterval("auto_scroll()", speed);
	else
		clearInterval(timerId);
}

var timerId2 = 0;

function arrow_scroll(_st, _vect) {
	if (_st == 1) {
		arrow_vector = _vect;
		arrow_step = 10;
		timerId2 = setInterval("auto_scroll()", arrow_speed);
	}
	else {
		arrow_vector = 0;
		arrow_step = 0;
		if (timerId2 != 0){
			clearInterval(timerId2);
		}
	}
}

function startdrag(t, e) {
	if (e.preventDefault) e.preventDefault(); //line for IE compatibility
	e.cancelBubble = true;
	window.document.onmousemoveOld = window.document.onmousemove;
	window.document.onmouseupOld = window.document.onmouseup;
	window.document.onmousemove=dodrag;
	window.document.onmouseup=stopdrag;
	window.document.draged = t;
	t.dragX = e.clientX;
	t.dragY = e.clientY;
	return false;
}

function dodrag(e) {

	if (!e) e = event; //line for IE compatibility
	t = window.document.draged;
	var s_left = document.getElementById("vcaSliderMover").style.left;
    s_left = parseInt(s_left.substr(0, s_left.length-2));

	s_left += e.clientX - t.dragX;
	t.dragX = e.clientX;

    if (s_left > s_width)
        s_left = s_width;
    if (s_left < 0)
        s_left = 0;
    left = s_left*rol_step/100*(-1);
    document.getElementById("vcaSliderMover").style.left = s_left+"px";
    document.getElementById("vcaThumbsHolder").style.left = left +"px";
	return false;
}
//restore event-handlers
function stopdrag() {
   window.document.onmousemove=window.document.onmousemoveOld;
   window.document.onmouseup=window.document.onmouseupOld;
}

function init_scroll_chart() {
	Shadowbox.init();

    s_width = document.getElementById("vcaSlider").offsetWidth - 36;
    t_width = document.getElementById("table_in").offsetWidth - document.getElementById("vcaScrollDiv").offsetWidth;
    rol_step = t_width/s_width*100;

//    if (document.getElementById("table_in").offsetWidth < document.getElementById("vcaScrollDiv").offsetWidth) {

//	if (document.getElementById("table_in").offsetWidth < area_width) {
//        document.getElementById("leftArr").style.display = 'none';
//        document.getElementById("rightArr").style.display = 'none';
//        document.getElementById("cntCartSlider").style.display = 'none';
//        document.getElementById("variants_list").width = "100%";
//        document.getElementById("vcaScrollDiv").width = "100%";
//    }

	for (var vid in variant_pos) {
		document.getElementById("spacer_"+vid).title = update_info_line(vid, vid);
	}

    //select first image in scrollable chart
    for (var vid in variant_pos) {
        if (vid != 0 && variants[vid][0][1] != 0) {
            select_clck_variant(vid); 
            show_clck_variant();
            select_options_dropdowns(vid);
            break;
        }
    }

	Shadowbox.setup();
}
/* xCartMod.com Variants Chart */
