
/**
* Работа с классами элементов,
* в стандартных фреймворках есть похожие методы
* Эмуляция getElementsByClassName, hasClass и т.д.
*/
var classes = {
    
    /**
* Проверка наличия имени класса в элементе
* @param {Element} element
* @param {String} name имя класса
* @returns {Boolean}
*/
    has: function(element, name) {
        var regex = new RegExp('(^|\\s)' + name + '(\\s|$)');
        var result = regex.test(element.className);
        return result;
    },
    
    /**
* Добавляем имя класса в элемент
* @param {Element} element из которого удаляем
* @param {String} name имя класса
*/
    add: function(element, name) {
        if (!element.className) {
            element.className = name;
        } else {
            this.remove(element, name);
            element.className += ' ' + name;
        }
    },

    /**
* Удаляем имя класса из элемента
* @param {Element} element из которого удаляем
* @param {String} name имя класса
*/
    remove: function(element, name) {
        if (element.className) {
            /**
* Ищем варианты имя класса в начале, в конце, в середине, с пробелами и без
*/
            var regex = new RegExp('(^|\\s)' + name + '(\\s|$)');
            element.className = element.className.replace( regex ,' ');
        }
    },

    toggle: function(element, name) {
    	var has = this.has(element, name);
   		if ( has ) {
   			this.remove(element, name);
   		} else { 
   			this.add(element, name);
   		}
    }
    
};

if (document.getElementsByClassName == undefined) {
    /**
* в IE метод getElementsByClassName не существует, создаем таковой
*
* @url http://web.izjum.com/getelementsbyclassname-on-javascript
* @param {Element} element - элемент у которого перебираем классы
* @param {String} name имя класса
* @return {Elements} список элементов с требуемым классом
*/
    classes.getByName = function(element, name) {
        var retnode = [];
        var elements = element.getElementsByTagName('*');
        for ( var i = 0; i < elements.length; i++) {
            var element = elements[i];
            if ( this.has(element, name) ) {
                retnode.push(element);
            }
        }
        return retnode;
    };
} else {
    classes.getByName = function(element, name) {
        return element.getElementsByClassName(name);
    };
};

/**
* Возвращает последний элемент с заданным классом
*
* @param element объект, для которого происходит действие
* @param name имя класса
* @returns {Element} элемент
*/
classes.getLastBlock = function(element, name) {
    var nodes = this.getByName(element, name);
    return nodes ? nodes[nodes.length - 1] : null;
};

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.x) {
        curleft+=obj.x;
    }
    return curleft;
}
 
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.y) {
        curtop+=obj.y;
    }
    return curtop;
}

function init() {
	return;
	var popup_left = document.getElementById('popup-left');
	var popup_right = document.getElementById('popup-right');
	var element = document.getElementById('Menu2');

    var elements = element.getElementsByTagName('div');
    for ( var i = 0; i < elements.length; i++) {
        
        var element = elements[i];
        
        element.onmouseover = function() {
        	var left = classes.has(this, 'lite');
	        var popup = left ? popup_left : popup_right;
        	popup.innerHtml = this.innerHtml;
        	classes.remove(popup, 'hidden');
        };
        
        element.onmouseout = function() {
        	var left = classes.has(this, 'lite');
	        var popup = left ? popup_left : popup_right;
        	classes.add(popup, 'hidden');
        };

    }
}

function sf(txt)
{
 document.write(txt);
};

function swm4(n) {
	if ( document.getElementById("menuitem"+n) ) {
		var menuitem=document.getElementById("menuitem" + n);
		if (classes.has(menuitem, "m1")) {
			//alert(menuitem.className);
			classes.toggle(menuitem, "active");
		}
	};
};

function swm4x(n)
{
 if (document.getElementById("menuitem"+n))
  {
   var menuitem=document.getElementById("menuitem"+n);
   if (menuitem.className=="m1 active") menuitem.className="m1"; else menuitem.className="m1 active";
  };
};


var pic = new Array();
var fid = null;

function switch_tab(lnk, active, old)
{
	lnk.blur();
	
	old_tab = document.getElementById('tab'+old);
	active_tab = document.getElementById('tab'+active);
	
	old_tab.style.display = 'none';
	active_tab.style.display = '';
	
	
	old_top = document.getElementById('cctop'+old);
	active_top = document.getElementById('cctop'+active);
	
	old_top.style.display = 'none';
	active_top.style.display = '';
	
	
	old_item = document.getElementById('item'+old);
	active_item = document.getElementById('item'+active);
	
	old_item.className = '';
	active_item.className = 'active';
	
	fid = active;
	ccch(1);
}

/*
function switch_btn_pickblock(lnk, id)
{
	document.getElementById('btn-lnk'+pickblock).className = '';
	
	document.getElementById('btn-block'+pickblock).style.display = 'none';
	
	document.getElementById('btn-block'+id).style.display = '';
	
	pickblock = id;

	lnk.blur();
	lnk.className = 'active';
}
*/

/**
 * Создано 23.06.2011
 * 
 * Так то 21 век на дворе...
 */
