var root = "";

/* JSON unescape */
String.prototype.unescapeHtml = function () {
    var temp = document.createElement("div");
    temp.innerHTML = this;
    var result = temp.childNodes[0].nodeValue;
    temp.removeChild(temp.firstChild)
    return result;
}

// cyklovani polozek na titulni strance
yffw_cycle = {
	
	// po najeti mysi na odkazy stopne cycle
	apply_on_hover : function() {
		if ($('.yffw-cycle').size() > 0) {
			$('.yffw-cycle A.yffw-cycle-pause').hover(function(){
				$('.yffw-cycle').cycle('pause'); 
			},function(){
				$('.yffw-cycle').cycle('resume');
			});
		}
	},

	// zacne cyklovat prolinacku vsech potomku v prvni urovni elementu s tridou yffw-cycle
	apply_cycling : function() {
		if ($('.yffw-cycle').size() > 0) {
			$('.yffw-cycle').cycle({ 
	    		fx: 	'fade', 
	    		next:	'.icon-arrow-right',
	    		prev:	'.icon-arrow-left',
	    		speed:	'slow',
	    		timeout: 5000,
	    		delay:  -2000, 
			cleartype:  true,
			cleartypeNoBg:  true,
	    		sync: false // nechceme prolinat mezi sebou
	 		});
	 	} 		
	},
	
	apply_news_cycling : function() {
		if ($('.yffw-news-cycle').size() > 0) {
			$('.yffw-news-cycle').cycle({ 
	    		fx: 'scrollUp', 
				next:	'.icon-arrow-bottom',
			    timeout: 6000, 
			    delay:  -2000,
				cleartype:  true,
				cleartypeNoBg:  true
	 		});
	 	} 		
	},	

	register : function() {
 		yffw_cycle.apply_on_hover();
 		yffw_cycle.apply_cycling();
 		yffw_cycle.apply_news_cycling();
	}
}

yffw_tabber = {
	register : function() {
		$('.tabs LI A').corner('round tl tr 5px cc:#084365');
	}
}

// prevede odkaz v thumbu na onclick
yffw_onclick_thumb = {
	register : function() {
		if ($('DIV.thumb A.onclick-thumb').size() > 0) {
			$('DIV.thumb A.onclick-thumb').each(function(i, n) {
				// over
				$(n).parents('DIV.thumb').mouseover(function() {
					$(this).addClass('thumb-over');
					$(this).attr('title', $(n).attr('title'));
				});
				
				// out
				$(n).parents('DIV.thumb').mouseout(function() {
					$(this).removeClass('thumb-over');
					$(this).removeAttr('title');
				});			
				
				// click
				$(n).parents('DIV.thumb').click(function() {
					location = $(n).attr('href');
				});
				
				// visibility
				$(n).hide();
			});
		}
	}
}

yffw_basket_toggle = {
	toggle_price : function(val) {
		if (val == 1) {
			$('.basket-toggle #frame-price').hide();
			$('.basket-toggle #frame-incl-set-price').show();
		} else {
			$('.basket-toggle #frame-price').show();
			$('.basket-toggle #frame-incl-set-price').hide();
		}
	},
	
	apply_on_click : function() {
		if ($('.basket-toggle #basket-toggle').size() > 0) {
			$('.basket-toggle #basket-toggle').click(function() {
				yffw_basket_toggle.toggle_price($('.basket-toggle #basket-toggle').is(':checked'));
			});
			
			yffw_basket_toggle.toggle_price($('.basket-toggle #basket-toggle').is(':checked'));
		}
	},

	register : function() {
		yffw_basket_toggle.apply_on_click();
	}
}

yffw_frame_preferences = {

	register : function() {
		
		// pro kazdy radiobutton zaregistrujeme onclick
		if (($('DIV#frame-design-settings INPUT[@name=frameFont]').size() > 0) && 
			!(($.browser.msie) && ($.browser.version <= 6))) {
			$('DIV#frame-design-settings INPUT[@name=frameFont]').each(function(i, n) {
				$(n).click(function() {
					$('#frame-font-text').show('fast');
				});
			});
		
			$('#frame-font-text').hide();
		}
	}

}

