/* browser detection */
var browser_info = new function(ie)
{
   var d = document, w = window, qsel = !!d.querySelectorAll,
   csel = !!d.getElementsByClassName;
   this.ff = !!w.Iterator && !!d.addEventListener && /a/[-1] == 'a';
   this.ff2 = this.ff && (function x(){})[-6] == 'x';
   this.ff3 = csel && this.ff && (function x(){})[-5] == 'x';
   this.ff35 = qsel && this.ff;
   this.ie = (ie && '\v' == 'v');
   this.ie5 = this.ie && ie == 5;
   this.ie6 = this.ie && (ie == 6 || (d.compatMode && d.all && !!d.readyState));
   this.ie7 = this.ie && (ie == 7 && d.documentElement && typeof d.documentElement.style.maxHeight != "undefined");
   this.ie8 = this.ie && (ie == 8 && qsel);
   this.safari = /a/.__proto__ == '//';
   this.chrome = /source/.test((/a/.toString + ''));
   this.opera = (!ie && !!w.opera && w.opera.toString() === "[object Opera]");
}(0/*@cc_on + (@_jscript_version * 10 % 10) @*/);
/* / browser detection */

var $ = jQuery;

$(function(){

    /*** buttons ***/
    
    /* эмуляция text-shadow на кнопках для FF 3.0 */
    if (browser_info.ff && browser_info.ff3 && !browser_info.ff35)
        $('head').append('<link type="text/css" rel="stylesheet" href="/css/buttons-ff3.css" />');
        
    /* правые закругления и css фиксы для FF 2.0*/
    if (browser_info.ff && browser_info.ff2) {
    	$('head').append('<link type="text/css" rel="stylesheet" href="/css/buttons-ff2.css" />');
    	$('.button-18, .button-20, .button-24, .button-40').append('<span class="after"></span>').prepend('<span class="before"></span>');
    }

    /* anti-google-translate */
    buttons_antiGoogleTranslate();

    /* отмена клика для ссылок rel="disabled" */
    $('a[rel~=disabled]').live('click', function(){
	return false;
    });
    
    /* ie6, не понимающий сдвоенные селекторы */
    if (browser_info.ie6) {
	$('.button-20, .button-24, .button-40').each(function() {
	    var classname = 'button-';
	    var disabled  = 'button-';
	    if ($(this).hasClass('button-20')) {
		classname += '20-';
		disabled  += '20-';
	    } else if ($(this).hasClass('button-24')) {
		classname += '24-';
		disabled  += '24-';
	    } else if ($(this).hasClass('button-40')) {
		classname += '40-';
		disabled  += '40-';
	    }
	    disabled += 'disabled';
	    if ($(this).hasClass('button-green')) {
	    	classname += 'green';
	    } else if ($(this).hasClass('button-green-forward')) {
	    	classname += 'green-forward';
	    	disabled  += '-forward'; 
	    } else if ($(this).hasClass('button-orange')) {
	    	classname += 'orange';
	    } else if ($(this).hasClass('button-orange-back')) {
	    	classname += 'orange-back';
	    	disabled  += '-back';
	    } else if ($(this).hasClass('button-red')) {
	    	classname += 'red';
	    } else if ($(this).hasClass('button-blue')) {
	    	classname += 'blue';
	    }
	    $(this).addClass(classname);
	    if ($(this).is('[disabled]') || $(this).is('[rel~=disabled]'))
	    	$(this).addClass(disabled);
	});
    }
    
    /* смещение кнопки по клику в IE */
    if (browser_info.ie) {
        $('.button-20, .button-24, .button-40').live('mousedown', function(){
	    if ($(this).not('[disabled], [rel~=disabled]').length)
	        $(this).addClass('button-active');
	}).live('mouseup', function(){
	    $(this).removeClass('button-active');
	});
    }
    /*** / buttons ***/
    
    /*****
    new js
    *****/
    
    /* fix bug with overflow in opera */
    if (browser_info.opera && $.browser.version < 10)
        $('#wrapper').css({
	       overflow: 'visible',
	       'float': 'left'
        });

    /* header_top menu */
    $('.menu', '#header_top').hover(function(){
        if (!$('ul', this).is(":animated")) {
            $('ul', this).show(200);
        }
    }, function(){
        $('ul', this).hide(400);
    });

    /* header #regru-description scroller */
    var $description = $('#regru-description');
    var description_count = $('li', $description).length;

    $('.prev', $description).hide();

    $('.prev, .next', $description).css({visibility: 'visible'}).click(function(){
        var em = parseInt($('li', $description).eq(0).height()) / 1.33333;
        var diff = Math.round(1.33333 * em);
        var $original = $('ul', $description);
        var top = $original.position().top;

        if ($(this).is('.prev')) {
            $('.next', $description).show();

            top += diff;

            if (top >= 0) {
                $('.prev', $description).hide();
            }

            if (top > 0) {
                //dont
                return false;
            }
        }
        else {
            $('.prev', $description).show();
            top -= diff;

            if (Math.abs(top) > em * (description_count - 2)) {
                $('.next', $description).hide();
            }

            if (Math.abs(top) > em * description_count) {
                //dont
                return false;
            }
        }

        $original.css({top: $original.position().top + 'px'}).animate({
            top: ''+top+'px'
        }, 150, function(){
            var fix_position = $original.position().top / em;
            $original.css({top: ''+fix_position+'em'}).removeClass('clone');
        });

        return false;
    });


    /* header login form */
    $('#header-login', '#header').focus(function(){
	$(this).removeClass('login-tip-ru login-tip-en');
    }).blur(function(){
	if ($(this).parents('#personal').hasClass('.ru'))
	    var cl = 'login-tip-ru';
	else
	    var cl = 'login-tip-en';
	if ($(this).val() == '')
	    $(this).addClass(cl);
    }).keyup(function(){
	if ($('#header-password', '#header').val() != '')
	    $('#header-password', '#header').removeClass('password-tip-ru password-tip-en');
    }).blur();

    $('#header-password', '#header').focus(function(){
	$(this).removeClass('password-tip-ru password-tip-en');
    }).blur(function(){
	if ($(this).parents('#personal').hasClass('.ru'))
	    var cl = 'password-tip-ru';
	else
	    var cl = 'password-tip-en';
	if ($(this).val() == '')
	    $(this).addClass(cl);
    }).blur();
    
    $('form#personal', '#header').submit(function(){
    	if ($('#header-password', '#header').val() != '')
    	    $('#header-password', '#header').removeClass('password-tip-ru password-tip-en');
    	if ($('#header-login', '#header').val() != '')
    	    $('#header-login', '#header').removeClass('login-tip-ru login-tip-en');
    	return true;
    });

    /* sidebar uslugi - ie6 fix */
    if (browser_info.ie6) {
        $('a', '#sidebar #uslugi').hover(function(){
            $('span', this).css({textDecoration: 'underline'});
        }, function(){
            $('span', this).css({textDecoration: 'none'});
        });
    }

    /* sidebar info menu */
    $('span.toggle', '#sidebar #info').css({cursor: 'pointer'}).click(function(){
        var $li = $(this).parents('li');
        if ($li.hasClass('collapsed')) {
            $li.removeClass('collapsed').addClass('expanded');
            $('ul', $li).show();
        }
        else {
            $li.removeClass('expanded').addClass('collapsed');
            $('ul', $li).hide();
        }

    });

    $('a.foo', '#sidebar #info').css({cursor: 'pointer'}).click(function(){
	$(this).prev('span').click();

	return false;
    });

    // fixing ie6 positioning bug
    if (browser_info.ie6) {
        $(window).resize(function(){
            $('#wrapper-lb, #wrapper-rb').css({bottom: '1px'}).css({bottom: '0px'});
        });
    }

    /*******************
    old js, From Dima
    *******************/

    $('table tr td:last-child .item span').css('border', 'none');
    // unload
    $("#more_domens a").click(function() {
	$("#all_domens").css("display", "block");
	// $('#all_domens').show();
	// $("#pop_up_iframe").css("display","block");
	$("iframe").css("display", "block");

	return false;
    });

    $("#all_domens #close a").click(function(){
	$("#all_domens").css("display", "none");
	// $('@all_domens').hide();

	return false
    });

    $("#all_domens #top_close a").click(function(){
	$("#all_domens").css("display", "none");

	return false;
    });

    /* -- */
    $("#pp_wm_child").hide();

    $("#org_wm_child").hide();

    $("#pp_wm a").click(function(){
	    now = $("#pp_wm_child").css("display");
	    if (now == "block") {
	       $("#pp_wm_child").css("display", "none");
	    } else {
	       $("#pp_wm_child").css("display", "block");
	    }
    });
    $("#org_wm a").click(function(){
	    now = $("#org_wm_child").css("display");
	    if (now == "block") {
	       $("#org_wm_child").css("display", "none");
	    } else {
	       $("#org_wm_child").css("display", "block");
	    }
    });


    //partners
    $("table.sales tr.more_p").hide();
    $("table.sales tr.less_p").show();
    $("#content #partners table.sales td.links a#table_close_link").hide();
    $("#partners table.sales tr:first td:last div").append("<div style='position:absolute;right:-1px;top:-19px;'><a href='javascript://' id='table_close_link'><img src='/i/style/second/widget-part/pop_up_top_close.gif'></a></test>");
    $("table.sales tr:first td:last div div").hide();

    //show close
    $(".zones .more_zones a").click(function(){
	    $("table.sales tr.more_p").show();
	    $("table.sales tr.less_p").hide();
	    $("#content #partners table.sales td.links a#table_close_link").show();
	    $("table.sales tr:first td:last div div").show();
    });
    $(".zones .full_table a").click(function(){
	    $("table.sales tr.more_p").show();
	    $("table.sales tr.less_p").hide();
	    $("#content #partners table.sales td.links a#table_close_link").show();
	    $("table.sales tr:first td:last div div").show();
    });

    //hide close
    $("#content #partners table.sales td.links a#table_close_link").click(function(){
	    $("table.sales tr.more_p").hide();
	    $("table.sales tr.less_p").show();
	    $("#content #partners table.sales td.links a#table_close_link").hide();
	    $("table.sales tr:first td:last div div").hide();
    });
    $("#content #partners table.sales a#table_close_link").click(function(){
	    $("table.sales tr.more_p").hide();
	    $("table.sales tr.less_p").show();
	    $("#content #partners table.sales td.links a#table_close_link").hide();
	    $("table.sales tr:first td:last div div").hide();
    });

    /* clients */
    $("table.sales tr.more_p").hide();
    $("#clients table.sales tr:first td:last div").append("<div style='position:absolute;right:-1px;top:-25px;'><a href='javascript://' id='table_close_link'><img src='/i/style/second/widget-part/pop_up_top_close.gif'></a></test>");
    $("table.sales tr:first td:last div div").hide();

    $(".zones #client_table_o").click(function(){
	    $("table.sales tr.more_p").show();
	    $("#clients table.sales tr:first td:last div div").show();
    });

    $("#content #clients table.sales a#table_close_link").click(function(){
	    $("table.sales tr.more_p").hide();
	    $("table.sales tr.less_p").show();
	    $("#content #partners table.sales td.links a#table_close_link").hide();
	    $("table.sales tr:first td:last div div").hide();
    });

    // docs download menu
    $('#docs_download li div').hide();
    $('.docs_ltitle').click(function(){
	var div = $(this).parent().children('div');
	if ( div.attr("class") == 'active' ) {
	    div.removeClass("active");
	    div.hide();
	}
	else {
	    div.addClass("active");
	    div.show();
	}
    });


    $("#content #partners h3:first").css("border-top", "none");
    $("#content #partners .partners_title:first").css("border-top", "none");
    $("#content #clients h3:first").css("border-top", "none");


   // tooltip
   if (typeof $('.tooltip').Tooltip != 'undefined') {
    $('.tooltip').not('.tooltip-red-font').Tooltip({
        delay: 0,
        showURL: false
    });
    $('.tooltip-red-font').Tooltip({
        delay: 0,
        showURL: false,
        extraClass: 'tooltip-red-font'
    });
    }
    // /tooltip


// new default js functions
    //target blank
    $("a[rel*=blank]").click(function(){
	    window.open(this.href);
	    return false;
    });
    //block menu show\hide, activiti status
    $("#domain_list-filter .dfilter_block:not(.active)").hide();

    $("#domain_list-filter .dfilter_link").click(function(){
	if($(this).parent().children(".dfilter_block").hasClass("active")) {
	    filter_id = "domain_list__"+$(this).attr("id");
	    $.ajax({
	      url: "/user/set_session_value?group_name=filter_groups&name="+filter_id+"&value=0",
	      cache: false,
	      success: function(status) {
		if ( status == 'Ok' ) {}
		else {
		    //alert ('Error');
		};}
	    });
	    $(this).parent().children(".dfilter_block").hide();
	    $(this).parent().children(".dfilter_block").removeClass("active");
	}
	else {
	    filter_id="domain_list__"+$(this).attr("id");
	    $.ajax({
		url: "/user/set_session_value?group_name=filter_groups&name="+filter_id+"&value=1",
		cache: false,
		success: function(status) {
		    if ( status == 'Ok' ) {}
		    else {
			//alert ('Error');
		    };}
		});
	    $(this).parent().children(".dfilter_block").show();
	    $(this).parent().children(".dfilter_block").addClass("active");
	}
	return false;
    });

    // hover show
    $('#project_menu').hover(function(){
	if ($('#project_menu ul ul').is(":animated")) {
	}
	else {
	    $('#project_menu ul ul').show(200);
	}
    }, function () {
	$('#project_menu ul ul').hide(400);
    });

	//hover active
    $('#project_menu ul ul li a').hover(function() {
        $(this).parent('li').addClass('active');
    }, function () {
        $(this).parent('li').removeClass('active');
    });


    $('#tels_menu_rus').hover(function(){
	if ($('#tels_menu_rus ul ul').is(":animated")) {
	}
	else {
	    $('#tels_menu_rus ul ul').show(200);
	}
    }, function () {
	$('#tels_menu_rus ul ul').hide(400);
    });

    // hover active
    $('#tels_menu_rus ul ul li a').hover(function() {
        $(this).parent('li').addClass('active');
    }, function () {
        $(this).parent('li').removeClass('active');
    });


    $('#tels_menu_ukr').hover(function(){
	if ($('#tels_menu_ukr ul ul').is(":animated")) {
	}
	else {
	    $('#tels_menu_ukr ul ul').show(200);
	}
    }, function () {
	$('#tels_menu_ukr ul ul').hide(400);
    });

    //hover active
    $('#tels_menu_ukr ul ul li a').hover(function(){
        $(this).parent('li').addClass('active');
    }, function () {
        $(this).parent('li').removeClass('active');
    });

    // Ссылки в newdomain/checkmany на занятый домен/ХУИЗ домена
    // В полной версии сайта - открываются в новом окне, в мобильной - в текущем
    $(".extPopUp").click(function(){
	extPopUpIE($(this).attr("href"));
	return false;
    });

    // вставки в retail+reseller/documents
        $('.document_links .expanded')
        .removeClass('expanded')
        .addClass('collapsed');

       $('.document_links h4').bind('click', function(){
            var td = $(this).parents('td');

            if ($(td).is('.collapsed')) {
                $(td)
                 .removeClass('collapsed')
                 .addClass('expanded');
            }
            else {
                $(td)
                 .removeClass('expanded')
                 .addClass('collapsed');
            }
       });

       $('.document_links h4 a').bind('click', function(){
            $(this).parents('h4').click();
            return false;
       });

});