function switch_btn_pickblock(el, id)
{
	$(".btn_pickblock .btn-block a").removeClass("active");
	$(el).addClass("active");
	
	$(".btn-block-body").hide();
	$("#btn-block" + id).show();
	
	
	// @fix: 30.09.2011
	maxHeight = 42;
	$(".list-tab-container .btn-block span").each(function(){
		maxHeight = maxHeight < $(this).attr('offsetHeight') ? $(this).attr('offsetHeight') : maxHeight;
	});
	$(".list-tab-container .btn-block a").css( { height: maxHeight + 'px' } );
}

function ccch(n)
{
	$(".cclist a").removeClass("active");
	$("#cca_" + fid + "_" + n).addClass("active");
	
	$(".cctop .ccolor img").hide();
	$(".cctop .ccolor img").attr("src", "/upload/" + pic[fid][n]);
	$(".cctop .ccolor img").fadeIn();
	
	$(".cctop #cctitle"+fid).html(title[n]);
	
	$(".cctop .count span").html(n);
	
	current = n;
};

function ccnext()
{
	if ((current+1) > total) ccch(1);
		else ccch((current+1));
};

function ccprv()
{
	if ((current-1) < 1) ccch(total);
		else ccch(current-1);
};

function getXmlHttp()
{
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined')  xmlhttp = new XMLHttpRequest();
  return xmlhttp;
}


function send_test_drive()
{
   var T0 = "";

   var T0=document.getElementById("FTC0").value;
   var T1=document.getElementById("FTC1").value;
   var T2=document.getElementById("FTC2").value;
   var T3=document.getElementById("FTC3").value;
   var T4=document.getElementById("FTC4").value;
   var T5=document.getElementById("FTC5").value;
   var T6=document.getElementById("FTC6").value;

   var xmlhttp = getXmlHttp();
   
   var params = "&T0=" + encodeURIComponent(T0) + "&T1=" + encodeURIComponent(T1) + "&T2=" + encodeURIComponent(T2) + "&T3=" + encodeURIComponent(T3) + "&T4=" + encodeURIComponent(T4) + "&T5=" + encodeURIComponent(T5) + "&T6=" + encodeURIComponent(T6);

   xmlhttp.open("POST", "/send-test-drive/", true);
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(params);
   
   xmlhttp.onreadystatechange = function() 
    {
     if (xmlhttp.readyState==4 && xmlhttp.status==200 && xmlhttp.responseText)
      {

       if (xmlhttp.responseText=="2") alert('Необходимо заполнить поля, отмеченные звездочкой');
        else document.getElementById("form").innerHTML='<p>Заявка успешно отправлена</p><p>Наш менеджер свяжется с Вами в ближайшее время для подтверждения заявки.</p>'; 

      };
    };
};



function send_to()
{
   var T0="";

   var T0=document.getElementById("FTC0").value;
   var T1=document.getElementById("FTC1").value;
   var T2=document.getElementById("FTC2").value;
   var T3=document.getElementById("FTC3").value;
   var T4=document.getElementById("FTC4").value;
   var T5=document.getElementById("FTC5").value;
   var T6=document.getElementById("FTC6").value;

   var T10=document.getElementById("FTC10").value;
   var T11=document.getElementById("FTC11").value;
   var T12=document.getElementById("FTC12").value;
   var T13=document.getElementById("FTC13").value;

   var xmlhttp = getXmlHttp();
   
   var params = "&T0=" + encodeURIComponent(T0) + "&T1=" + encodeURIComponent(T1) + "&T2=" + encodeURIComponent(T2) + "&T3=" + encodeURIComponent(T3) + "&T4=" + encodeURIComponent(T4) + "&T5=" + encodeURIComponent(T5) + "&T6=" + encodeURIComponent(T6) + "&T10=" + encodeURIComponent(T10) + "&T11=" + encodeURIComponent(T11) + "&T12=" + encodeURIComponent(T12) + "&T13=" + encodeURIComponent(T13);

   xmlhttp.open("POST", "/send-to/", true);
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(params);
   
   xmlhttp.onreadystatechange = function() 
    {
     if (xmlhttp.readyState==4 && xmlhttp.status==200 && xmlhttp.responseText)
      {

       if (xmlhttp.responseText=="2") alert('Необходимо заполнить поля, отмеченные звездочкой');
        else document.getElementById("form").innerHTML='<p>Заявка успешно отправлена</p><p>Наш менеджер свяжется с Вами в ближайшее время для подтверждения заявки.</p>'; 

      };
    };
};



function send_contacts()
{

   var T0=document.getElementById("FTC0").value;
   var T1=document.getElementById("FTC1").value;
   var T2=document.getElementById("FTC2").value;
   var T3=document.getElementById("FTC3").value;

   var xmlhttp = getXmlHttp();
   
   var params = "&T0=" + encodeURIComponent(T0) + "&T1=" + encodeURIComponent(T1) + "&T2=" + encodeURIComponent(T2) + "&T3=" + encodeURIComponent(T3);

   xmlhttp.open("POST", "/send-contacts/", true);
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(params);
   
   xmlhttp.onreadystatechange = function() 
    {
     if (xmlhttp.readyState==4 && xmlhttp.status==200 && xmlhttp.responseText)
      {

       if (xmlhttp.responseText=="2") alert('Необходимо заполнить поля, отмеченные звездочкой');
        else document.getElementById("form").innerHTML='<p>Сообщение отправлено.</p>'; 

      };
    };
};