yffw_fog = {
	// ziskani vysky ramu pro zakaznika
	customer_ajax : function() {
		var customer_shape_height = $('SELECT[name=customer_shape_height]').val() ? $('SELECT[name=customer_shape_height]').val() : 0;
		var customer_limb_length = $('SELECT[name=customer_limb_length]').val() ? $('SELECT[name=customer_limb_length]').val() : 0;
		var frame_type = $('INPUT[@name=frameTypeRes]').val();
		
		$.ajax({
				async: false,
				type: "GET",
				url: root + "/ajax.php",
				dataType: "json",
				data: "module=frame&method=ajaxGetCustomerFrameSize&params=" + customer_shape_height + "|" + customer_limb_length + "|" + frame_type,
				success: function(json) {
					// ziskame vysledek
					var customer_shape_frame_size = json['customer_shape_frame_size'];
					var customer_limb_frame_size = json['customer_limb_frame_size'];
			
					// a zapiseme do spravnych bunek
					if (customer_shape_frame_size)
						$('INPUT[name=customer_shape_frame_size]').val(customer_shape_frame_size + ' cm');
						
					if (customer_limb_frame_size)
						$('INPUT[name=customer_limb_frame_size]').val(customer_limb_frame_size + ' cm');
				},
				error: function() {
	    			alert("Chyba pri komunikaci se serverem.");
				}
			});			
	},

	toggle : function() {
	
		$('A#fog-customer-toggle').toggle('fade');
		$('DIV#fog-customer').toggle('fade');
		$('A#fog-customer-cancel').toggle('fade');
	},

	register : function() {
		var cancel = "<a id=\"fog-customer-cancel\">x</a>";

		$('A#fog-customer-toggle').siblings('B').css('float', 'left');
		$('A#fog-customer-toggle').siblings('B').after(cancel);
		$('A#fog-customer-cancel').hide();	
	
		$('A#fog-customer-toggle, A#fog-customer-cancel, BUTTON[name=fog-customer-close]').click(function() {
			yffw_fog.toggle();
			return false;
		});
		
		$('DIV#fog-customer BUTTON').click(function() {
			yffw_fog.customer_ajax();
		});

		$('DIV#fog-customer').hide();
	}
}

yffw_files = {
	show : function(elem) {
		$(elem).parent().find(':hidden').show('fast');
		$(elem).remove();
	},
	
	
	register : function() {

		if ($('DIV.page-content-files').size() > 0) {
			$('DIV.page-content-files TABLE TR TD I').each(function(i, n) {
				if ($(n).text().length > 50) {
					var substrVisible = $(n).text().substr(0,50);
					var substrHidden = $(n).text().substr(50);
					$(n).text(substrVisible);
					$(n).after("<i>" + substrHidden + "</i>");
					
					$(n).parent().find('I').eq(1).hide();
					
					$(n).parent().find('I').eq(1).after('<a href="javascript:void(0);" onclick="yffw_files.show(this); return false;">&nbsp;&hellip;</a>');
				}
			});
		}
	}
}

/* AJAX */
yffw_delivery_address = {
	ajax : function() {
		/*$.get(
			'/duratec08/ajax.php',
			{module: "account", method: "getUserDeliveryAddress", id: $('SELECT[@name=delivery_address]').val()},
			function(result) {
				$('SELECT[@name=delivery_address]').after(result);
			}
		);*/
	},
	
	click : function() {
		$('TABLE#delivery-address').find('INPUT[@type=text]').each(function(i, n) {
			if ($('INPUT[@name=delivery_address_check]').is(':checked')) { 
				$(n).val($('TABLE#personal-address INPUT[@type=text]').eq(i).val());
				//$(n).attr('readonly', 'readonly');
			} else {
				//$(n).removeAttr('readonly');
				$(n).val('');
			}
		});
		
		$('TABLE#delivery-address').find('SELECT').each(function(i, n) {		
			if ($('INPUT[@name=delivery_address_check]').is(':checked')) {
				$(n).val($('TABLE#personal-address SELECT').eq(i).val());
				//$(n).attr('disabled', 'disabled');
			} else {
				//$(n).removeAttr('disabled');
			}
		});
		
	},
	
	change : function() {
		$('TABLE#delivery-address').find('INPUT, SELECT').each(function(i, n) {
			$(n).change(function() {
				$('INPUT[@name=delivery_address_check]').removeAttr('checked');
			});
		});
	},
	
	register : function() {
		if ($('INPUT[@name=delivery_address_check]').size() > 0) {
			$('INPUT[@name=delivery_address_check]').click(function() {
				yffw_delivery_address.click();
			});
	
			$('BUTTON.next-step').click(function() {
				$('TABLE SELECT').removeAttr('disabled');
			});
	
			yffw_delivery_address.change();
		}
	}
}

