/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};



$(document).ready(function () {
	$.umi.vote('form.vote');
	$('a.preview').lightBox();
	$.umi.cart({
		'row': 'table.cart tr.item-row',
		'amount': 'input.amount',
		'price-total': '.price-total',
		'remove': '.del',
		'summary-price': '.cart-summary'
	});

    $('form.autocheck').submit(function () {

			var fields = [];
			$(this).find('label.required').each(function () {
				var $this = $(this), $input = $this.prev("input");
				if(!$input.val()) {
					fields.push($this.text().replace(/[\*\:]+/g, ''));
				}
			});

			if(fields.length) {
				alert('Нужно заполнить поля: ' + fields.join(', ') + '.');
				return false;
			}
	});
	
	$('a.purchase').click(function (event) {
	    if ($(this).attr("rel") == "#boxes .register") return false;

		if($('#delivery-disclaimer').size() && !$('#delivery-disclaimer').attr('checked')) {
			alert("Подтвердите, что Вы ознакомились со всеми пунктами договора.");
            return false;
		} else {
		    $("#purchasecomment").submit();
            return false;
		}
	});

	var $tabs = $('.tab a');
	if($tabs.size()) {
		var _id = function ($tab) {
			return $tab.attr('href').substring(1)
		};
		
		$('html').attr('id', _id($tabs.first()));
	
		$tabs.click(function () {
			var $this = $(this);
			$('html').attr('id', _id($this));
			$('.tab a').parent().removeClass('active');
			$this.parent().addClass('active');
			return false;
		});
	}
	
	var $forgetInput = $('#forget input[type="text"]');
		$('#forget #login').click(function () {
			$forgetInput.attr('name', 'forget_login');
		});
		
		$('#forget #email').click(function () {
			$forgetInput.attr('name', 'forget_email');
		});


	$('#purchase a').click(function () {
		$('#purchase').submit();
		return false;
	});
	
	var $errors = $('#errors p');
	if($errors.size()) {
		$errors.each(function (index, node) {
			alert($(node).html());
		});
	}
	
	$('.show-company-fields').click(function () {
		var $company = $('#registrate .company'), $this = $(this);
		if($company.css('display') == 'none') {
			$('#registrate .left, #registrate .right').hide();
			$company.show();
			$this.html('Скрыть поля для юр. лиц');
		} else {
			$('#registrate .left, #registrate .right').show();
			$company.hide();
			$this.html('Показать поля для юр. лиц');
		}
	});

	$('.comments a.toggle').click(function () {
		$('.comments ul').toggle();
		return false;
	});
	

	$('.leave-comment form a').click(function () {
		$('.leave-comment form').submit();
		return false;
	});
	
	
	var showMask = function () {
		//Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		//Set height and width to mask to fill up the whole screen
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		
		//transition effect		
		$('#mask').fadeTo("slow",0.8);	
	
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
	
		return false;
	}
	
	var showBasketBox = function () {
		showMask ();
		
		$('#mask').click (function () {
			$('#basket-box').remove();
		});
		
		var $div = $('<div id="basket-box" />');
		$div.append ( $("<p>").html ('Товар был успешно добавлен в корзину') );
		$div.append ( $("<a class='go-basket'>").html ('Оформить заказ') );
		$div.append ( $("<a class='go-cancel'>").html ('Добавить еще товар') );
		
		$(document.body).append ($div);

		$div.find ('.go-basket').click (function () {
			window.location = '/emarket/cart/';
		});
		
		$div.find ('.go-cancel').click (function () {
			$('#basket-box').remove ();
			$('#mask').hide ();
		});

	};
	
	$('#purchase .basket-add').click (function () {
		$.cookie("add-to-basket", "yes");
		
		return false;
	});
	
	
	if ($.cookie ("add-to-basket")) {
		$.cookie ("add-to-basket", "");
		showBasketBox ();
	}
	
	$('#is_company_cbx').click (function () {
		$('#company').toggle ();
	});
});


$(document).ready (function () {
	var company_fields = {
		'contact_person': ['lname', 'fname', 'father_name'],
		'phone_number': ['phone'],
		'email': ['e-mail'],
		'name': ['naimenovanie_organizacii'],
		// 'legal_address': [],
		// 'defacto_address': [],
		// '
		'post_address': ['fax'],
		'inn': ['inn'],
		'account': ['raschetnyj_schet'],
		'bank': ['naimenovanie_banka'],
		'bank_account': ['kor_schet_banka'],
		'bik': ['bik'],
		'ogrn': ['ogrn'],
		'kpp': ['kpp']
	};
	
	$('.invoice input').each (function () {

		var $this = $(this);
		var name = $this.attr ('name');
		if (out = name.match (/data\[new\]\[(.*)\]/)) {
			var fname = out [1];
			

			if (typeof company_fields [fname] != 'undefined' && company_fields [fname].length) {
				var values = [];
				var fs = company_fields [fname];
				for (var i = 0; i < fs.length; i++) {
					var field_id = fs[i];
					var $input = $('#user-fields div.' + field_id);
					var value = $input.html ();

					if (value) {
						values.push (value);
					}
				}
				
				if (values.length) {
					$this.val (values.join (' '));
				}
			}
		}
	});
});