function basename(path, suffix) {
    // Returns the filename component of the path  
    // 
    // version: 1102.614
    // discuss at: http://phpjs.org/functions/basename    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ash Searle (http://hexmen.com/blog/)
    // +   improved by: Lincoln Ramsay
    // +   improved by: djmix
    // *     example 1: basename('/www/site/home.htm', '.htm');    // *     returns 1: 'home'
    // *     example 2: basename('ecra.php?p=1');
    // *     returns 2: 'ecra.php?p=1'
    var b = path.replace(/^.*[\/\\]/g, '');
     if (typeof(suffix) == 'string' && b.substr(b.length - suffix.length) == suffix) {
        b = b.substr(0, b.length - suffix.length);
    }
 
    return b;
}

function fixccheight()
{
	maxHeight = 40;
		$(".cclist .block").each(function(){
			maxHeight = maxHeight < $(this).attr('offsetHeight') ? $(this).attr('offsetHeight') : maxHeight;
		});
		$(".cclist .block a").css( { height: maxHeight - 2 + 'px' } );
}

$(document).ready(function(){
	// выравнивание высоты у текстовых блоков
	if ( $(".btn-block span").length ) {
		
		maxHeight = 42;
		$(".btn-block span").each(function(){
			maxHeight = maxHeight < $(this).attr('offsetHeight') ? $(this).attr('offsetHeight') : maxHeight;
		});
		$(".btn-block a").css( { height: maxHeight + 'px' } );
	}
	
	// выравнивание высоты у блоков окраски/картинок и т.д.
	setTimeout(fixccheight, 100);
	
	// выравнивание высоты у блоков окраски/картинок и т.д.
	if ( $(".exp").length > 0 ) {
		maxHeight = 0;
		$(".exp li").each(function(){
			maxHeight = maxHeight < $(this).attr('offsetHeight') ? $(this).attr('offsetHeight') : maxHeight;
		});
		$(".exp li .body").css( { height: maxHeight - 68 + 'px' } );
	}
	
	// Небольшой хук по оптимизации размера шрифта
	$(".page-title span").each(function(){
		 while( $(this).attr('offsetHeight') > 56 ) {
			$(this).css({
				fontSize: (parseInt($(this).css('fontSize')) - 1) + 'px'
			});
		 }
	});
	
	// Замена табов jquery аналогом (т.к. старая версия - сильно жёсткая)
	if ( $(".tabs .tab").length ) {
		
		// init
		$(".tab").removeClass("active");
		$(".tab:first").addClass("active");
		$(".tab-container").removeClass("active");
		$(".tab-container").hide();
		$(".tab-container:first").show();
		
		$(".tab").click(function(){
			containerId = $(this).find("a")[0].toString().match(/#.+/);
			
			$(".tab").removeClass("active");
			$(".tab-container").removeClass("active");
			$(".tab-container").hide();
			$(this).addClass("active");
			
			$(containerId.toString()).fadeIn("fast");
		});
	}
	
	$(".list-tab-container .btn-block a").click(function(){
		$(".list-tab-container .btn-block a").removeClass("active");
		$(this).addClass("active");
		
		$(".list-tab-container .content-block").hide();
		$(".list-tab-container").find( $(this).attr("href") + "-block" ).show();
	});
});

function whowWndPrice(){
	$('<div class="doclocker" style="width: ' + $(window).width() + 'px; height: ' + ($('body').height() + 50) + 'px"></div>').appendTo("body");
	
	$('.wnd-price').css( { marginTop: 0 - $('.wnd-price').height() / 2 } ).fadeIn();
	
	if ( $('.wnd-price')[0].offsetTop < 50 )
		while ( $('.wnd-price')[0].offsetTop < 50 )
			$('.wnd-price').css({marginTop:parseInt($('.wnd-price')[0].style.marginTop.replace("px",""))+10+"px"});
	
	$("html, body").animate({scrollTop: 0}, 300);
	$('.doclocker').click(function(){
		$(this).remove();
		$('.wnd-price').hide();
	});
}

function sendTestDriveOrder()
{
	request_data = {
		name: $("#FTC0").val(),
		model: $("#FTC1").val(),
		phone: $("#FTC2").val(),
		day: $("#FTC3").val(),
		month: $("#FTC4").val(),
		year: $("#FTC5").val(),
		comment: $("#FTC6").val()
	};
	
	$.post("/send-test-drive/", request_data, function(resp){
		if ( resp == 0 ) {
			$("#form").html( "<p>Заявка успешно отправлена</p><p>Наш менеджер свяжется с Вами в ближайшее время для подтверждения заявки.</p>" );
		} else {
			$("#form").html( "<p>Произошла ошибка. Попробуйте позже</p>" );
		}
	});
}