/*** buttons ***/
/* переключить состояние disabled .button-20 | .button-24 */
function button_toggle($button)
{
    if (!$button.hasClass('button-20') && !$button.hasClass('button-24'))
	return;
            
    if ($button.attr('disabled') || $button.attr('rel') == 'disabled') {
	button_enable($button);         
    } else if ($button.is('a') || $button.is('button')) {
	button_disable($button);
    }
}
/* disable .button-20 | .button-24 */
function button_disable($button)
{
    if (!$button.hasClass('button-20') && !$button.hasClass('button-24'))
	return;
            
    var $clone = $button.clone();
    if ($clone.is('button'))
	$clone.attr('disabled', 'disabled');
    else if ($clone.is('a'))
	$clone.attr('rel', 'disabled');

    if (browser_info.ie6) {
	if ($clone.hasClass('button-20-green-forward'))
	    $clone.addClass('button-20-disabled-forward');
	else if ($clone.hasClass('button-24-green-forward'))
	    $clone.addClass('button-24-disabled-forward');
	else if ($clone.hasClass('button-20-orange-back'))
	    $clone.addClass('button-20-disabled-back');
	else if ($clone.hasClass('button-24-orange-back'))
	    $clone.addClass('button-24-disabled-back');
	else if ($clone.hasClass('button-20'))
	    $clone.addClass('button-20-disabled');
	else if ($clone.hasClass('button-24'))
	    $clone.addClass('button-24-disabled');
    }            
            
    $button.replaceWith($clone);
}
/* enable .button-20 | .button-24 */
function button_enable($button)
{
    if (!$button.hasClass('button-20') && !$button.hasClass('button-24'))
	return;
            
    var $clone = $button.clone();
    if ($clone.is('button'))
	$clone.removeAttr('disabled');
    else if ($clone.is('a'))
	$clone.removeAttr('rel');
	
    if (browser_info.ie6)
	$clone.removeClass('button-20-disabled button-20-disabled-forward button-20-disabled-back button-24-disabled button-24-disabled-forward button-24-disabled-back');
	                
    $button.replaceWith($clone);
}
/* google translate очень вольно обращается с dom, для кнопок это критично */
function buttons_antiGoogleTranslate()
{
    if (!$('.google-src-text').length)
    	return; // no google detected

    $('.button-18, .button-20, .button-24, .button-40').each(function(){
    	var label = $(this).text();
    	$(this).html('<b title="' + label + '">' + label + '</b>');
    });
}
/*** / buttons ***/


