

function getURLVar(key) {
	var value = [];

	var query = String(document.location).split('?');

	if (query[1]) {
		var part = query[1].split('&');

		for (i = 0; i < part.length; i++) {
			var data = part[i].split('=');

			if (data[0] && data[1]) {
				value[data[0]] = data[1];
			}
		}

		if (value[key]) {
			return value[key];
		} else {
			return '';
		}
	}
}

/* fix after editor START */
$(document).ready(function() {
    $('.mist_post .col-md-6:has(p),.mist_post .col-md-6:has(h3)').addClass('text-column');
    $('.mist_post .col-md-6:has(figure)').addClass('image-column');
});
/* fix after editor FIN */

/** promo 40  START *********************************************************** */
function load_promo_discount(json){
    return;
    if( json['promo_disctoun'] == 1 ){
        $('#modal_account').html(json['discount_html']);
        login_modal.show();     
    }
}
/** promo 40    END *********************************************************** */


/** ---------------------------------------------------------------------------- */
    var mobileMenuState = false;
	$(document).on('click', '.menu-button-wrapper', function(event) {
		event.preventDefault();
		switchMobileMenuState();

		if(mobileMenuState == true) {
			//$('.mobile-dropdown-wrapper').load('?route=common/header/populateDropdownMobile');
		}
	});
	$(document).on('click', '.overlay-black', function(event) {
		event.preventDefault();
        //if($('.mobile_menu').is(':visible'))
		switchMobileMenuState();
	});    
    function switchMobileMenuState() {
		if(mobileMenuState == false) {
		    $('.sub_menu_m').hide();
            $('.sub_menu_m').css('left','100%');
            $('.sub_menu_m').css('rigth','-100%');
            $('#top_menu').css('overflow-y','auto');
               
			$('.overlay-black').css('z-index', '1000999999');
			$('body').css('overflow', 'hidden');
			$('.overlay-black').css('background-color', 'rgba(0,0,0,0.6)').fadeIn(400);
			$('.overlay-black').html('<div class="close-btn-wrapper"><button type="button" class="close-mobile-btn"></button></div>')
			$('.mobile-dropdown-wrapper').animate({'left': '0'}, 400);
            
			mobileMenuState = true;
		}else {
			$('.overlay-black').css('z-index', '950');
			$('body').css('overflow', 'auto');
			$('.overlay-black').fadeOut(400);
			$('.mobile-dropdown-wrapper').animate({'left': '-85vw'}, 400);
			mobileMenuState = false;
		}
	}
/** ---------------------------------------------------------------------------- */

/** for ajax on category pages */
function trustpilot_activate(){
    var element = document.getElementsByClassName("trustpilot-widget");
    for(var i=0; i<element.length; i++) {
        if (typeof(window.Trustpilot) != "undefined")
        window.Trustpilot.loadFromElement(element[i]);
    }        
}

