// 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_info_id = "shop_info";
var shop_add_to_cart_button_id = "shop_add_to_cart_button";
var shop_chosen_color = '';
var shop_info_id = ''; // element, v katerem se izpiše 

// 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_no = $('#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_no, 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_no, 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_no===undefined) { color_no = ""; }
	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_no, size_no: size_no, quantity: quantity, flag: flag, text_1: text_1 },
				function(data){
					// sem daj kodo, ki se naj zgodi ob prejetju odgovora
					// document.title = 'item_no: ' + item_no + ', color_no: ' + color_no + ', size_no: ' + size_no + ', quantity: ' + quantity + ', flag: ' + flag + ', text_1: ' + text_1;
					response_status = jQuery.trim(data.split('	')[0]);
					// alert(response_status.length);
					if(response_status=="ok") {
						// 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>');
						// posodobi shop_already_in_cart, če obstaja
						if(getElement('shop_already_in_cart')) {
							shop_already_in_cart_refresh(); 
						}
						// posodobi shop_sizes_div, če obstaja
						if(getElement('shop_sizes_div')) {
							shop_sizes_refresh(color_no); 
						}
						// zapiši v statusno polje, kaj se je zgodilo
						setTimeout("shop_status('" + escape(data.split('	')[2]) + "', true)", 2000);
					} else if(response_status=="ok_replaced") {
						// preusmeri v košarico
						document.location = $root_adress+$root_prefix+'?view=shop_cart';
					} else {
						if(getElement(shop_info_id)) {
							shop_status(data.split('	')[2], true);
						}
					}		
				}
	);
	
}


// FUNKCIJA za prikaz statusa in utripanje. Najprej stvar npr. 1 sekundo utripa, potem je prikazana še npr. 5 sekund, potem pa izgine
function shop_status(status_html, flicker) {
	// flicker: ali naj zapis tudi utripne po prikazu
	if(status_html===undefined || status_html=='') { status_html = '&nbsp;'; }
	
	status_html = unescape(status_html); // če je bil slučajno podan ko kodiran
	
	if(flicker===undefined) { flicker = false; }

	if(shop_info_id=='') { shop_info_id = 'shop_info'; }

	// najprej ukini prejšnje utripanje, če se še izvaja, in zapiši html v shop_info objekt
	$('#'+shop_info_id).clearQueue();
	$('#'+shop_info_id).html(status_html);

	// potem utripaj, če je bilo tako določeno
	if(flicker) {
		$('#'+shop_info_id).fadeTo(300, 0.1);
		$('#'+shop_info_id).fadeTo(20, 1);
		$('#'+shop_info_id).fadeTo(300, 0.1);
		$('#'+shop_info_id).fadeTo(20, 1);
		$('#'+shop_info_id).fadeTo(300, 0.1);
		$('#'+shop_info_id).fadeTo(20, 1);
		$('#'+shop_info_id).fadeTo(300, 0.1);
		$('#'+shop_info_id).fadeTo(20, 1);
		$('#'+shop_info_id).fadeTo(300, 0.1);
		$('#'+shop_info_id).fadeTo(20, 1);
		// potem za 5 sekund prikaži obvestilo
		$('#'+shop_info_id).delay(5000);
		// potem pa obvestilo počasi zbledi, se nastavi na prazno in popolnoma prikaže
		$('#'+shop_info_id).fadeTo(2000, 0.01, 
															 function(data) { 
															 		$('#'+shop_info_id).html('&nbsp;'); 
															 		$('#'+shop_info_id).fadeTo(100, 1); 
															 } 
		);
	}
	
}

