﻿/// *****************************************************************
/// SEARCH
/// *****************************************************************
var SearchInput = null, SearchButton = null, SearchInitialText = null;

function SearchInit()
{
	$(document).ready
	(
		function()
		{
			SearchInput = $(".search-input");
			SearchButton = $(".search-submit");
		
			SearchInitialText = jQuery.trim(SearchInput.val());
			
			SearchInput
				.focus
				(
					function()
					{
						if (jQuery.trim($(this).val()) == SearchInitialText) $(this).val("");
					}
				)
				.blur
				(
					function()
					{
						if (jQuery.trim($(this).val()).length == 0) $(this).val(SearchInitialText);
					}
				)
				.keypress
				(
					function(e)
					{
						if (e.keyCode == KeyCode_Enter)
						{
							e.preventDefault();
							SearchButton.click();
							return false;
						}
					}
				);
			
			SearchButton
				.click
				(
					function(e)
					{
						var expression = jQuery.trim(SearchInput.val());
						if (expression.length >= 3 && expression != SearchInitialText) return true;
						else
						{
							e.preventDefault();
							SearchInput.focus();
							return false;
						}
					}
				);
		}
	);
}

/// *****************************************************************
/// FONT SIZE SETTING
/// *****************************************************************
var FontSizeSettingContainer = null;

var FontSizeSettingContainerID = "main";
var FontSizeSettingIncreaseButtonClassName = "font-plus";
var FontSizeSettingDecreaseButtonClassName = "font-minus";
var FontSizeSettingDefaultButtonClassName = "font-default";

var FontSizeSettingDefaultSize = 100;
var FontSizeSettingSelectedSize = 100;
var FontSizeSettingIncrementSize = 15;

var FontSizeSettingMaxSize = 160;
var FontSizeSettingMinSize = 85;

function FontSizeSettingInit()
{
	$(document).ready
	(
		function()
		{
			FontSizeSettingContainer = $("#" + FontSizeSettingContainerID);
			
			$("." + FontSizeSettingIncreaseButtonClassName).click
			(
				function(e)
				{
					e.preventDefault();
					FontSizeSettingIncreaseSize();
				}
			);
			
			$("." + FontSizeSettingDecreaseButtonClassName).click
			(
				function(e)
				{
					e.preventDefault();
					FontSizeSettingDecreaseSize();
				}
			);
			
			$("." + FontSizeSettingDefaultButtonClassName).click
			(
				function(e)
				{
					e.preventDefault();
					FontSizeSettingSetDefaultSize();
				}
			);
			
			// vyuziti cookie
			var cookieValue = $.cookie(PreferredFontSizeCookieName);
			if (cookieValue != null && cookieValue.length > 0)
			{
				FontSizeSettingSetSize(parseInt(cookieValue));
			}
		}
	);
}

function FontSizeSettingIncreaseSize()
{
	FontSizeSettingSetSize(FontSizeSettingSelectedSize + FontSizeSettingIncrementSize);
}

function FontSizeSettingDecreaseSize()
{
	FontSizeSettingSetSize(FontSizeSettingSelectedSize - FontSizeSettingIncrementSize);
}

function FontSizeSettingSetDefaultSize()
{
	FontSizeSettingSetSize(FontSizeSettingDefaultSize);
}

function FontSizeSettingSetSize(size)
{
	if (size < FontSizeSettingMinSize || size > FontSizeSettingMaxSize) return;
	
	FontSizeSettingContainer.css("font-size", String(size) + "%");
	
	FontSizeSettingSelectedSize = size;
	
	var cookieExpirationDate = new Date();
	cookieExpirationDate.setTime(cookieExpirationDate.getTime() + (365 * 24 * 60 * 60 * 1000));
	$.cookie(PreferredFontSizeCookieName, String(size), { path: '/', expires: cookieExpirationDate });
}

/// *****************************************************************
/// REPLACEABLE COVER AMOUNT ADJUSTMENT
/// *****************************************************************
function ReplaceableCoverAmountAdjustmentInit()
{
	$(document).ready
	(
		function()
		{
			$(".cover-amount-button-plus")
				.each
				(
					function(itemIndex, item)
					{
						$(this)
							.click
							(
								function(e)
								{
									ReplaceableCoverAmountAdjustmentIncreaseAmount(itemIndex);
									e.preventDefault();
									item.blur();
								}
							);
					}
				);
			
			$(".cover-amount-button-minus")
				.each
				(
					function(itemIndex, item)
					{
						$(this)
							.click
							(
								function(e)
								{
									ReplaceableCoverAmountAdjustmentDecreaseAmount(itemIndex);
									e.preventDefault();
									item.blur();
								}
							);
					}
				);
		}
	);
}

function ReplaceableCoverAmountAdjustmentIncreaseAmount(index)
{
	ReplaceableCoverAmountAdjustmentSetAmount(index, 1);
}

function ReplaceableCoverAmountAdjustmentDecreaseAmount(index)
{
	ReplaceableCoverAmountAdjustmentSetAmount(index, -1);
}

function ReplaceableCoverAmountAdjustmentSetAmount(index, amountIncrement)
{
	var input = ReplaceableCoverAmountAdjustmentGetInput(index);
	var currentValueAsString = input.val();
	var currentValue = ReplaceableCoverAmountAdjustmentParseInt(currentValueAsString);
	
	if (currentValue != null)
	{
		var valueToSet = currentValue + amountIncrement;
		
		if (valueToSet >= 0)
		{
			input.val(currentValue + amountIncrement);
		}
		else input.val(0);
	}
	else
	{
		input.val(0);
	}
}

function ReplaceableCoverAmountAdjustmentGetInput(i)
{
	return $(".cover-amount-input:eq("+ String(i) +")");
}

function ReplaceableCoverAmountAdjustmentParseInt(amountAsString)
{
	try
	{
		var tempIntValue = parseInt(amountAsString, 10);
		return tempIntValue;
	}
	catch(e)
	{
		return null;
	}
}

function ReplaceableCoverAmountAdjustmentIsValid()
{
	var totalAmount = 0;
	
	$(".cover-amount-input")
		.each
		(
			function()
			{
				var amountAsString = $(this).val();
				var amount = ReplaceableCoverAmountAdjustmentParseInt(amountAsString);
				
				if (amount != null && amount >= 0) totalAmount += amount;
				else return false;
			}
		);
	
	return totalAmount > 0;
}
