﻿function OnAgreementClientValidate(validator, args)
{
	args.IsValid = $(".checkbox-agreement input:first").attr("checked");
}

function OnVariantsClientValidate(validator, args)
{
	var totalAmount = 0;
	var valid = true;
	
	$(".amount").each
	(
		function()
		{
			var i = parseInt($(this).val());
			
			try
			{
				if (i >= 0)
				{
					totalAmount += i;
				}
				else
				{
					valid = false;
				}
			}
			catch(ex)
			{
				valid = false;
			}
		}
	);
	
	args.IsValid = valid && totalAmount > 0 && totalAmount <= 100;
}

function OnShippingAddressClientValidate(validator, args)
{
	var fname = jQuery.trim($(".ship-fname").val());
	var lname = jQuery.trim($(".ship-lname").val());
	var street = jQuery.trim($(".ship-street").val());
	var city = jQuery.trim($(".ship-city").val());
	var zip = jQuery.trim($(".ship-zip").val());
	var company = jQuery.trim($(".ship-company").val());
	
	if (fname.length > 0 || lname.length > 0 || street.length > 0 || city.length > 0 || zip.length > 0
		|| company.length > 0)
	{
		args.IsValid = fname.length > 0 && lname.length > 0 && street.length > 0 && city.length > 0 && zip.length > 0;
	}
	else
	{
		args.IsValid = true;
	}
}

/// *****************************************************************
/// 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 });
}
