// JavaScript Document
// OPIS DATOTEKE: javascript funkcije, ki so potrebne za spletno trgovino
// 								17.2.2011 ajax funkcije prepisane tako, da uporabljajo jQuery

// FUNKCIJA: definiranje ajax objekta
var shop_ajax_object=null;
var shop_ajax_object2=null;
function shop_new_ajax_object(){
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else {
		return null;
	}
}

var shop_add_to_cart_button_id = "shop_add_to_cart_button";
var shop_chosen_color = '';
var shop_info_timeout_id = null;

// FUNKCIJA: na server pošlje AJAX zahtevek po ceni za izbrano velikost in barvo - ista funkcija, kot za dodajanje v košarico, samo flag je "request_data_only"
function shop_get_price() {
	// nastavi privzete vrednosti za optional spremenljivke
	var item_no = $('#shop_item_no').val();
	var color_num = $('#shop_colors').val();
	var size_no = $('#shop_sizes').val();
	var quantity = $('#shop_quantity').val();

	$.get($root_adress+$root_prefix+"core/shop_add_to_cart.php",
				{ item_no: item_no, color_no: color_num, size_no: size_no, quantity: quantity, flag: "request_data_only" },
				function(data){
					// sem daj kodo, ki se naj zgodi ob prejetju odgovora
					// popravi ceno na zaslonu
					$('#shop_price_price').html(data.split('	')[9]);
					$('#shop_price_price_crossed').html(data.split('	')[15]);
					if(data.split('	')[15]=='') {
						$('#shop_price_label_crossed').css('visibility', 'hidden');
					} else {
						$('#shop_price_label_crossed').css('visibility', 'visible');
					}
			
					// popravi besedilo gumba dodaj v košarico
					if(getElement(shop_add_to_cart_button_id)) {
						if(data.split('	')[6]==0) {
							// izdelek v izbrani velikosti in barvi še ne obstaja v košarici
							$('#'+shop_add_to_cart_button_id).html($str_shop_add_to_cart);
							$('#shop_quantity').val(1);
							shop_status("&nbsp;");
							$('#shop_remove_from_cart').css('display', 'none');
						} else {
							// izdelek v izbrani velikosti in barvi že obstaja v košarici
							$('#'+shop_add_to_cart_button_id).html($str_shop_cart_change_quantity);
							$('#shop_quantity').val(data.split('	')[7]);
							shop_status($str_shop_item_already_in_cart);
							$('#shop_remove_from_cart').css('display', '');
						}
					}
				}
	);
}


// FUNKCIJA: na server pošlje AJAX zahtevek po dodajanju v košarico
function shop_cart_add(item_no, color_num, size_no, quantity, flag, text_1) {
	// flag je lahko naslednji:
	// 		"add" (default), če naj se količina prišteje obstoječi
	//		"replace", če naj količina zamenja obstoječo
	// 		"force_add", če naj se količina prišteje obstoječi tudi če kontrole ne štimajo
	//		"force_replace", če naj količina zamenja obstoječo, tudi če kontrole ne štimajo
	//		"ignore", če izdelek že obstaja v košarici, pa ga ne želimo nadomestiti (praviloma dobimo odgovor, da izdelek že obstaja)

	// nastavi privzete vrednosti za optional spremenljivke
	if(color_num===undefined) { color_num = ""; }
	if(size_no===undefined) { size_no = ""; }
	if(quantity===undefined) { quantity = 1; }
	if(flag===undefined) { flag = "replace"; }
	if(text_1===undefined) { text_1 = ""; }
	
	// ajax klic
	// document.title = $root_adress+$root_prefix+"core/shop_add_to_cart.php";
	$.get($root_adress+$root_prefix+"core/shop_add_to_cart.php",
				{ item_no: item_no, color_no: color_num, size_no: size_no, quantity: quantity, flag: flag, text_1: text_1 },
				function(data){
					// sem daj kodo, ki se naj zgodi ob prejetju odgovora
					response_status = jQuery.trim(data.split('	')[0]);
					if(response_status=="ok") {

						// posodobi shop_sizes_div, če obstaja
						if(getElement('shop_sizes_div')) {
							shop_sizes_refresh(shop_chosen_color); 
						}

						// zapiši v statusno polje, kaj se je zgodilo
						shop_status(escape(data.split('	')[2]));

						// posodobi shop_already_in_cart, če obstaja
						if(getElement('shop_already_in_cart')) {
							shop_already_in_cart_refresh(); 
						}

						// na koncu še posodobi košarico
						// $('#shop_cart_lite_data').html($str_shop_cart_total+': <strong>'+data.split('	')[11]+' '+$gl_currency_symbol+'</strong>&nbsp; &nbsp;'+$str_shop_cart_total_quantity+': <strong>'+data.split('	')[10]+'</strong>');
						$.post(	$root_adress+$root_prefix+'core/incl_webshop_ajax.php', 
										{ shop_action: 'shop_cart_lite_refresh' }, 
										function(data) {
											$('.shop_cart_lite_data').html(data);
										}
						);

					} else if(response_status=="ok_replaced") {
						// preusmeri v košarico
						document.location = $root_adress+$root_prefix+'?view=shop_cart';
					} else {
						shop_status(data.split('	')[2]);
					}		
				}
	);
	
}


// FUNKCIJA: na server pošlje AJAX zahtevek po odstranjevanju izdelka iz v košarice. Ajax vedno vrne obvestilo o odstranjevanju, ki ga moramo prikazati.
function shop_cart_remove(folder, row_cart_id) {

	$.post(	$root_adress+$root_prefix+'core/incl_webshop_ajax.php?folder='+folder, 
				 	{ shop_action: 'shop_delete_row', shop_delete_row_ID: row_cart_id }, 
				 	// function(data) { $('.shop_add_to_cart_div').html(data); } 
					function(data) {
				
						// posodobi shop_sizes_div, če obstaja
						if(getElement('shop_sizes_div')) {
							shop_sizes_refresh(shop_chosen_color); 
						}
				
						// zapiši v statusno polje, kaj se je zgodilo
						shop_status(escape(data));
				
						// posodobi shop_already_in_cart, če obstaja
						if(getElement('shop_already_in_cart')) {
							shop_already_in_cart_refresh(); 
						}

						// na koncu še posodobi košarico
						$.post(	$root_adress+$root_prefix+'core/incl_webshop_ajax.php', 
										{ shop_action: 'shop_cart_lite_refresh' }, 
										function(data) {
											$('.shop_cart_lite_data').html(data);
										}
						);
						
					}
	);
}

// FUNKCIJA za prikaz statusa.
function shop_status(status_html) {
	
	if(status_html===undefined || status_html=='') { status_html = '&nbsp;'; }
	status_html = unescape(status_html); // če je bil slučajno podan kodiran
	
	// najprej prekliči timeout za skrivanje statusa in skrij status, če je bil morda še od prej
	clearTimeout(shop_info_timeout_id);
	$('#shop_info').stop();
	$('#shop_info').clearQueue();
	$('#shop_info').slideUp(300);
	
	// potem nastavi status
	$('#shop_info_text').html(status_html);

	// potem prikaži status ... 
	$('#shop_info').slideDown(500);
	
	// in nastavi, da naj se čez X sekund skrije
	shop_info_timeout_id = setTimeout('shop_status_hide()', 8000);
	
}

// FUNKCIJA za skrivanje statusa. Kliče se s setTimeout iz funkcije shop_status.
function shop_status_hide() {
	$('#shop_info').slideUp(300);
}