/**
* automaticky prepocet cen pro sestavy
*/
yffw_own_set = {
	
	// aktualizujeme cenu
	recount_price : function() {
		// jen pokud mame povinne polozky, muzeme pocitat
		if ($('DIV#frame-component-sets TABLE TR TD SELECT.required[@value=0]').size() == 0) {
			var lang = $('INPUT[@name=active_lang]').val();

			$.ajax({
				async: false,
				type: "GET",
				url: root + "/ajax.php",
				dataType: "json",
				data: "lang=" + lang + "&module=frame&method=ajaxGetOwnSetPrice&params=",
				success: function(json) {
					// nastavime ceny		
					$('TABLE TD#frame-incl-set-weight').text(json['frame_incl_set_weight'].unescapeHtml());
					$('TABLE TD#frame_plus_component_set_price_incl_VAT').text(json['frame_plus_component_set_price_incl_VAT'].unescapeHtml());
					$('TABLE TD#frame_plus_component_set_discount_price_incl_VAT').text(json['frame_plus_component_set_discount_price_incl_VAT'].unescapeHtml());
					
					$('#frame-incl-set-price SPAN.price').text(json['frame_plus_component_set_discount_price_incl_VAT'].unescapeHtml());				
				},
				error: function() {
	    			alert("Chyba pri komunikaci se serverem pro prepocet ceny.");
				}
			});	
			
			// varovani uz nepotrebuje
			$('DIV#frame-component-sets TABLE').siblings('P.warning').find('SPAN').text('0');
			//$('DIV#frame-component-sets TABLE').siblings('P.warning').hide();				
			$('DIV#frame-component-sets TABLE SELECT').parents('TR').find('TD, TH').removeClass('required-row');
			
			// objednat uz take muze
			yffw_basket_toggle.toggle_price(1);
			$('#basket-toggle').attr('checked', 'checked');
			$('#basket-toggle').removeAttr('disabled');
			
			$('DIV#frame-component-sets P.info').show();
			$('DIV#frame-component-sets P.warning').hide();		
		} else {
			// zvyraznime ty, ktere je jeste potreba nadefinovat
			var requiredBlank = $('DIV#frame-component-sets TABLE TR TD SELECT.required[@value=0]');
			var requiredSet = $('DIV#frame-component-sets TABLE TR TD SELECT.required[@value!=0]');
			
			$(requiredBlank).parents('TR').find('TD, TH').addClass('required-row');
			$(requiredSet).parents('TR').find('TD, TH').removeClass('required-row');
			
			$('DIV#frame-component-sets TABLE').siblings('P.warning').find('SPAN').text($(requiredBlank).size());
			$('DIV#frame-component-sets TABLE').siblings('P.warning').show();
			
			// nastaveni default hodnot	
			$('TABLE TD#frame-incl-set-weight').text('---');
			$('TABLE TD#frame_plus_component_set_price_incl_VAT').text('---');
			$('TABLE TD#frame_plus_component_set_discount_price_incl_VAT').text('---');
						
			$('#frame-incl-set-price SPAN.price').text($('#frame_sellout_price_incl_VAT').text());
		
			// neumoznim objednat, vypnu checkbox	
			yffw_basket_toggle.toggle_price(0);
			$('#basket-toggle').removeAttr('checked');
			$('#basket-toggle').attr('disabled', 'disabled');
	
			$('DIV#frame-component-sets P.info').hide();
			$('DIV#frame-component-sets P.warning').show();			
		}
	},
	
	// pridame ID ramu a typ do session
	frame_to_session : function() {
		$.ajax({
			async: false,
			type: "GET",
			url: root + "/ajax.php",
			dataType: "text",		
			data: "module=frame&method=ajaxAddFrameIdToSession&params=" + $('INPUT[@name=frame_id]').val() + "|" + $('INPUT[@name=frameTypeRes]').val(),
			success: function(result) {
				if (!result)
					alert('Nastala chyba pri komunikaci se serverem.');
			},
			error: function(err) {
	    		alert("Chyba pri komunikaci se serverem pri vkladani ramu do session.\n\n" + err.responseText);
			}
		});
	},
	
	// pridame ID skupiny komponent a samotne komponenty do session
	comp_to_session : function(compId, cgId) {
		
		$.ajax({
			async: false,
			type: "GET",
			url: root + "/ajax.php",
			dataType: "text",
			data: "module=frame&method=ajaxAddCompIdToSession&params=" + cgId + "|" + compId,
			success: function(result) {
					if (!result)
						alert('Nastala chyba pri komunikaci se serverem.');
			},
			error: function(err) {
	    		alert("Chyba pri komunikaci se serverem pri vkladani komponenty do session.\n\n" + err.responseText);
			}
		});	
	},
	
	// ziskame ze session zamcene
	get_locked_comps : function() {
		$.ajax({
			async: false,
			type: "GET",
			url: root + "/ajax.php",
			dataType: "json",
			data: "module=frame&method=ajaxLockAndUnlock&params=",
			success: function(json) {

				// nejprve vsechny zamcene odemkneme
				$('DIV#frame-component-sets TABLE SELECT[disabled]').each(function(i, n) {
					$(n).val(0);
					$(n).removeAttr('disabled');
					yffw_own_set.comp_to_session('0', $(n).siblings('INPUT[@type=hidden]').val());
							
				});			

				// a zamkneme dle aktualnich
				if (json != false) {
					for (var index in json) {
						$('DIV#frame-component-sets TABLE SELECT OPTION').each(function(i, n) {
							if ($(n).val() === json[index]) {
								yffw_own_set.comp_to_session('0', $(n).parent().siblings('INPUT[@type=hidden]').val());
								$(n).parent().val(json[index]);
								$(n).parent().attr('disabled', 'disabled');
							}
						});
					} 
				} 
				
			},
			error: function(err) {
    			alert("Chyba pri komunikaci se serverem pro prepocet ceny.\n\n" + err.responseText);
			}
		});		
	},
	
	/**
	* Vlastni volani prepoctu.
	*/
	ajax : function(compId, cgId) {
		var selects = $('DIV#frame-component-sets TABLE TR TD SELECT');
		$(selects).css('visibility', 'hidden');
	
		yffw_own_set.frame_to_session();
		yffw_own_set.comp_to_session(compId, cgId);	
	
		$(selects).css('visibility', 'visible');
		
		yffw_own_set.get_locked_comps();	
		yffw_own_set.recount_price();
	},

	register : function() {
		// --- vlastni sestava ---
		$('DIV#frame-component-sets').prepend('<div class="loading">&nbsp;</div>');
		$('DIV.loading').hide();
		
		// registrace akci pro selecty
		var selects = $('DIV#frame-component-sets TABLE TR TD SELECT');
		
		if ($(selects).size() > 0) {
			$(selects).each(function(i, n) {
				$(n).change(function() {
					$('DIV.loading').show();
					
					yffw_own_set.ajax($(n).val(), $(n).siblings('INPUT[@type=hidden]').val());
					
					$('DIV.loading').hide();

				});
			});

			yffw_own_set.frame_to_session();	
			yffw_own_set.get_locked_comps();
			yffw_own_set.recount_price();
		}
		
		// --- schovani vlastni sestavy v objednavce ---
		if ($('#order-form').size() == 0) { 
			$('TABLE#basket-content .basket-own-set-items').after('<a class="basket-own-set-link" style="cursor: pointer;">' + $('INPUT[name=js_locale_own_set]').val() + '&nbsp;&raquo;</a>');
			$('TABLE#basket-content .basket-own-set-items').hide();
			
			$('TABLE#basket-content .basket-own-set-link').click(function() {
				$(this).siblings('TABLE#basket-content .basket-own-set-items').show('slow');
				$(this).remove();
			});
		}
	}
}

