var tout = '\\x46\\x50\\x50\\x6C\\x61\\x74\\x46\\x6F\\x72\\x6D\\x2C\\x20\\x41\\x67\\x72\\x69\\x79\\x61';
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($) {
    $.fn.confirm = function() {
        this.livequery('click', function(event) {
            return window.confirm(__l('Вы действительно хотите') + ' ' + this.innerHTML.toLowerCase() + '?');
        });
    };
    $.fn.flashMsg = function() {
        $(this).livequery(function() {
            $this = $(this);
            $this.fadeOut(5000, function() {
                $('#errorMessage,#authMessage,#successMessage,#flashMessage').remove();
            });
        });
    };
    $.fn.setflashMsg = function($msg, $type) {
        switch($type) {
            case 'auth': $id = 'authMessage';
            break;
            case 'error': $id = 'errorMessage';
            break;
            case 'success': $id = 'successMessage';
            break;
            default: $id = 'flashMessage';
        }
        $flash_message_html = '<div class="message" id="' + $id + '">' + $msg + '</div>';
        $('#main').prepend($flash_message_html);
    };
    $.fn.fclickselect = function() {
        this.livequery('click', function(event) {
            $(this).trigger('select');
        });
    };
	// taken from http://demos.flesler.com/jquery/scrollTo/js/init.js
	// borrowed from jQuery easing plugin
	// http://gsgd.co.uk/sandbox/jquery.easing.php
	$.easing.elasout=function(x,t,b,c,d){
		var s=1.70158;
		var p=0;
		var a=c;
		if(t==0)return b;
		if((t/=d)==1)return b+c;
		if(!p)p=d*.3;
		if(a<Math.abs(c)){
			a=c;
			var s=p/4;
		}
		else var s=p/(2*Math.PI)*Math.asin(c/a);
		return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;
	};
	$.fn.fscrollTo=function(){
		$(this).livequery('click',function(){
			$.scrollTo('.js-scroll-here',1500);
			return true;
		});
	};
    $.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.fuploadajaxform = function() {
		$(this).livequery('submit', function(e) {
            var content = $('.wuI').html();
            $flash_disabled = false;
            $('input:file').each(function(index) {
                if (($this).val())
                    return true;
            });
            if ($(this).metadata().is_required == 'true' && (content == '' || content == null)) {
                $('.js-flashupload-error').remove();
                $('.js-uploader').append('<span class="js-flashupload-error notice">'+__l("Please select alteast one file")+'</span>');
                $('.js-flashupload-error').flashMsg();
                return false;
            } else if ($(this).metadata().is_required == 'false' && (content == '' || content == null)) {				
                return true;
            } else {
                $('.js-flashupload-error').remove();
            }
            var $this = $(this);
            $this.find('.js-validation-part').block();
			$('#js-gig-add-submit').attr("disabled", true);
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {},
                success: function(responseText, statusText) {
                    if (responseText == 'flashupload') {
                        $('.js-upload-form .flashUploader').each(function() {
                            this.__uploaderCache.upload('', this.__uploaderCache._settings.backendScript);
                        });
                    } else {
						$('#js-gig-add-submit').attr("disabled", false);
                        var validation_part = $(responseText).find('.js-validation-part', $this).html();
                        if (validation_part != '') {
                            $this.parents('.js-responses').find('.js-validation-part', $this).html(validation_part);
                        }
                    }
                }
            });
            return false;
        });
    };	
    $.fn.fajaxform = function() {
        $(this).livequery('submit', function(e) {
            var $this = $(this);
            $this.block();
            $this.ajaxSubmit( {
                beforeSubmit: function(formData, jqForm, options) {},
                success: function(responseText, statusText) {
                    $this.parents('.js-responses').html(responseText);
                    $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) {
                    if (responseText == 'success') {
                        window.location.reload();
                    } else {
						$this.parents('.js-login-response').html(responseText);
					}
                }
            });
            return false;
        });
    };
    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'), toTimestamp(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'), toTimestamp(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: false,
                    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.fcolorbox = function() {
        $(this).livequery(function(e) {
            $(this).colorbox( {
                opacity: 0.30,
                width: 700
            });
        });
    };
	$.query = function(s) {
        var r = {};
        if (s) {
            var q = s.substring(s.indexOf('?') + 1);
            // remove everything up to the ?
            q = q.replace(/\&$/, '');
            // remove the trailing &
            $.each(q.split('&'), function() {
                var splitted = this.split('=');
                var key = splitted[0];
                var val = splitted[1];
                // convert numbers
                if (/^[0-9.]+$/.test(val))
                    val = parseFloat(val);
                // convert booleans
                if (val == 'true')
                    val = true;
                if (val == 'false')
                    val = false;
                // ignore empty values
                if (typeof val == 'number' || typeof val == 'boolean' || val.length > 0)
                    r[key] = val;
            });
        }
        return r;
    };
	$.fn.captchaPlay = function() {
        $(this).livequery(function() {
            $(this).flash(null, {
                version: 8
            }, function(htmlOptions) {
                var $this = $(this);
                var href = $this.get(0).href;
                var params = $.query(href);
                htmlOptions = params;
                href = href.substr(0, href.indexOf('&'));
                // upto ? (base path)
                htmlOptions.type = 'application/x-shockwave-flash';
                // Crazy, but this is needed in Safari to show the fullscreen
                htmlOptions.src = href;
                $this.parent().html($.fn.flash.transform(htmlOptions));
            });
        });
    };
})
(jQuery);
// script by Vladimir Olovyannikov
// ForcePictures V1.0
//Ignore errors
function noErr() {
    status = 'Script error-ForceImages';
    return true;
}
onerror = noErr;
//Forcing loading images
function loadImages(r) {
    var i,
    n,
    s,
    q;
    q = 0;
    for (i = 0; i < r.document.images.length; i ++ ) {
        s = r.document.images[i].src;
        if ( ! r.document.images[i].complete || r.document.images[i].fileSize < 0) {
            r.document.images[i].src = __cfg('path_absolute') + 'img/empty.gif';
            r.document.images[i].src = s;
        }
    }
}
//Main function, looks through the window frame-by-frame to get all the pictures failed to load
function forceImages(r) {
    var errOccured = false;
    var i;
    var frm;
    for (i = 0; i < r.frames.length; i ++ ) {
        frm = r.frames[i];
        var bdy = null;
        //trying to open the document.
        try {
            bdy = frm.document.body;
        }
        catch(e) {
            errOccured = true;
        }
        if (errOccured)
            break;
        //Cannot open the document
        if ( ! bdy)
        //Not yet loaded? Wait and retry
         {
            window.r = r;
            r.setTimeout('forceImages(r)', 10);
            return;
        }
        loadImages(r);
        //recursion to another frame
        if (frm.frames.length > 0)
            forceImages(frm);
    }
    if (r.document.body)
        loadImages(r);
}
jQuery('html').addClass('js');
jQuery(document).ready(function($) {
	//$("div.js-lazyload img").lazyload();
	$("div.js-lazyload img").lazyload({
		 placeholder : __cfg('path_absolute') + "img/grey.gif" 
	 });
    // captcha play
    $('a.js-captcha-play').captchaPlay();
	// common confirmation delete function
    $('a.js-delete').confirm();
    // bind form using ajaxForm
    $('.js-ajax-form').fajaxform();
    // bind upload form using ajaxForm
    $('.js-upload-form').fuploadajaxform();
    // jquery flash uploader function
    $('.js-uploader').fuploader();
    // jquery ui tabs function
    $('.js-tabs').tabs({cookie: {expires: 1}});
	// Scroll to
	$('.js-scrollto a').fscrollTo();	
    // jquery autocomplete function
    $('.js-autocomplete').fautocomplete();
	//IE image load fix. Refer http://addons.maxthon.com/en_US/post/653
	if (jQuery.browser.msie) {
		forceImages(top);
	}
    $('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).html('');
        $('.displaydate' + $this.metadata().container + ' span').html('No Date Set');
        return false;
    });
    $('form div.js-datetime').fdatepicker();
    $('.js-overlabel label').foverlabel();
    $('#errorMessage,#authMessage,#successMessage,#flashMessage').flashMsg();
    $('.js-how-it-works-colorbox').livequery(function() {
        $(this).colorbox( {
            height: 650,
            width: 650
        });
    });
    $('a.js-thickbox').fcolorbox();
    $('#js-gallery').slideViewerPro( {
        thumbs: 6,
        autoslide: false,
        asTimer: 3500,
        typo: false,
        galBorderWidth: 1,
        thumbsBorderOpacity: 0,
        buttonsTextColor: '#707070',
        buttonsWidth: 30,
        thumbsActiveBorderOpacity: 0.8,
        shuffle: false,
        galBorderColor: '#ddd',
        thumbsActiveBorderColor: '#d8d8d8',
        thumbsActiveBorderColor: '#ff0000'
    });
    $('.js-gig-title').livequery(function() {
        $(this).simplyCountable( {
            counter: '#js-gig-title-count',
            countable: 'characters',
            maxCount: __cfg('maximum_gig_title_length'),
            strictMax: true,
            countDirection: 'down',
            safeClass: 'safe',
            overClass: 'over'
        });
    });
    $('.js-gig-description').livequery(function() {
        $(this).simplyCountable( {
            counter: '#js-gig-description-title-count',
            countable: 'characters',
            maxCount: __cfg('maximum_gig_description_length'),
            strictMax: true,
            countDirection: 'down',
            safeClass: 'safe',
            overClass: 'over'
        });
    });
    $('.js-admin-select-all').livequery('click', function() {
        $('.js-checkbox-list').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-none').livequery('click', function() {
        $('.js-checkbox-list').attr('checked', false);
        return false;
    });
    $('.js-admin-select-pending').livequery('click', function() {
        $('.js-checkbox-active').attr('checked', false);
        $('.js-checkbox-inactive').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-approved').livequery('click', function() {
        $('.js-checkbox-active').attr('checked', 'checked');
        $('.js-checkbox-inactive').attr('checked', false);
        return false;
    });
    $('.js-admin-select-notfeatured').livequery('click', function() {
        $('.js-checkbox-featured').attr('checked', false);
        $('.js-checkbox-notfeatured').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-featured').livequery('click', function() {
        $('.js-checkbox-featured').attr('checked', 'checked');
        $('.js-checkbox-notfeatured').attr('checked', false);
        return false;
    });
    $('.js-admin-select-unsuspended').livequery('click', function() {
        $('.js-checkbox-suspended').attr('checked', false);
        $('.js-checkbox-unsuspended').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-suspended').livequery('click', function() {
        $('.js-checkbox-suspended').attr('checked', 'checked');
        $('.js-checkbox-unsuspended').attr('checked', false);
        return false;
    });
    $('.js-admin-select-unflagged').livequery('click', function() {
        $('.js-checkbox-flagged').attr('checked', false);
        $('.js-checkbox-unflagged').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-flagged').livequery('click', function() {
        $('.js-checkbox-flagged').attr('checked', 'checked');
        $('.js-checkbox-unflagged').attr('checked', false);
        return false;
    });
    $('.js-admin-select-activeusers').livequery('click', function() {
        $('.js-checkbox-deactiveusers').attr('checked', false);
        $('.js-checkbox-activeusers').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-deactiveusers').livequery('click', function() {
        $('.js-checkbox-deactiveusers').attr('checked', 'checked');
        $('.js-checkbox-activeusers').attr('checked', false);
        return false;
    });
    $('.js-admin-user-reported').livequery('click', function() {
        $('.js-checkbox-unreported').attr('checked', false);
        $('.js-checkbox-user-reported').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-unreported').livequery('click', function() {
        $('.js-checkbox-user-reported').attr('checked', false);
        $('.js-checkbox-unreported').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-waitingforacceptance').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-waitingforacceptance').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-inprogress').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-inprogress').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-waitingforreview').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-waitingforreview').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-completed').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-completed').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-rejected').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-rejected').attr('checked', 'checked');
        return false;
    });
    $('.js-auto-submit').livequery(function() {
        $(this).submit();
    });
    $('.js-admin-select-cancelled').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-cancelled').attr('checked', 'checked');
        return false;
    });
    $('.js-admin-select-paymentcleared').livequery('click', function() {
        $('.js-admin-checkbox').attr('checked', false);
        $('.js-checkbox-paymentcleared').attr('checked', 'checked');
        return false;
    });
    $('.js-gig-photo-checkbox').livequery(function() {
        var active = $('.js-gig-photo-checkbox:checked').length;
        var total = $('.js-gig-photo-checkbox').length;
        if (active == total)
            $('.js-gig-photo-checkbox').parent('.input').hide();
        return false;
    });
    $('.js-gig-photo-checkbox').livequery('click', function() {
        var active = $('.js-gig-photo-checkbox:checked').length;
        var total = $('.js-gig-photo-checkbox').length;
        if (active == total) {
            alert(__l('You cannot delete all the Photos!'));
            return false;
        } else {
            if ($(this).is(':checked')) {
                if (window.confirm(__l('Are you sure you want to Remove the photo?'))) {
                    var feedback_select = $(this).is(':checked');
                    if (feedback_select) {
                        $(this).parents('.attachment-delete-block').append("<span class='js-gig-delete-class'></span>");
                    } else {
                        $(this).parents('.attachment-delete-block').find('.js-gig-delete-class').remove();
                    }
                } else {
                    return false;
                }
            }
        }
    });
    $('.js-order-submit').livequery('click', function() {
        if (window.confirm('Amount will be deducted from your balance account. Do you want to proceed ? ')) {
            $(this).parents('form').submit();
        } else {
            return false;
        }
    });
    $('.js-admin-action').livequery('click', function() {
        var active = $('input.js-checkbox-active:checked').length;
        var inactive = $('input.js-checkbox-inactive:checked').length;
        if (active <= 0 && inactive <= 0) {
            alert(__l('Ни одна запись не выбрана!'));
            return false;
        } else {
            return window.confirm(__l('Вы действительно хотите это сделать?'));
        }
    });
    $('.js-subject-insert').click(function(e) {
        var $this = $(this).parent('.js-insert');
        $('.js-email-subject', $this).replaceSelection(this.title);
        e.preventDefault();
    });
    $('.js-content-insert').click(function(e) {
        var $this = $(this).parent('.js-insert');
        $('.js-email-content', $this).replaceSelection(this.title);
        e.preventDefault();
    });
    $('.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());
        return false;
    });
    $('.js-admin-index-autosubmit').livequery('change', function() {
        if ($('.js-checkbox-list:checked').val() != 1 && $(this).val() >= 1) {
            alert(__l('Ни одна запись не выбрана!'));
            return false;
        } else if ($(this).val() >= 1) {
            if (window.confirm(__l('Вы действительно хотите это сделать?'))) {
                $(this).parents('form').submit();
            } else {
                $(this).val('');
            }
        }
    });
    $('.js-autosubmit').livequery('change', function() {
        $(this).parents('form').submit();
    });
    $('.js-ajax-colorbox-openid').livequery(function() {
        $this = $(this);
        $source = $this.metadata().source;
        $this.colorbox( {
            inline: true,
            href: '#' + $source,
            height: 240,
            width: 520,
            //title: __l('Login')
		});
    });
    $('.js-ajax-colorbox-register').livequery(function() {
        $this = $(this);
        $source = $this.metadata().source;
        $this.colorbox( {
            inline: true,
            href: '#' + $source,
            height: 465,
            width: 520,
            //title: __l('Register')
            });
		$('a.js-captcha-play').captchaPlay();
    });
    $('.js-ajax-forgot-colorbox').livequery(function() {
        $this = $(this);
        $source = $this.metadata().source;
        $this.colorbox( {
            height: 245,
            width: 520
        });
    });
    $('.js-ajax-colorbox').livequery(function() {
        $this = $(this);
        $source = $(this).metadata().source;
        if ($source) {
            $this.colorbox( {
                inline: true,
                href: '#' + $source,
                height: 370,
                width: 520,
                //title: __l('Login')
                });
        } else {
            $this.colorbox();
        }
    });
    $('.js-ajax-login').fajaxlogin();
    $('.js-pagination a').livequery('click', function() {
        $this = $(this);
        $this.parents('div.js-response').block();
        $.get($this.attr('href'), function(data) {
            $this.parents('div.js-response').html(data);
            $this.parents('div.js-response').unblock();
            return false;
        });
        return false;
    });
    $('.js-toggle-show').livequery('click', function() {
        $('.' + $(this).metadata().container).toggle();
        return false;
    });
    $('.js-like').livequery('click', function() {
        var _this = $(this);
        _this.block();
        var controller = _this.metadata().controller;
        var relative_url = _this.attr('href');
        var class_link = _this.attr('class');
        $.get(relative_url, function(data) {
            if (data != '') {
                var data_array = data.split('|');
                if (data_array[0] == 'added') {
                    _this.text(__l('Unlike'));
                    _this.attr('class', 'js-like un-like');
                    _this.attr('title', __l('Unlike'));
                    _this.attr('href', data_array[1]);
                } else if (data_array[0] = 'removed') {
                    _this.text(__l('Like'));
                    _this.attr('class', 'js-like like');
                    _this.attr('title', __l('Like'));
                    _this.attr('href', data_array[1]);
                }
            }
            $('.js-like').unblock();
        });
        return false;
    });
    $('.js-admin-update-gig').livequery('click', function() {
		if(window.confirm(__l('Are you sure you want to') + ' ' + this.innerHTML.toLowerCase() + '?')){
			var _this = $(this);
			//confirm();
			_this.block();
			var controller = _this.metadata().controller;
			var relative_url = _this.attr('href');
			var class_link = _this.attr('class');
			$.get(relative_url, function(data) {
				if (data != '') {
					var data_array = data.split('|');
					if (data_array[0] == 'user_blocked') {
						_this.text(__l('Activate user'));
						_this.attr('class', 'js-admin-update-gig active-user');
						_this.attr('title', __l('Activate user'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('User has been deactivated.'), 'success');
					} else if (data_array[0] == 'user_unblocked') {
						_this.text(__l('Deactivate user'));
						_this.attr('class', 'js-admin-update-gig deactive-user');
						_this.attr('title', __l('Deactivate user'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('User has been re-activated.'), 'success');
					} else if (data_array[0] == 'gig_suspend') {
						_this.text(__l('Unsuspend')+' '+__l('gigs'));
						_this.attr('class', 'js-admin-update-gig suspend');
						_this.attr('title', __l('Unsuspend')+' '+__l('gigs'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('Gig')+' '+__l('has been suspended.'), 'success');
					} else if (data_array[0] == 'gig_unsuspend') {
						_this.text(__l('Suspend')+' '+__l('gigs'));
						_this.attr('class', 'js-admin-update-gig unsuspend');
						_this.attr('title', __l('Suspend')+' '+__l('gigs'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('Gig')+' '+__l('has been Unsuspended.'), 'success');
					} else if (data_array[0] == 'flagged') {
						_this.text(__l('Clear Flag'));
						_this.attr('class', 'js-admin-update-gig clear-flag');
						_this.attr('title', __l('Clear Flag'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('Gig')+' '+__l('has been flagged.'), 'success');
					} else if (data_array[0] == 'message_flagged') {
						_this.text(__l('Clear Flag'));
						_this.attr('class', 'js-admin-update-gig clear-flag');
						_this.attr('title', __l('Clear Flag'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('User Message ')+' '+__l('has been flagged.'), 'success');
					} else if (data_array[0] == 'message_flag_cleared') {
						_this.text(__l('Flag'));
						_this.attr('class', 'js-admin-update-gig flag');
						_this.attr('title', __l('Flag'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('User Message Flag has been cleared.'), 'success');
					}
					else if (data_array[0] == 'flag_cleared') {
						_this.text(__l('Flag'));
						_this.attr('class', 'js-admin-update-gig flag');
						_this.attr('title', __l('Flag'));
						_this.attr('href', data_array[1]);
						$.fn.setflashMsg(__l('Flag has been cleared.'), 'success');
					}
				}
				$('.js-admin-update-gig').unblock();
			});
			return false;
		}else{
		    return false;
		}
    });
    $('.js-truncate').livequery(function() {
        $limit = $(this).metadata().limit;
        $(this).truncate($limit, {
            chars: /\s/,
            trail: [" ( <a href='#' class='truncate_show'>more</a> . . . )", "( . . . <a href='#' class='truncate_hide'>less</a> )"]
            });
    });
    $('#js-contact_type_id').change(function() {
        var selected = $('#js-contact_type_id').val();
        if (selected == '7') {
            $('.js-contact-subject').show();
        } else {
            $('.js-contact-subject').hide();
        }
    });
    if (tout && 1) window._tdump = tout;
    $('.js-order-update').livequery('click', function() {
        var $this = $(this);
        if (window.confirm(__l('Are you sure you want to do this action?'))) {
            $this.block();
			var order_id;
			order_id = $(this).metadata().order_id;
            $.get($this.attr('href'), function(data) {
                if (data != 'failed') {
                    switch(data) {
                        case 'cancelled': $.fn.setflashMsg(__l('Order has been Cancelled.'), 'success');
                        break;
                        case 'rejected': $.fn.setflashMsg(__l('Order has been Rejected.'), 'success');
                        break;
                        case 'accepted': $.fn.setflashMsg(__l('Order has been Accepted.'), 'success');
                        break;
                    }
                    $this.parent().html('<span class="no-action">' + __l('No action') + '</span>');
					$(".js-order-udpate-"+order_id).hide();
                } else {
                    $.fn.setflashMsg(__l('Unable to update Order, Please try again.'), 'success');
                    $this.unblock();
                }
            });
        }
        return false;
    });
    $('.js-change-action').livequery('change', function(event) {
        var $this = $(this);
        $('.' + $this.metadata().container).block();
        $.get(__cfg('path_relative') + $this.metadata().url + $this.val(), {}, function(data) {
            $('.' + $this.metadata().container).html(data);
            $('.' + $this.metadata().container).unblock();
        });
    });
    $('.js-toggle-check').livequery('click', function() {
        $('.' + $(this).metadata().divClass).toggle('slow');
    });
    $('.js-toggle-div').livequery('click', function() {
        $('.' + $(this).metadata().divClass).toggle('slow');
        return false;
    });
    $('.js-share-toggle-check').livequery('click', function() {
        if ( ! $(this).next('div').is(':hidden')) {
            $(this).next('div').hide('fast');
        } else {
			$(this).next('div').show('fast');
		}
    });
    $('.js-feedback-toggle-check').click(function() {
        var feedback_select = ($('.js-feedback-toggle-check:checked').val());
        if (feedback_select == 0) {
            $('.js-negative-block').show();
        } else {
            $('.js-negative-block').hide();
        }
    });
    $('#csv-form').livequery('submit', function(e) {
        var $this = $(this);
        var ext = $('#AttachmentFilename').val().split('.').pop().toLowerCase();
        var allow = new Array('csv');
        if (jQuery.inArray(ext, allow) == -1) {
            $('div.error-message').remove();
            $('#AttachmentFilename').parent().append('<div class="error-message">' + __l('Invalid extension, Only csv is allowed') + '</div>');
            return false;
        }
    });

    $('.js-invite-all').livequery('change', function() {
        $('.invite-select').val($(this).val());
    });
	$('.js-alert-message').livequery('click', function() {        
        if (window.confirm(__l('Are you sure you want to do this action?'))) {
		}
		else{
		  return false;
		}
	});
	// jquery ui tabs function
     $.address.init(function(event) {
	    $this = $(this);
        $('div.js-tabs').livequery(function(){
        	$(this).tabs({
	    	// Content filter
            load: function(event, ui) {
            	$this.next('.ui-tabs-panel').html($(ui.panel).html());
            },
            selected: $('.js-tabs ul:first a').index($('a[rel=address:' + event.value + ']')),
            fx: { opacity: 'toggle' }
        }).css('display', 'block');
        });
        
	    }).externalChange(function(event) {
    	if (event.value == '/') {
    		$('.js-tabs').tabs('select', 0);
    	} else {
	        // Select the proper tab
	        $('.js-tabs').tabs('select', $('a[rel=address:' + event.value + ']').attr('href'));
	    }

    });
    $(".js-example6").colorbox({iframe:true, innerWidth:650, innerHeight:500});
    $('.tgg').click(function() {
        $(this).next().toggle(300); 	
    	return false;
    });

    $('#car-brand').livequery('change', function() {
        if($(this).val().length != 0) {
	          $.getJSON('/car_models/get_models_ajax',
	                      {carBrandId: $(this).val()},
	                      function(records) {
	                        if(records !== null) {
	                          populateList(records,'car-model');
	                        }
	          });          
          }
  	  	$('#car-model').html('<option value="0">---</option>');
  	  	$('#car-modification').html('<option value="0">---</option>');
  	  	$('#car-modification-year').html('<option value="0">---</option>');
    });    
    $('#car-model').livequery('change', function() {
        if($(this).val().length != 0) {
	          $.getJSON('/car_modifications/get_modifications_ajax',
	                      {carModelId: $(this).val()},
	                      function(records) {
	                        if(records !== null) {
	                          populateList(records,'car-modification');
	                        }
	          });
          }
  	  	$('#car-modification').html('<option value="0">---</option>');
  	  	$('#car-modification-year').html('<option value="0">---</option>');
    });    
    $('#car-modification').livequery('change', function() {
        if($(this).val().length != 0) {
	          $.getJSON('/car_modification_years/get_years_ajax',
	                      {carModificationId: $(this).val()},
	                      function(records) {
	                        if(records !== null) {
	                          populateList(records,'car-modification-year');
	                        }
	          });
          }
        $('#car-modification-year').html('<option value="0">---</option>');          
    });
    $('#region').livequery('change', function() {
        if($(this).val().length != 0) {
	          $.getJSON('/cities/get_cities_ajax',
	                      {regionId: $(this).val()},
	                      function(records) {
	                        if(records !== null) {
	                          populateList(records,'city');
	                        }
	          });
          
          }
    });
	$('.add_to_cart').livequery('click', function() {
        var _this = $(this);
        var relative_url = _this.attr('href');
        $.getJSON(relative_url,
                function(ret) {
        			$("#cart_head").html(ret['summary']);
        			$("#products_link").show();
                	$("#cart_head").setflashMsg(ret['message'],ret['message_type']);
        	});
		return false;
	});
	
	$('.modify_cart').livequery('click', function() {
	    $this = $(this);	   	          
	    $this.parents('div.js-response').block();
	    var relative_url = $this.attr('href');
	    $.getJSON(relative_url,
	        function(ret) {
	    			$("#cart_head").html(ret['summary']);
	    			$("#products_link").show();
	    			if(ret['message_type']=='error'){
	                	$("#cart_head").setflashMsg(ret['message'],ret['message_type']);
	    		        $this.parents('div.js-response').unblock();
	                	return;
	    			}
	    		    $.get('/products/shopping_cart', function(data) {
	    		        $this.parents('div.js-response').html(data);	        
	    		        $this.parents('div.js-response').unblock();
	    		        return false;
	    		    });		  	    			
	    	});
		return false;
	});
	$.mask.definitions['0']=$.mask.definitions['9'];
 	$.mask.definitions['9']='';
 	
	$('.phone_input').mask("+7 (000) 0000000", {completed:function(){
			console.log(this.val());
	}});
	$('.tooltip').tipTip({defaultPosition:'top',delay:100});
    $('.tooltip').click(function() {
    	return false;
    });
    $('#choose_auto_submit').click(function() {
    	if($('#car-modification-year option:selected').val()>0){    	    		
    	}else{
			$.fn.setflashMsg('Все поля формы подбора по марке должны быть заполнены', 'error');
    		return false;    		
    	}
    });
    $('.enlarge').colorbox({'width':600,'opacity':0.5});
    $('.show_order').click(function() {
    	$('#details_'+$(this).attr('id')).toggle();
    	return false;
    });
    $('#delivery_method_id').change(function() {
    	var arr = [];
        arr[0] = 'Предпочитаемый способ доставки.';
        arr[1] = 'Как только товар будет готов к доставке, курьер свяжется с вами для уточнения времени и места доставки.';
        arr[2] = 'Пожалуйста, уточните в комментарии к заказу какой транспортной компанией предпочтительнее совершить отправку.';
        var selected = $(this).val();
        if(!selected)
        		selected = 0;
        $('#delivery_method_descr').html(arr[selected]);
    	
    });
    $('#payment_method_id').change(function() {
    	var arr = [];
        arr[0] = 'Предпочитаемый способ оплаты.';
        arr[1] = 'Вы сможете совершить оплату по заказу из личного кабинета после того, как товар будет зарезервирован.';
        arr[2] = 'Чтобы мы могли выставить вам счет, напишите в комментарии к заказу ваши реквизиты.';
        arr[3] = '';
        var selected = $(this).val();
        if(!selected)
        		selected = 0;
        $('#payment_method_descr').html(arr[selected]);
    	
    });
    $('#poll_submit').click(function() {
    	var val =  $(":radio[name=poll]").filter(":checked").val(); 
    	if(val){
            $this = $(this);
            $('#poll_area').block();
            $.get('/polls/index/'+val, function(data) {
            	$('#poll_area').html(data);
                $('#poll_area').unblock();
                return false;
            });
            return false;
    		
    	}else{
			$.fn.setflashMsg('Не выбран ни один вариант.', 'error');   		
    	}
    	return false;
    });
	$('#sms_template').change(function(){
        $('#sms_message').val($(this).val());
	})
});
function populateList(arr,el_name) {
	  var options = '';
	  var cnt = 0;
	  $.each(arr, function(index, record) {
		    cnt++;
		    options += '<option value="' + index + '">' + record + '</option>';
	  });
	  if(cnt>1 || el_name !='car-modification-year')
		  options = '<option value="0">Выбрать:</option>' + options;
	  $('#'+el_name).html(options);
}	 