$(document).on('keydown', function(e) {
  if (e.keyCode == 27)
    $('.dropdown-menu').hide();
});
    
  
function load_cart(){
    if( $('#cart_wr').length > 0 ){
        $('#cart_wr').load('index.php?route=common/cart/info&_t='+Math.random(),function(){
            if( $('#free_ship_pr_mes').length > 0 ){ 
                total_cart_money = parseFloat( $('#total_cart_money').val() );
                left_for_free_ship = 40-total_cart_money;
                left_for_free_ship = Math.round(left_for_free_ship*100)/100;
    
                $txt = "Spend <span class='unr_dash tippy' >&pound;40</span> more for <span class='unr_dash tippy' >FREE</span> UK delivery";
                if( total_cart_money > 0 && total_cart_money < 40 ){
                    $txt = "You're <span class='unr_dash tippy' >&pound;"+left_for_free_ship+"</span> away from <span class='unr_dash tippy' >FREE</span> shipping!";
                }
                if( total_cart_money > 40 ){
                    $txt = "You've qualified for <span class='unr_dash tippy' >FREE</span> UK shipping!";
                }         
                $('#free_ship_pr_mes').html($txt);
            }            
        }); 
    } else {
        $.ajax({
        	url: 'index.php?route=common/cart/get_cart_total',
            dataType: 'json',
            success: function(json) {
                if( $('#free_ship_pr_mes').length > 0 ){ 
                    total_cart_money = parseFloat( json['total_cart_money'] );
                    left_for_free_ship = 40-total_cart_money;
                    left_for_free_ship = Math.round(left_for_free_ship*100)/100;
        
                    $txt = "Spend <span class='unr_dash tippy' >&pound;40</span> more for <span class='unr_dash tippy' >FREE</span> UK delivery";
                    if( total_cart_money > 0 && total_cart_money < 40 ){
                        $txt = "You're <span class='unr_dash tippy' >&pound;"+left_for_free_ship+"</span> away from <span class='unr_dash tippy' >FREE</span> shipping!";
                    }
                    if( total_cart_money > 40 ){
                        $txt = "You've qualified for <span class='unr_dash tippy' >FREE</span> UK shipping!";
                    }         
                    $('#free_ship_pr_mes').html($txt);
                }                                 	
            }  
        });
        
        
    }

}
/** ------------------------------------- ACCOUNT ----------------------------- */
var login_modal = new bootstrap.Modal(document.getElementById('login_modal'), {
    keyboard: false
});      

function show_pop_up(html_){
    $('#modal_account').html(html_);
    html = 
    '<div id="login_top">\
      <img class="align-self-center" src="image/catalog/template/logo_footer.png"/>'+html_+'</div>\
     <hr/>\
    <div class="d-flex justify-content-between  btn_check_ship_m">\
      <input type="button" value="Continue shopping" onclick="login_modal.hide();"  class="btn btn-outline-secondary" />\
      <a href="index.php?route=checkout/checkout" class="btn btn-primary" />Checkout now</a>\
    </div>';
    $('#modal_account').html(html); 
    login_modal.show(); 
}

function show_simple_pop_up(html){
    $('#modal_account').html(html);
    login_modal.show(); 
}


function notify_me(){
    $('#modal_account').html('<div style="text-align:center"><div class="spinner-border text-success" role="status"><span class="visually-hidden">Loading...</span></div></div>'); 
    login_modal.show();
    
    $.ajax({
    	url: 'index.php?route=extension/module/notifywhenavailable/show_form',
        dataType: 'html',
        success: function(html) {
            if( html == 'logged' ){
                location = 'index.php?route=account/account'; 
            } else {
                $('#modal_account').html(html);
            } 
        }  
    });
    return false;    
}