/*** For new promo-style index page reg.ru ***/

$(function(){

	// ie6 pngfix init
	if ($.ifixpng) {
		$.ifixpng('/i/blank.gif');
	}
	
	$('.promo-dname select').dropdowns();
	
});

/* stop event */
function stopEvent(e){if(e.preventDefault){e.preventDefault();e.stopPropagation();}else{e.returnValue=false;e.cancelBubble=true;}return false;}

// cleartype fix for IE
;(function($) {
	$.fn.clearTypeFix = function() {
		if ($.browser.msie)
			return this.each(function() {
				if (this.style.filter != 'undefined' &&
					this.style.removeAttribute)
					this.style.removeAttribute('filter');
			});
	};
})(jQuery);

// out of popup click, dont forget to stop click event before popup showing
;(function($) {
	$.fn.hideOnOuterClick = function() {
		return this.each(function() {
			var $popup = $(this);
			var hide = function() {
				$popup.hide();
				$(document).unbind('click', blur);
			};
			var blur = function(e) {
				var trgt = e.target;
        		var curElements = $popup.find('*').andSelf();
        		if ($.inArray(trgt, curElements) < 0) {
            		hide();
        		}	
			};
			if (!$(this).is(':visible')) {
				$(document).unbind('click', blur);
				return;
			}
			$(document).bind('click', blur);
		});
	};
})(jQuery);