// vsem odkazum, ktere maji tridu external, doplni target="_blank"
yffw_external = {

	register : function() {
		$('A.external').attr('target', '_blank');
	}
}

yffw_news = {
	
	register : function() {
		// schovani textu po prvnim odstavci
		if ($('DIV#blog-news DIV.news-item').size() > 0) {
			$('DIV#blog-news DIV.news-item').each(function(i, n) {
				if ($(n).find('P').size() > 1) {
					$(n).find('P:gt(0)').hide();
					$(n).find('P:hidden').eq(0).after('<a class="more" style="cursor: pointer;">' + $('INPUT[@name=js_locales_more]').val() + '&nbsp;&raquo;</a>');
					
					$(n).find('A.more').click(function() {
						$(n).find('P').slideDown('fast');
						$(this).remove();
					});
				}
			});
		}	
	
		// galerie fotek
		if ($('DIV.gallery-container').size() > 0) {
			$('DIV.gallery-container').hide();
		}
	}
}

yffw_ie6_hacks = {
	register : function() {
		$('#horizontal-menu UL LI').mouseover(function() { 
			$(this).addClass('over');
		});
		
		$('#horizontal-menu UL LI').mouseout(function() { 
			$(this).removeClass('over');
		})		
	}
}

yffw_product = {
	
	recount_price : function(elem) {
		var pcs = $(elem).parents('.pcs').find('INPUT[name=basket_pieces]').val();
		var price = $(elem).parents('.basket').find('INPUT[name=basket_price_unformatted]').val();
		var lang = $('INPUT[@name=active_lang]').val();
		
		if ((pcs <= 0) || (pcs >= 50)) {
			if (pcs <= 0)
				pcs = 1;
			else
				pcs = 50;
				
			$(elem).parents('.pcs').find('INPUT[name=basket_pieces]').val(pcs);
		}
		
		$.ajax({
			async: false,
			type: "GET",
			url: root + "/ajax.php",
			dataType: "json",
			data: "lang=" + lang + "&module=product&method=ajaxGetFormattedPrice&params=" + pcs + "|" + price,
			success: function(json) {
				$(elem).parents('.basket').find('.price SPAN').text(json['product_formatted_price'].unescapeHtml());
			},
			error: function() {
    			alert("Chyba pri komunikaci se serverem pro prepocet ceny.");
			}
		});

		return false;
	},

	hide_all : function() {
		$('#products-list .product-item').each(function(i, n) {
			$(n).hide();
		});
	},
	
	show_scroll : function() {
		$('#screen').show();
	},
	
	register : function() {
		$.easing.backout = function(x, t, b, c, d){
			var s=1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		};
		
	
		$('#view').serialScroll({
			items: 'li',
			prev:'#screen a#left',
			next:'#screen a#right',
			force:true,
			stop:true,
			cycle:false,
			lock:false,
			start: 0
		});


		$('#screen').find('LI.scroll-item IMG').each(function(i, n) {
			 $(n).click(function() {
			 	var id = $(n).parents('LI.scroll-item').attr('id');
			 	
			 	yffw_product.hide_all();
			 	$('#products-list').find('.' + id).show('slow');
				return false;
			 });
		});	
		
		yffw_product.hide_all();
		yffw_product.show_scroll();
		
		// prepocet ceny
		$('.basket .pcs BUTTON').click(function() {
			yffw_product.recount_price(this);
			return false;
		});
	}
}