function send_notify_form(){
    $('#login_top_msg').html(''); 
    $('#sign_in_btn').html('loading...');
    $.ajax({
    	url: 'index.php?route=extension/module/notifywhenavailable/submitform',
        type: 'post',
    	data: $('#login_modal input[type=\'text\'], #login_modal input[type=\'password\'], #login_modal input[type=\'hidden\'], #login_modal input[type=\'radio\']:checked, #login_modal input[type=\'checkbox\']:checked, #login_modal select, #login_modal textarea, #product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
        dataType: 'json',
        success: function(json) {
            $('#sign_in_btn').html('Notify me!');
			if (json['error']) {
				$('#login_top_msg').html('<div class="alert alert-danger alert-dismissible fade show" role="alert">' + json['error'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
			}
			if (json['success']) {
                $('#login_top_msg').html('<div class="alert alert-success alert-dismissible fade show" role="alert">' + json['success'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
			}            	
        }  
    });    
}

function show_create_account(page=''){
    $('#modal_account').html('<div style="text-align:center"><div class="spinner-border text-success" role="status"><span class="visually-hidden">Loading...</span></div></div>'); 
    login_modal.show();
    $.ajax({
    	url: 'index.php?route=account/register&page='+page,
        dataType: 'html',
        success: function(html) {
            $('#modal_account').html(html); 
        }  
    });
    return false;      
}

function send_create_account(){
    $('#login_top_msg').html(''); 
    $('#sign_in_btn').html('loading...');
    $.ajax({
    	url: 'index.php?route=account/register',
        type: 'post',
    	data: $('#login_modal input[type=\'text\'], #login_modal input[type=\'password\'], #login_modal input[type=\'hidden\'], #login_modal input[type=\'radio\']:checked, #login_modal input[type=\'checkbox\']:checked, #login_modal select, #login_modal textarea,#page_url'),
        dataType: 'json',
        success: function(json) {
            $('#sign_in_btn').html('Create Account');
			if (json['error']) {
				$('#login_top_msg').html('<div class="alert alert-danger alert-dismissible fade show" role="alert">' + json['error'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
			}
            if (json['success']) {
                $('#modal_account').html(json['html']);
			}               	
        }  
    });
}


function show_login(){
    $('#modal_account').html('<div style="text-align:center"><div class="spinner-border text-success" role="status"><span class="visually-hidden">Loading...</span></div></div>'); 
    login_modal.show();
    
    $.ajax({
    	url: 'index.php?route=account/login',
        dataType: 'json',
        success: function(json) {
            if( json['logged'] == 'logged' ){
                location = 'index.php?route=account/account'; 
            } else {
                $('#modal_account').html(json['html']);
            } 
        }  
    });
    return false;    
}
function send_login(){
    $('#login_top_msg').html(''); 
    $('#sign_in_btn').html('loading...');
    $.ajax({
    	url: 'index.php?route=account/login',
        type: 'post',
    	data: $('#login_modal input[type=\'text\'], #login_modal input[type=\'password\'], #login_modal input[type=\'hidden\'], #login_modal input[type=\'radio\']:checked, #login_modal input[type=\'checkbox\']:checked, #login_modal select, #login_modal textarea'),
        dataType: 'json',
        success: function(json) {
            $('#sign_in_btn').html('Sign In');
			if (json['error']) {
				$('#login_top_msg').html('<div class="alert alert-danger alert-dismissible fade show" role="alert">' + json['error'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
			}
			if (json['success']) {
                $('#login_top_msg').html('<div class="alert alert-success alert-dismissible fade show" role="alert">' + json['success'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
                location.reload();
			}            	
        }  
    });
}

function send_reset_password(){
    $('#sign_in_btn').html('loading...');    
    $('#login_top_msg').html(''); 
    
    $.ajax({
    	url: 'index.php?route=account/forgotten',
        type: 'post',
    	data: $('#login_modal input[type=\'text\'], #login_modal input[type=\'hidden\'], #login_modal input[type=\'radio\']:checked, #login_modal input[type=\'checkbox\']:checked, #login_modal select, #login_modal textarea'),
        dataType: 'json',
        success: function(json) {
            $('#sign_in_btn').html('Reset Password');
			if (json['error']) {
				$('#login_top_msg').html('<div class="alert alert-danger alert-dismissible fade show" role="alert">' + json['error'] + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>');
			}
			if (json['success']) {
                $('#modal_account').html(json['html']);
			}            	
        }  
    });        
}

function show_forgot_password_success(){
    $('#modal_account').html('<div style="text-align:center"><div class="spinner-border text-success" role="status"><span class="visually-hidden">Loading...</span></div></div>'); 
   
    login_modal.show();
    $.ajax({
    	url: 'index.php?route=account/forgotten/sent',
        dataType: 'html',
        success: function(html) {
            $('#modal_account').html(html); 
        }  
    });
    return false;      
}

function show_forgot_password(){
    $('#modal_account').html('<div style="text-align:center"><div class="spinner-border text-success" role="status"><span class="visually-hidden">Loading...</span></div></div>'); 
   
    login_modal.show();
    $.ajax({
    	url: 'index.php?route=account/forgotten',
        dataType: 'html',
        success: function(html) {
            $('#modal_account').html(html); 
        }  
    });
    return false;                      
}

function return_to_site(){
    login_modal.show();
    if(  window.location.href == 'https://www.misteliquid.co.uk/index.php?route=account/logout' ){
        location = 'https://www.misteliquid.co.uk/';
    } else {
        location.reload();
    }
}



function fix_brand_width(){
    if( $('#product-product').length > 0 && $('body.mobile-0').length > 0 ){
        doc_width = $(document).width();
        if( doc_width > 1116 ){
            $_p = (doc_width - 1116)/2;
            $_p = parseInt($_p); 
            $('#p_about_brand_inn').css("margin-left", ($_p*(-1))+"px");
            $('#p_about_brand_inn').css("padding-left", ($_p+40)+"px");
            $('#p_about_brand_inn').css("margin-right", ($_p*(-1))+"px");
            $('#p_about_brand_inn').css("padding-right", ($_p+40)+"px");            
        }
    }    
} 

$( window ).resize(function() {
  fix_brand_width();
});

$(document).ready(function() {
    /** for product page */
    fix_brand_width();
    
    /** video START */
    $(document).on("click",".vid_show", function () {
       video_code = $(this).data('video_code');
       if( $(this).find( "iframe" ).length > 0 ) return;
       _height = $(this).height();
       $(this).html('<iframe width="100%" height="'+_height+'" src="https://www.youtube.com/embed/'+video_code+'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
    });   
    /** video END */
    
    
    $('.btn-filter').on('click', function (event) {
        
        if( $(this).hasClass('show') ) status_now ='open'; else status_now ='close';
        /** close all */
        $('.d_filer_wr .show').removeClass('show');
        if( status_now == 'open' ){
            $(this).removeClass('show');
            $(this).parent().find('.dropdown-menu').removeClass('show');    
        } else {
            $(this).addClass('show');
            $(this).parent().find('.dropdown-menu').addClass('show');                
        }        
        return false;
    });    
    
    $(document).click((event) => {
      if (!$(event.target).closest('.d_filer .dropdown-menu').length) {
        $('.d_filer_wr ul.show').removeClass('show');
      }        
    });    
    
    $(document).click((event) => {
      if (!$(event.target).closest('.address_1_wr').length) {
        //alert('1');
        $('.dd_address').remove();
      }        
    });        
    
    var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
    var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
      return new bootstrap.Tooltip(tooltipTriggerEl)
    });    
    
    load_cart();
	// Highlight any found errors
	$('.text-danger').each(function() {
		var element = $(this).parent().parent();

		if (element.hasClass('form-group')) {
			element.addClass('has-error');
		}
	});

	// Currency
	$('#form-currency .currency-select').on('click', function(e) {
		e.preventDefault();

		$('#form-currency input[name=\'code\']').val($(this).attr('name'));

		$('#form-currency').submit();
	});

	// Language
	$('#form-language .language-select').on('click', function(e) {
		e.preventDefault();

		$('#form-language input[name=\'code\']').val($(this).attr('name'));

		$('#form-language').submit();
	});

	/* Search */
	$('#search input[name=\'search\']').parent().find('button').on('click', function() {
		var url = $('base').attr('href') + 'index.php?route=product/search';

		var value = $('header #search input[name=\'search\']').val();

		if (value) {
			url += '&search=' + encodeURIComponent(value);
		}

		location = url;
	});

	$('#search input[name=\'search\']').on('keydown', function(e) {
		if (e.keyCode == 13) {
			$('header #search input[name=\'search\']').parent().find('button').trigger('click');
		}
	});

	// Menu
	$('#menu .dropdown-menu').each(function() {
		var menu = $('#menu').offset();
		var dropdown = $(this).parent().offset();

		var i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('#menu').outerWidth());

		if (i > 0) {
			$(this).css('margin-left', '-' + (i + 10) + 'px');
		}
	});

	// Product List
	$('#list-view').click(function() {
		$('#content .product-grid > .clearfix').remove();

		$('#content .row > .product-grid').attr('class', 'product-layout product-list col-xs-12');
		$('#grid-view').removeClass('active');
		$('#list-view').addClass('active');

		localStorage.setItem('display', 'list');
	});

	// Product Grid
	$('#grid-view').click(function() {
		// What a shame bootstrap does not take into account dynamically loaded columns
		var cols = $('#column-right, #column-left').length;

		if (cols == 2) {
			$('#content .product-list').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12');
		} else if (cols == 1) {
			$('#content .product-list').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12');
		} else {
			$('#content .product-list').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12');
		}

		$('#list-view').removeClass('active');
		$('#grid-view').addClass('active');

		localStorage.setItem('display', 'grid');
	});

	if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

	// Checkout
	$(document).on('keydown', '#collapse-checkout-option input[name=\'email\'], #collapse-checkout-option input[name=\'password\']', function(e) {
		if (e.keyCode == 13) {
			$('#collapse-checkout-option #button-login').trigger('click');
		}
	});

	// tooltips on hover
	//$('[data-toggle=\'tooltip\']').tooltip({container: 'body'});

	// Makes tooltips work on ajax generated content
	$(document).ajaxStop(function() { 
	//	$('[data-toggle=\'tooltip\']').tooltip({container: 'body'});
	});
});

// Cart add remove functions
var cart = {
	'add': function(product_id, quantity) {
		$.ajax({
			url: 'index.php?route=checkout/cart/add',
			type: 'post',
			data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				$('.alert-dismissible, .text-danger').remove();

				if (json['redirect']) {
					location = json['redirect'];
				}

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');

					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);

					$('html, body').animate({ scrollTop: 0 }, 'slow');

					$('#cart > ul').load('index.php?route=common/cart/info ul li');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},
	'update': function(key, quantity) {
		$.ajax({
			url: 'index.php?route=checkout/cart/edit',
			type: 'post',
			data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				// Need to set timeout otherwise it wont update the total
				setTimeout(function () {
					$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
				}, 100);

				if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
					location = 'index.php?route=checkout/cart';
				} else {
					$('#cart > ul').load('index.php?route=common/cart/info ul li');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},
	'remove': function(key) {
		$.ajax({
			url: 'index.php?route=checkout/cart/remove',
			type: 'post',
			data: 'key=' + key,
			dataType: 'json',
			beforeSend: function() {
				$('#t_cart_btn_'+key).html('<div class="spinner-border spinner-border-sm" role="status"><span class="visually-hidden">Loading...</span></div>');
			},
			success: function(json) {
				/*if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
					location = 'index.php?route=checkout/cart';
				} else {*/
                load_cart();
				$('#cart_wr').load('index.php?route=common/cart/info');
                if (typeof update_block === "function") { 
                    update_block('cart');
                    update_block('shipping_method', 'edit');
                }
				//}
			}
		});
	}
}

var voucher = {
	'add': function() {

	},
	'remove': function(key) {
		$.ajax({
			url: 'index.php?route=checkout/cart/remove',
			type: 'post',
			data: 'key=' + key,
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				// Need to set timeout otherwise it wont update the total
				setTimeout(function () {
					$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
				}, 100);

				if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
					location = 'index.php?route=checkout/cart';
				} else {
					$('#cart > ul').load('index.php?route=common/cart/info ul li');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	}
}

var wishlist = {
	'add': function(product_id) {
		$.ajax({
			url: 'index.php?route=account/wishlist/add',
			type: 'post',
			data: 'product_id=' + product_id,
			dataType: 'json',
			success: function(json) {
				$('.alert-dismissible').remove();

				if (json['redirect']) {
					location = json['redirect'];
				}

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
				}

				$('#wishlist-total span').html(json['total']);
				$('#wishlist-total').attr('title', json['total']);

				$('html, body').animate({ scrollTop: 0 }, 'slow');
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},
	'remove': function() {

	}
}

var compare = {
	'add': function(product_id) {
		$.ajax({
			url: 'index.php?route=product/compare/add',
			type: 'post',
			data: 'product_id=' + product_id,
			dataType: 'json',
			success: function(json) {
				$('.alert-dismissible').remove();

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');

					$('#compare-total').html(json['total']);

					$('html, body').animate({ scrollTop: 0 }, 'slow');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},
	'remove': function() {

	}
}

/* Agree to Terms */
$(document).delegate('.agree', 'click', function(e) {
	e.preventDefault();

	$('#modal-agree').remove();

	var element = this;

	$.ajax({
		url: $(element).attr('href'),
		type: 'get',
		dataType: 'html',
		success: function(data) {
			html  = '<div id="modal-agree" class="modal">';
			html += '  <div class="modal-dialog">';
			html += '    <div class="modal-content">';
			html += '      <div class="modal-header">';
			html += '        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>';
			html += '        <h4 class="modal-title">' + $(element).text() + '</h4>';
			html += '      </div>';
			html += '      <div class="modal-body">' + data + '</div>';
			html += '    </div>';
			html += '  </div>';
			html += '</div>';

			$('body').append(html);

			$('#modal-agree').modal('show');
		}
	});
});

// Autocomplete */
(function($) {
	$.fn.autocomplete = function(option) {
		return this.each(function() {
			this.timer = null;
			this.items = new Array();

			$.extend(this, option);

			$(this).attr('autocomplete', 'off');

			// Focus
			$(this).on('focus', function() {
				this.request();
			});

			// Blur
			$(this).on('blur', function() {
				setTimeout(function(object) {
					object.hide();
				}, 200, this);
			});

			// Keydown
			$(this).on('keydown', function(event) {
				switch(event.keyCode) {
					case 27: // escape
						this.hide();
						break;
					default:
						this.request();
						break;
				}
			});

			// Click
			this.click = function(event) {
				event.preventDefault();

				value = $(event.target).parent().attr('data-value');

				if (value && this.items[value]) {
					this.select(this.items[value]);
				}
			}

			// Show
			this.show = function() {
				var pos = $(this).position();

				$(this).siblings('ul.dropdown-menu').css({
					top: pos.top + $(this).outerHeight(),
					left: pos.left
				});

				$(this).siblings('ul.dropdown-menu').show();
			}

			// Hide
			this.hide = function() {
				$(this).siblings('ul.dropdown-menu').hide();
			}

			// Request
			this.request = function() {
				clearTimeout(this.timer);

				this.timer = setTimeout(function(object) {
					object.source($(object).val(), $.proxy(object.response, object));
				}, 200, this);
			}

			// Response
			this.response = function(json) {
				html = '';

				if (json.length) {
					for (i = 0; i < json.length; i++) {
						this.items[json[i]['value']] = json[i];
					}

					for (i = 0; i < json.length; i++) {
						if (!json[i]['category']) {
							html += '<li data-value="' + json[i]['value'] + '"><a href="#">' + json[i]['label'] + '</a></li>';
						}
					}

					// Get all the ones with a categories
					var category = new Array();

					for (i = 0; i < json.length; i++) {
						if (json[i]['category']) {
							if (!category[json[i]['category']]) {
								category[json[i]['category']] = new Array();
								category[json[i]['category']]['name'] = json[i]['category'];
								category[json[i]['category']]['item'] = new Array();
							}

							category[json[i]['category']]['item'].push(json[i]);
						}
					}

					for (i in category) {
						html += '<li class="dropdown-header">' + category[i]['name'] + '</li>';

						for (j = 0; j < category[i]['item'].length; j++) {
							html += '<li data-value="' + category[i]['item'][j]['value'] + '"><a href="#">&nbsp;&nbsp;&nbsp;' + category[i]['item'][j]['label'] + '</a></li>';
						}
					}
				}

				if (html) {
					this.show();
				} else {
					this.hide();
				}

				$(this).siblings('ul.dropdown-menu').html(html);
			}

			$(this).after('<ul class="dropdown-menu"></ul>');
			$(this).siblings('ul.dropdown-menu').delegate('a', 'click', $.proxy(this.click, this));

		});
	}
})(window.jQuery);
