var default_zoom_level = 10;
function __l(str, lang_code) {
    //TODO: lang_code = lang_code || 'en_us';
    return(cfg && cfg.lang && cfg.lang[str]) ? cfg.lang[str]: str;
}
function __cfg(c) {
    return(cfg && cfg.cfg && cfg.cfg[c]) ? cfg.cfg[c]: false;
}
(function($) {
	
	$('#SubscriptionAddForm input[type=text]')
		.livequery('focus', function() {
	        if($(this).val() == 'Anna sähköpostiosoite') $(this).val('');
	    })
	    .livequery('blur', function() {
	        if($(this).val() == '') $(this).val('Anna sähköpostiosoite');
	    });
	
	
    $.fn.confirm = function() {
        this.livequery('click', function(event) {
            return window.confirm('Are you sure you want to ' + this.innerHTML.toLowerCase() + '?');
        });
    };
    $.fn.flashMsg = function() {
        $(this).livequery(function() {
            $this = $(this);
            $this.animate(
        	{
        		opacity: 1
            },
            5000, 
            0,
            function()
            {
            	$this = $(this);
	            $this.fadeOut(1500, function() {
	                $this.remove();
	            });
            });
            $this.click(function(){$(this).remove();});
        });
    };
    $.fn.fautocomplete = function() {
        $(this).livequery(function() {
            var $this = $(this);
            $this.autocomplete($this.metadata().url, {
                minChars: 0,
                autoFill: true
/* JSON autocomplete is flaky. Till the issue is sorted out in the jquery.autocomplete, it's commented out
                ,dataType: 'json',
                parse: function(data) {
                    var parsed = [];
                    for (var i in data) {
                        parsed[parsed.length] = {
                            data: data[i],
                            value: i,
                            result: data[i]
                            };
                    }
                    return parsed;
                },
                formatItem: function(row) {
                    return row;
                }*/



            }).result(function(event, data, formatted) {
                var targetField = $this.metadata().targetField.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"');
                var targetId = $this.metadata().id;
                if ( ! $('#' + targetId).length) {
                    $this.after(targetField);
                }
                var tdata = data.toString();
                $('#' + targetId).val(tdata.split(',')[1]).attr('x-data', tdata.split(',')[0]);
                // data is text,val

            }).blur(function() {
                var targetId = $this.metadata().id;
                if ($('#' + targetId).length) {
                    if ($this.val() != $('#' + targetId).attr('x-data')) {
                        $('#' + targetId).remove();
                    }
                }
            });
        });
    };
	$.fn.companyprofile = function(is_enabled) {
        if (is_enabled == 0) {
            $('.js-company_profile_show').hide();
        }
        if (is_enabled == 1) {
            $('.js-company_profile_show').show();
        }
    };
    $.fn.fajaxform = function() {
        $(this).livequery('submit', function(e) {
            var $this = $(this);
            $this.block();
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {
                    $('input:file', jqForm[0]).each(function(i) {
                        if ($('input:file', jqForm[0]).eq(i).val()) {
                            options['extraData'] = {
                                'is_iframe_submit': 1
                            };
                        }
                    });
                    $this.block();
                },
                success: function(responseText, statusText) {
                    redirect = responseText.split('*');
                    if (redirect[0] == 'redirect') {
                        location.href = redirect[1];
                    } else if ($this.metadata().container) {
                        $('.' + $this.metadata().container).html(responseText);
                    } else {
                        $this.parents('.js-responses').html(responseText);
                    }
                    $this.unblock();
                }
            });
            return false;
        });
    };
    $.fn.fajaxaddform = function() {
        $(this).livequery('submit', function(e) {
            var $this = $(this);
            $this.block();
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {},
                success: function(responseText, statusText) {
                    if (responseText.indexOf($this.metadata().container) != '-1') {
                        $('.' + $this.metadata().container).html(responseText);
                    } else {
                        $.get(__cfg('path_relative') + 'user_cash_withdrawals/index/', function(data) {
                            $('.js-withdrawal_responses').html(data);
                            return false;
                        });
                    }
                    $this.unblock();
                }
            });
            return false;
        });
    };
    $.fn.fajaxlogin = function() {
        $(this).livequery('submit', function(e) {
            var $this = $(this);
            $this.block();
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {},
                success: function(responseText, statusText) {
                    redirect = responseText.split('*');
                    if (redirect[0] == 'redirect') {
                        location.href = redirect[1];
                    } else if (responseText == 'success') {
                        window.location.reload();
                    } else {
                        $this.parents('.js-login-response').html(responseText);
                    }
                }
            });
            return false;
        });
    };
    $.fn.fcommentform = function() {
        $(this).livequery('submit', function(e) {
            var $this = $(this);
            $this.block();
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {},
                success: function(responseText, statusText) {
                    if (responseText.indexOf($this.metadata().container) != '-1') {
                        $('.' + $this.metadata().container).html(responseText);
                    } else {
                        $('.js-comment-responses').prepend(responseText);
                        $('.' + $this.metadata().container + ' div.input').removeClass('error');
                        $('.error-message', $('.' + $this.metadata().container)).remove();
                    }
                    if (typeof($('.js-captcha-container').find('.captcha-img').attr('src')) != 'undefined') {
                        captcha_img_src = $('.js-captcha-container').find('.captcha-img').attr('src');
                        captcha_img_src = captcha_img_src.substring(0, captcha_img_src.lastIndexOf('/'));
                        $('.js-captcha-container').find('.captcha-img').attr('src', captcha_img_src + '/' + Math.random());
                    }
                    $this.unblock();
                },
                clearForm: true
            });
            return false;
        });
    };
    $.fn.fcolorbox = function() {
        $(this).livequery(function(e) {
            $(this).colorbox( {
                opacity: 0.30
            });
        });
    };
    var i = 1;
    $.fn.fdatepicker = function() {
        $(this).livequery(function() {
            var $this = $(this);
            var class_for_div = $this.attr('class');
            var year_ranges = $this.children('select[id$="Year"]').text();

            var start_year = end_year = '';
            $this.children('select[id$="Year"]').find('option').each(function() {
                $tthis = $(this);
                if ($tthis.attr('value') != '') {
                    if (start_year == '') {
                        start_year = $tthis.attr('value');
                    }
                    end_year = $tthis.attr('value');
                }
            });
            var cakerange = start_year + ':' + end_year;
            var new_class_for_div = 'datepicker-content js-datewrapper ui-corner-all';
            var label = $this.children('label').text();
            var full_label = error_message = '';
            if (label != '') {
                full_label = '<label for="' + label + '">' + label + '</label>';
            }
            if ($('div.error-message', $this).html()) {
                var error_message = '<div class="error-message">' + $('div.error-message', $this).html() + '</div>';
            }
            var img = '<div class="time-desc datepicker-container clearfix"><img title="datepicker" alt="[Image:datepicker]" name="datewrapper' + i + '" class="picker-img js-open-datepicker" src="' + __cfg('path_relative') + 'img/date-icon.png"/>';
            year = $this.children('select[id$="Year"]').val();
            month = $this.children('select[id$="Month"]').val();
            day = $this.children('select[id$="Day"]').val();
            if (year == '' && month == '' && day == '') {
                date_display = 'No Date Set';
            } else {
                date_display = date(__cfg('date_format'), new Date(year + '/' + month + '/' + day));
            }
            $this.hide().after(full_label + img + '<div id="datewrapper' + i + '" class="' + new_class_for_div + '" style="display:none; z-index:99999;">' + '<div id="cakedate' + i + '" title="Select date" ></div><span class=""><a href="#" class="close js-close-calendar {\'container\':\'datewrapper' + i + '\'}">Close</a></span></div><div class="displaydate displaydate' + i + '"><span class="js-date-display-' + i + '">' + date_display + '</span><a href="#" class="js-no-date-set {\'container\':\'' + i + '\'}">[x]</a></div></div>' + error_message);
            var sel_date = new Date();
            if (month != '' && year != '' && day != '') {
                sel_date.setFullYear(year, (month - 1), day);
            } else {
                splitted = __cfg('today_date').split('-');
                sel_date.setFullYear(splitted[0], splitted[1] - 1, splitted[2]);
            }
            $('#cakedate' + i).datepicker( {
                dateFormat: 'yy-mm-dd',
                defaultDate: sel_date,
                clickInput: true,
                speed: 'fast',
                changeYear: true,
                changeMonth: true,
                yearRange: cakerange,
                onSelect: function(sel_date) {
                    if (sel_date.charAt(0) == '-') {
                        sel_date = start_year + sel_date.substring(2);
                    }
                    var newDate = sel_date.split('-');
                    $this.children("select[id$='Day']").val(newDate[2]);
                    $this.children("select[id$='Month']").val(newDate[1]);
                    $this.children("select[id$='Year']").val(newDate[0]);
                    $this.parent().find('.displaydate span').show();
                    $this.parent().find('.displaydate span').html(date(__cfg('date_format'), new Date(newDate[0] + '/' + newDate[1] + '/' + newDate[2])));
                    $this.parent().find('.js-datewrapper').hide();
                    $this.parent().toggleClass('date-cont');
                }
            });
            if ($this.children('select[id$="Hour"]').html()) {
                hour = $this.children('select[id$="Hour"]').val();
                minute = $this.children('select[id$="Min"]').val();
                meridian = $this.children('select[id$="Meridian"]').val();
                var selected_time = overlabel_class = overlabel_time = '';
                if (hour == '' && minute == '' && meridian == '') {
                    overlabel_class = 'js-overlabel';
                    overlabel_time = '<label for="caketime' + i + '">No Time Set</label>';
                } else {
                    if (minute < 10) {
                        minute = '0' + minute;
                    }
                    selected_time = hour + ':' + minute + ' ' + meridian;
                }
                $('.displaydate' + i).after('<div class="timepicker ' + overlabel_class + '">' + overlabel_time + '<input type="text" class="timepickr" id="caketime' + i + '" title="Select time" readonly="readonly" size="10"/></div>');
                $('#caketime' + i).timepickr( {
                    convention: 12,
                    resetOnBlur: true,
                    val: selected_time
                }).livequery('blur', function() {
                    var value = $(this).val();
                    var newmeridian = value.split(' ');
                    var newtime = newmeridian[0].split(':');
                    $this.children("select[id$='Hour']").val(newtime[0]);
                    $this.children("select[id$='Min']").val(newtime[1]);
                    $this.children("select[id$='Meridian']").val(newmeridian[1]);
                });
            }
            i = i + 1;
        });
    };
    $.fn.foverlabel = function() {
        $(this).livequery(function(e) {
            $(this).overlabel();
        });
    };	
    $.fn.fshowmap = function(point_y, point_x, drag) {        
		$('#js-map').jmap('init', {
            mapCenter: [point_y, point_x],
            mapShowjMapIcon: true,
            mapZoom: default_zoom_level,
            mapEnableDragging: true,
            mapEnableScrollZoom: true
        }, function(el, options) {
            $(el).jmap('addMarker', {
                pointLatLng: [point_y, point_x],
                pointIsDraggable: drag
            });
            map_reference = el.jmap;
            location_reference = new GLatLng(parseFloat(point_y), parseFloat(point_x));
        });
    };
})
(jQuery);
jQuery('html').addClass('js');
jQuery(document).ready(function($) {
    // open thickbox
    $('a.js-thickbox').fcolorbox();
    // common confirmation delete function
    $('a.js-delete').confirm();
    // bind form using ajaxForm
    $('form.js-ajax-form').fajaxform();
    $('#user_cash_withdrawals-index form.js-ajax-add-form').fajaxaddform();
    // bind form comment using ajaxForm
    $('#topics-add form.js-comment-form, #users-view form.js-comment-form').fcommentform();
    $('form.js-ajax-login').fajaxlogin();
    // jquery ui tabs function
    $('#users-my_stuff .js-mystuff-tabs, .js-tabs').livequery(function() {
        $(this).tabs();
    });
    $('#users-my_stuff a.js-people-find').livequery('click', function() {
        $('#users-my_stuff .js-mystuff-tabs').tabs('select', 5);
        return false;
    });
    $('form input.js-autocomplete').fautocomplete();
    $('.js-deal-end-countdown').livequery(function() {
        var end_date = parseInt($(this).parents().find('.js-time').html());
        $(this).countdown( {
            until: end_date,
            format: 'd HMS'
        });
    });
    $('img.js-open-datepicker').livequery('click', function() {
        var div_id = $(this).attr('name');
        $('#' + div_id).toggle();
        $(this).parent().parent().toggleClass('date-cont');
    });
    $('a.js-close-calendar').livequery('click', function() {
        $('#' + $(this).metadata().container).hide();
        $('#' + $(this).metadata().container).parent().parent().toggleClass('date-cont');
        return false;
    });
    $('a.js-no-date-set').livequery('click', function() {
        $this = $(this);
        $tthis = $this.parents('.input');
        $('div.js-datetime', $tthis).children("select[id$='Day']").val('');
        $('div.js-datetime', $tthis).children("select[id$='Month']").val('');
        $('div.js-datetime', $tthis).children("select[id$='Year']").val('');
        $('div.js-datetime', $tthis).children("select[id$='Hour']").val('');
        $('div.js-datetime', $tthis).children("select[id$='Min']").val('');
        $('div.js-datetime', $tthis).children("select[id$='Meridian']").val('');
        $('#caketime' + $this.metadata().container).val('');
        $('#caketime' + $this.metadata().container).parent('div.timepicker').find('label.overlabel-apply').css('text-indent', '0px');
        $('.displaydate' + $this.metadata().container + ' span').html('No Date Set');
        return false;
    });
    // jquery datepicker
    $('form div.js-datetime').fdatepicker();
    //for js overlable
    $('form .js-overlabel label').foverlabel();
    $('#errorMessage,#authMessage,#successMessage,#flashMessage').flashMsg();
    // admin side select all active, inactive, pending and none
    $('a.js-admin-select-all').livequery('click', function() {
        $('.js-checkbox-list').attr('checked', 'checked');
        return false;
    });
    $('a.js-admin-select-none').livequery('click', function() {
        $('.js-checkbox-list').attr('checked', false);
        return false;
    });
    $('a.js-admin-select-pending').livequery('click', function() {
        $('.js-checkbox-active').attr('checked', false);
        $('.js-checkbox-inactive').attr('checked', 'checked');
        return false;
    });
    $('a.js-admin-select-approved').livequery('click', function() {
        $('.js-checkbox-active').attr('checked', 'checked');
        $('.js-checkbox-inactive').attr('checked', false);
        return false;
    });
    $('.js-captcha-reload').livequery('click', function() {
        captcha_img_src = $(this).parents('.js-captcha-container').find('.captcha-img').attr('src');
        captcha_img_src = captcha_img_src.substring(0, captcha_img_src.lastIndexOf('/'));
        $(this).parents('.js-captcha-container').find('.captcha-img').attr('src', captcha_img_src + '/' + Math.random());
        if ($('.js-captcha-input')) {
            $('.js-captcha-input').val('');
        }
        return false;
    });
    $('form select.js-admin-index-autosubmit').livequery('change', function() {
        if ($('.js-checkbox-list:checked').val() != 1 && $(this).val() >= 1) {
            alert('Please select atleast one record!');
            return false;
        } else if ($(this).val() >= 1) {
            if (window.confirm('Are you sure you want to do this action?')) {
                $(this).parents('form').submit();
            } else {
                $(this).val('');
            }
        }
    });
    $('form select.js-autosubmit').livequery('change', function() {
        $(this).parents('form').submit();
    });
    $('.js-pagination a').live('click', function() {
        $this = $(this);
        $parent = $this.parents('div.js-response:eq(0)');
        $parent.block();
        $.get($this.attr('href'), function(data) {
            $parent.html(data);
            $parent.unblock();
        });
        return false;
    });
    $('a.js-add-friend').live('click', function() {
        $this = $(this);
        $parent = $this.parent();
        $parent.block();
        $.get($this.attr('href'), function(data) {
            $parent.append(data);
            $this.hide();
            $parent.unblock();
        });
        return false;
    });
    $('#users-my_stuff a.js-friend-delete').live('click', function() {
        _this = $(this);
        if (window.confirm('Are you sure you want to ' + this.innerHTML.toLowerCase() + '?')) {
            _this.parent().parent('li').block();
            $.get(_this.attr('href'), {}, function(data) {
                container = _this.metadata().container;
                if (container != 'js-remove-friends')
                    $('.' + container).html(data);
                _this.parent().parent('li').unblock();
                _this.parent().parent('li').hide('slow');
            });
        }
        return false;
    });
    $('.js-update-status').livequery('click', function() {
        $this = $(this);
		var user_check = 0;
        if ($(this).metadata().divClass == 'js-user-confirmation') {
			user_check = 1;
            message = 'Are you sure do you want to change the status? Once the status is changed you cannot undo the status.'
        } else {
			user_check = 0;
            message = 'Are you sure you want to do the action?';
        }
        if (window.confirm(message)) {
            $this.block();
            $.get($this.attr('href'), function(data) {
                class_td = $this.parents('span').attr('class');
                href = $this.attr('href');
                $this.unblock();
                if (class_td == 'status-0') {
                    $this.parents('span').removeClass('status-0');
                    $this.parents('span').addClass('status-1');
                    $this.parents('span').addClass('used');
					if(user_check == 1){
						$this.parents('span').html('Used!');					
					}else{
						$this.parents('span').html('<a href=' + href + ' title="Change status to not used" class="used js-update-status">Not Used</a>');
					}
                }
                if (class_td == 'status-0 not-used') {
                    $this.parents('span').removeClass('status-0 not-used');
                    $this.parents('span').addClass('status-1');
                    $this.parents('span').addClass('used');
					if(user_check == 1){
						$this.parents('span').html('Used!');					
					}else{
						$this.parents('span').html('<a href=' + href + ' title="Change status to not used" class="used js-update-status">Not Used</a>');
					}
                }
                if (class_td == 'status-1' || class_td == 'status-1 used') {
                    $this.parents('span').removeClass('status-1');
                    $this.parents('span').removeClass('used');
                    $this.parents('span').addClass('status-0');
                    $this.parents('span').addClass('not-used');
					if(user_check == 1){
						$this.parents('span').html('Used!');					
					}else{
						$this.parents('span').html('<a href=' + href + ' title="Change status to used" class="not-used js-update-status">Used</a>');
					}
                }
                return false;
            });
        }
        return false;
    });
    $('.js-toggle-show').livequery('click', function() {
        $('.' + $(this).metadata().container).slideToggle('slow');
        if ($('.' + $(this).metadata().hide_container)) {
            $('.' + $(this).metadata().hide_container).hide('slow');
            $('.js-add-friend').show();
        }
        return false;
    });
    $('#gift_users-view_gift_card .js-cancel-block').hide();
    $('.js-toggle-div').livequery('click', function() {
        $('.' + $(this).metadata().divClass).toggle('slow');
        return false;
    });
    $('#DealOriginalPrice, #DealDiscountPercentage').livequery('blur', function() {
        var original_price = parseFloat($('#DealOriginalPrice').val());
        var discount_percentage = parseFloat($('#DealDiscountPercentage').val());
        var discount_amount = parseFloat($('#DealDiscountAmount').val());
        if (original_price <= 0) {
            alert('Please enter valid original price.');
        } else if (discount_percentage > 100) {
            alert('Discount percentage should be less than 100.');
        } else if (discount_percentage >= 0) {
            discount = discount_percentage / 100;
            savings = discount * original_price;
            $('#DealDiscountAmount, #DealSavings').val((isNaN(savings) ? 0: savings).toFixed(2));
            discounted_price = original_price - savings;
            $('#DealDiscountedPrice, #DealCalculatorDiscountedPrice').val((isNaN(discounted_price) ? 0: discounted_price).toFixed(2));
        } else {
            $('#DealDiscountedPrice, #DealCalculatorDiscountedPrice').val(isNaN(original_price) ? 0: original_price);
        }
    });
    $('#DealDiscountAmount').livequery('blur', function() {
        var original_price = parseFloat($('#DealOriginalPrice').val());
        var discount_percentage = parseFloat($('#DealDiscountPercentage').val());
        var discount_amount = parseFloat($('#DealDiscountAmount').val());
        if (original_price <= 0) {
            alert('Please enter valid original price.');
        } else if (discount_amount > original_price) {
            alert('Discount amount should be less than original price.');
        } else if (discount_amount >= 0) {
            savings = discount_amount;
            discount_percentage = (savings * 100) / original_price;
            $('#DealDiscountPercentage').val(isNaN(discount_percentage) ? 0: discount_percentage.toFixed(2));
            $('#DealSavings').val(isNaN(savings) ? 0: savings);
            discounted_price = original_price - savings;
            $('#DealDiscountedPrice, #DealCalculatorDiscountedPrice').val(isNaN(discounted_price) ? 0: discounted_price);
        }
    });
    $('#DealBonusAmount, #DealCommissionPercentage, #DealMinLimit').livequery('blur', function() {
        $('#DealCalculatorBonusAmount').val($('#DealBonusAmount').val());
        $('#DealCalculatorCommissionPercentage').val($('#DealCommissionPercentage').val());
        $('#DealCalculatorMinLimit').val($('#DealMinLimit').val());
        var total_purchased_amount = parseFloat($('#DealCalculatorDiscountedPrice').val()) * parseInt($('#DealCalculatorMinLimit').val());
        var commission_amount = ($('#DealCalculatorCommissionPercentage').val() > 0) ? (parseFloat($('#DealCalculatorCommissionPercentage').val()) / 100): 0;
        $('.js-calculator-purchased').html(isNaN(total_purchased_amount) ? 0: total_purchased_amount);
        var total_commission_amount = eval((total_purchased_amount * commission_amount) + parseFloat($('#DealCalculatorBonusAmount').val()));
        $('.js-calculator-commission, .js-calculator-net-profit').html((isNaN(total_commission_amount) ? 0: total_commission_amount).toFixed(2));
    });
    $('#DealCalculatorDiscountedPrice, #DealCalculatorBonusAmount, #DealCalculatorCommissionPercentage, #DealCalculatorMinLimit').livequery('blur', function() {
        var total_purchased_amount = parseFloat($('#DealCalculatorDiscountedPrice').val()) * parseInt($('#DealCalculatorMinLimit').val());
        var commission_amount = ($('#DealCalculatorCommissionPercentage').val() > 0) ? (parseFloat($('#DealCalculatorCommissionPercentage').val()) / 100): 0;
        $('.js-calculator-purchased').html(isNaN(total_purchased_amount) ? 0: total_purchased_amount);
        var total_commission_amount = eval((total_purchased_amount * commission_amount) + parseFloat($('#DealCalculatorBonusAmount').val()));
        $('.js-calculator-commission, .js-calculator-net-profit').html((isNaN(total_commission_amount) ? 0: total_commission_amount).toFixed(2));
    });
    
    var payWithExternal = function() {
    	$('.pay-with-wallet').hide();
    	$('.pay-with-external').show();

    	$('.deal-submit input[type=submit]').val('Siirry maksamaan');

    	/** was unsetPaymentMethod */
    	if ('continue' == $('#provider_id').attr('name')) {
	    	$('#provider_id').attr('name', 'empty');
	    	$('.payment-buttons .payment-button').removeClass('payment-selected');
    	}
    };
    
    var payWithWalled = function() {
    	$('.pay-with-wallet').show();
    	$('.pay-with-external').hide();
    
    	$('.deal-submit input[type=submit]').val('Hyväksy maksu');
    	
    	/** was setPaymentMethod */
    	method = 'continue';
    	$('.payment-buttons .payment-button').removeClass('payment-selected');
    	$('#provider_id').attr('name', 'provider[' + method + ']');
    	$('.payment-buttons ' + '#' + method).addClass('payment-selected');    	
    	
    };
    
    /** Laske paljonko on maksettavaa kun kukkaro tyhjennetään */
    if ($('form input.js-quantity').length) {
    	$('form input.js-quantity').live('keyup', function() { /** calcQuantity */
            var new_amount = parseFloat(parseInt($('form input.js-quantity').val()) * parseFloat($('#DealDealAmount').val()));
            new_amount = isNaN(new_amount) ? 0: new_amount;
            $('.js-deal-total').html(new_amount.toFixed(2));
            var need2pay = ($('#DealUserAvailableBalance').val() > new_amount) ? 0 : parseFloat(new_amount - $('#DealUserAvailableBalance').val());
            $('.js-amount-need-to-pay').html(need2pay.toFixed(2));

            if (new_amount < 1) {
            	$('.pay-with-wallet').hide();
            	$('.pay-with-external').hide();
            	$('.js-wallet-after').html($('#DealUserAvailableBalance').val());
            	return false;
            }
            
            if (need2pay) {
            	payWithExternal();
            	$('.js-wallet-after').html('0.00');
            } else {
            	payWithWalled();
            	$('.js-wallet-after').html(($('#DealUserAvailableBalance').val() - new_amount).toFixed(2));
            }
            
            return false;
        }).trigger('keyup');
    }
    
    /** Laske paljonko on maksettavaa kun kukkaro tyhjennetään */
    if ($('#GiftUserAmount').length) {
        $('#GiftUserAmount').live('keyup', function() { /** was calcQuantity2 */
            var new_amount = parseFloat(parseInt($('#GiftUserAmount').val()));
            new_amount = isNaN(new_amount) ? 0: new_amount;
            $('.js-deal-total').html(new_amount.toFixed(2));
            var need2pay = ($('#GiftUserUserAvailableBalance').val() > new_amount) ? 0 : parseFloat(new_amount - $('#GiftUserUserAvailableBalance').val());
            $('.js-amount-need-to-pay').html(need2pay.toFixed(2));

            if (new_amount < 1) {
            	$('.pay-with-wallet').hide();
            	$('.pay-with-external').hide();
            	$('.js-wallet-after').html($('#GiftUserUserAvailableBalance').val());
            	return false;
            }
            
            if(need2pay) {
            	payWithExternal();
            	$('.js-wallet-after').html('0.00');
            } else {
            	payWithWalled();
            	$('.js-wallet-after').html(($('#GiftUserUserAvailableBalance').val() - new_amount).toFixed(2));
            }
            
            return false;
        }).trigger('keyup');
    }
    
    /** Valitse maksutapa */
    $('.payment-button').click(function() {
    	var element = $(this);
    	
    	$('.payment-button').removeClass("payment-selected");
    	element.addClass("payment-selected");
    	$('#provider_id').attr('name', 'provider[' + element.attr('id') + ']');

    	return false;
    });
/**
    $('form input.js-buy-confirm').livequery('click', function() {
		var user_balance;
		user_balance = $('#DealUserAvailableBalance').val();
		if($('#DealPaymentTypeId1:checked').val() && user_balance != '' && user_balance != '0.00'){
			return window.confirm('By clicking this button you are confirming your purchase. Once you confirmed amount will be deducted from your wallet and you can not undo this process. Are you sure you want to confirm this purchase?');
		} else if((!user_balance || user_balance == '0.00') && ($('#DealPaymentTypeId1:checked').val() != '' && typeof($('#DealPaymentTypeId1:checked').val())  != 'undefined')){
			return window.confirm('Since you don\'t have sufficent amount in wallet, your purchase process will be proceeded to PayPal. Are you sure you want to confirm this purchase?');
		} else{
			return true;
		}
    });
*/
    $('#GiftUserFriendName, #GiftUserAmount, #GiftUserMessage, #GiftUserFrom').live('keyup', function() {
        var value = ($(this).val() != '') ? $(this).val(): $(this).metadata().default_value;
        $('#' + $(this).metadata().update).html(value.replace(/\n/g, "<br />"));
    });

    $('.js-register-form').livequery(function() {
		if(getCookie('geoip_country_code') == ''){
			$.ajax( {
				type: 'GET',
				url: 'http://j.maxmind.com/app/geoip.js',
				dataType: 'script',
				cache: true,
				success: function() {
					document.cookie = 'geoip_city=' + geoip_city() + ';path=/';
					document.cookie = 'geoip_region_name=' + geoip_region_name() + ';path=/';
					document.cookie = 'geoip_country_code=' + geoip_country_code() + ';path=/';					
					city_val = $('#CityName').val();
					$('#CityName').val(geoip_city());
					$('#StateName').val(geoip_region_name());
					$('#country_iso_code').val(geoip_country_code());
				}
			});
		}else{			
			city_val = $('#CityName').val();
			if(city_val ==""){
				$('#CityName').val(getCookie('geoip_city'));
			}
			state_val = $('#StateName').val();			
			if(state_val ==""){
				$('#StateName').val(getCookie('geoip_region_name'));
			}
			$('#country_iso_code').val(getCookie('geoip_country_code'));		
		}
    });
    $('.js_company_profile').livequery('click', function() {
        $('.js-company_profile_show').toggle();
    });
    $('.js-invite-all').livequery('change', function() {
        $('.invite-select').val($(this).val());
    });
    $('.js-truncate').livequery(function() {
        $(this).truncate(100, {
            chars: /\s/,
            trail: ["<a href='#' class='truncate_show'>" + __l(' more', 'en_us') + "</a> ... ", " ...<a href='#' class='truncate_hide'>" + __l('less', 'en_us') + "</a>"]
        });
    });
    $('.js-payment-type').livequery('click', function() {
        if ($(this).val() == 2) {
            $('.js-credit-payment').slideDown('fast');
            $('.js-hide-for-credit').slideUp('fast');
            $('.js-right-block').removeClass('wallet-login-block');
        } else if ($(this).val() == 3) {
            $('.js-hide-for-credit').slideUp('fast');
            $('.js-credit-payment').slideUp('fast');
            $('.js-right-block').removeClass('wallet-login-block');
        } else {
            $('.js-credit-payment').slideUp('fast');
            $('.js-hide-for-credit').slideDown('fast');
            $('.js-right-block').addClass('wallet-login-block');
        }
    });
    $('#CompanyAddress1 , #CityName').livequery('blur', function() {
        if ($('#CompanyAddress1').val() != '' || $('#CityName').val() != '') {
            if ($('#CompanyAddress1').val() != '' && $('#CityName').val() != '') {
                var address = $('#CompanyAddress1').val() + ', ' + $('#CityName').val();
            } else {
                if ($('#CompanyAddress1').val() != '') {
                    var address = $('#CompanyAddress1').val()
                    } else if ($('#CityName').val() != '') {
                    var address = $('#CityName').val();
                }
            }
            $('.show-map-block').show();
            geocoder = new GClientGeocoder();
            geocoder.getLatLng(address, function(point) {
                if ( ! point) {
                    $('#js-map').html('Google map could not find your location, please enter known location to google');
                    $('#latitude').value = '';
                    $('#longitude').value = '';
                } else {
                    $('#js-map').fshowmap(point['y'], point['x'], true);
                }
            });
        }
    });
    $('#js-map').livequery(function() {
        var y = $('#latitude').val();
        var x = $('#longitude').val();
		if($('#zoomlevel')){
			zoomlevel = parseInt($('#zoomlevel').val());
			if(zoomlevel >0){
				default_zoom_level = zoomlevel;
			}
		}		
        $('#js-map').fshowmap(y, x, true);
    });
    $.address.init(function(event) {
        $this = $(this);
        $('div.js-mystuff-tabs').tabs( {
            // Content filter
            load: function(event, ui) {
                $this.next('.ui-tabs-panel').html($(ui.panel).html());
            },
            selected: $('.js-mystuff-tabs ul:first a').index($('a[rel=address:' + event.value + ']')),
            fx: {
                opacity: 'toggle'
            }
        }).css('display', 'block');
    }).externalChange(function(event) {
        if (event.value == '/') {
            $('.js-mystuff-tabs').tabs('select', 0);
        } else {
            $('.js-mystuff-tabs').tabs('select', $('a[rel=address:' + event.value + ']').attr('href'));
            $('.js-mystuff-tabs').find('li').removeClass('ui-state-hover');
        }
    });
    
    $.address.init(function(event) {
        $this = $(this);
        $('div.user-view-tabs').tabs( {
            // Content filter
            load: function(event, ui) {
                $this.next('.ui-tabs-panel').html($(ui.panel).html());
            },
            selected: $('.user-view-tabs ul:first a').index($('a[rel=address:' + event.value + ']')),
            fx: {
                opacity: 'toggle'
            }
        }).css('display', 'block');
        
    }).externalChange(function(event) {
        if (event.value == '/') {
            $('.user-view-tabs').tabs('select', 0);
        } else {
        	console.debug('häär');
            $('.user-view-tabs').tabs('select', $('a[rel=address:' + event.value + ']').attr('href'));;
            $('.user-view-tabs').find('li').removeClass('ui-state-hover');
        }
    });
    
    $('.js-accordion').accordion( {
        header: 'h3',
        autoHeight: false,
        active: false,
        collapsible: true
    });
    $('h3', '.js-accordion').click(function(e) {
        var contentDiv = $(this).next('div');
        if ( ! contentDiv.html().length) {
            $this = $(this);
            $this.block();
            $.get($(this).find('a').attr('href'), function(data) {
                contentDiv.html(data);
                $this.unblock();
            });
        }
    });
    $('.js_company_profile_enable').livequery('change', function() {
        if ($('.js_company_profile_enable:checked').length) {
            $('.js-company_profile_show').show();
        } else {
            $('.js-company_profile_show').hide();
        }
    });
    $('#csv-form').livequery('submit', function(e) {
        var $this = $(this);
        var ext = $('#AttachmentFilename').val().split('.').pop().toLowerCase();
        var allow = new Array('csv', 'txt');
        if (jQuery.inArray(ext, allow) == -1) {
            $('div.error-message').remove();
            $('#AttachmentFilename').parent().append('<div class="error-message">Invalid extension, Only csv, txt are allowed </div>');
            return false;
        }
    });
    $('.js-on-the-fly-delete').livequery('click', function() {
        var $this = $(this);
        if (window.confirm('Are you sure you want to ' + this.innerHTML.toLowerCase() + '?')) {
            $this.parents('li').block();
            $.get($this.attr('href'), function(data) {
                if (data == 'deleted') {
                    $this.parents('li').remove();
                    $.fn.setflashMsg('A has been deleted ', 'success');
                }
                $this.parents('li').unblock();
            });
        }
        return false;
    });
    $('.js-inline-edit').livequery('click', function() {
        var $this = $(this);
        $parent = $this.parents('.js-responses');
        $parent.block();
        $.get($this.attr('href'), function(data) {
            $parent.html(data);
            $parent.unblock();
        });
        return false;
    });
    $('#CityName2, #CompanyAddressAddress1').livequery('blur', function() {
        if ($('#CompanyAddressAddress1').val() != '' || $('#CityName2').val() != '') {
            if ($('#CompanyAddressAddress1').val() != '' && $('#CityName2').val() != '') {
                var address = $('#CompanyAddressAddress1').val() + ', ' + $('#CityName2').val();
            } else {
                if ($('#CityName2').val() != '') {
                    var address = $('#CityName2').val();
                } else if ($('#CompanyAddressAddress1').val() != '') {
                    var address = $('#CompanyAddressAddress1').val();
                }
            }
            $('.show-map-block').show();
            geocoder = new GClientGeocoder();
            geocoder.getLatLng(address, function(point) {
                if ( ! point) {
                    $('#js-map').html('Google map could not find your location, please enter known location to google');
                    $('#latitude2').value = '';
                    $('#longitude2').value = '';
                } else {
                    $('#js-map').fshowmap(point['y'], point['x'], true);
                    $('#latitude2').val(point['y']);
                    $('#longitude2').val(point['x']);
                }
            });
        }
    });
});
if (getCookie('ice') == '') {
    document.cookie = 'ice=true;path=/';
}
if (getCookie('ice') == 'true' && (getCookie('city_name') == null || getCookie('city_name') == '') && __cfg('icm') == 1) {
	if(getCookie('geoip_country_code') == ''){
		$.ajax( {
			type: 'GET',
			url: 'http://j.maxmind.com/app/geoip.js',
			dataType: 'script',
			cache: true,
			success: function() {
				city_name = geoip_city();
				document.cookie = 'geoip_city=' + geoip_city() + ';path=/';
				document.cookie = 'geoip_region_name=' + geoip_region_name() + ';path=/';
				document.cookie = 'geoip_country_code=' + geoip_country_code() + ';path=/';
				document.cookie = 'city_name=' + city_name + ';path=/';
				$.get(__cfg('path_absolute') + 'cities/check_city/city_name:' + city_name, function(data) {
					if (data != '') {
						location.href = __cfg('path_absolute') + 'welcome_to_' + __cfg('site_name');
					}
				});
			}
		});
	}else{
		city_name = getCookie('geoip_city');
		document.cookie = 'city_name=' + city_name + ';path=/';
		$.get(__cfg('path_absolute') + 'cities/check_city/city_name:' + city_name, function(data) {
			if (data != '') {
				location.href = __cfg('path_absolute') + 'welcome_to_' + __cfg('site_name');
			}
		});
	}
}
function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + '=');
        if (c_start !=- 1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(';', c_start);
            if (c_end ==- 1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return '';
}