// <select> to .double_border dropdown 
;(function($) {
	$.fn.dropdowns = function() {
		return this.each(function(){
			if (!$(this).is('select'))
				return;
			var select = '<div class="dropdown double_border"><div class="current"></div><ul>';
			var current = '';
			$('option', this).each(function(){
				if ($(this).attr('selected'))
					current = $(this).text();
				select += '<li class="'+$(this).attr('value')+'">'+$(this).text()+'</li>';
			});
			select += '</ul></div>';
			$(this).before(select).hide();
			var $select = $(this);
			var $dropdown    = $(this).prev('.dropdown');
			var $dropdown_ul =  $('ul', $dropdown); 
			var dropdown_width = $dropdown_ul.width();
			$dropdown_ul.addClass('set').show(2).hide(1).clearTypeFix(); // oh ie
	
			$dropdown.width(dropdown_width).find('.current').text(current).end()
			.click(function(e){
				stopEvent(e);
				$dropdown_ul.toggle().hideOnOuterClick();
				
				if (typeof promo_stop == 'function')
					promo_stop();
					
			}).find('li').click(function(){
				$('.current', $dropdown).text($(this).text());	
				$select.val($(this).attr('class'));
			});
		});
	};
	
	$.fn.undropdowns = function() {
		return this.each(function(){
			$(this).prev('.dropdown').click().remove();
			$(this).show();
		});
	};
})(jQuery);