yffw_antispam = {

	register : function() {
		$('DIV#antispam').hide();
		
		$('DIV#antispam').parent().find('BUTTON.final-step').click(function() {
			$('DIV#antispam').find('INPUT:text[name=antispam]').val('DURATEC');
		});
	}
}

yffw_help_box = {
	register : function() {
		if ($.browser.msie && ($.browser.version <= 6)) {
			$('DIV#fog-customer').hide();
			$('A#fog-customer-toggle').hide();
		} else {	
			$('A.help-box-trigger').each(function(i, n) {
				$(n).mouseover(function() {
					$('DIV.help-box').show();
				});
				
				$(n).mouseout(function() {
					$('DIV.help-box').hide();
				});
				
				$(n).click(function() {
					return false;
				});
			});
		}
	}
}

/* ONLOAD */
$(document).ready(function() {

	$(document).ajaxError(function(){
	    if (window.console && window.console.error) {
	        console.error(arguments);
	    }
	});

	$(document).pngFix();
	yffw_cycle.register();
	yffw_onclick_thumb.register();
	yffw_basket_toggle.register();
	yffw_delivery_address.register();
	yffw_external.register();
	yffw_news.register();
	yffw_frame_preferences.register();
	yffw_own_set.register();
	yffw_fog.register();
	yffw_product.register();
	yffw_antispam.register();
	yffw_help_box.register();
	
	/*if ($.browser.msie && ($.browser.version <= 6)) {
		yffw_ie6_hacks.register();
	} */
	
	/*if (!($.browser.msie && ($.browser.version <= 6))) {
		$("DIV#frame-base #photo a").magnify({
		    showEvent: 'click',
		    hideEvent: 'click',
		    lensWidth: 100,
		    lensHeight: 140,
		    preload: true,
		    stagePlacement: 'left',
		    loadingImage: '/loadingAnimation.gif',
		    lensCss: { 
		    	backgroundColor: 'fff',
		    	border: '1px',
		    	opacity: 0.2 },
		    stageCss: { 
		    	border: '3px solid #2f96b5'
		    }
		});
	}*/

	$('#yffw-ln-cycle').after('<div id="nav">').cycle({ 
	    fx:     'fade', 
	    speed:  'slow', 
	    timeout: 7000, 
	    pager:  '#nav',
		cleartype:  true,
		cleartypeNoBg:  true
	});	
	
	$('#home-catalog-list-inner').serialScroll({
		items: 'DIV.preview-item',
		prev:'a#left',
		next:'a#right',
		force: true,
		stop: true,
		cycle: true,
		constant: false,
		lock: false,
		start: 0,
		interval: 5000,
		exclude: 3
	});
	

	if ($('#yffw-ln-cycle').size() > 0) {
		$('#yffw-ln-cycle .ln-item').hover(function(){
			$('#yffw-ln-cycle').cycle('pause'); 
		},function(){
			$('#yffw-ln-cycle').cycle('resume');
		});
	}
});
