// JavaScript Document
//Поиск аякс запросом
function getXMLHttp () {
	/* Создание нового объекта XMLHttpRequest для общения с Web-сервером */
	var xmlHttp = false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
	  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	  try {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (e2) {
		xmlHttp = false;
	  }
	}
	@end @*/
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
	  xmlHttp = new XMLHttpRequest();
	}
	return xmlHttp;
}

function cartRecount() {			
	document.getElementById('cartForm').action = 'products.php?a=recountCart';
	document.getElementById('cartForm').submit();
}

function checkEmailInputAndSendIt () {	
	email = document.getElementById('orderEmail').value;
	phone = document.getElementById('orderPhone').value;
	
	if (email != '' & isEmail(email)){
		emailExist = true;
	}else{		
		document.getElementById('orderEmail').className = 'red';
		document.getElementById('mandatoryMSG-email').style.display = 'block';
		emailExist = false;
	}
	
	if (phone != '' & isPhoneNumber(phone)){
		phoneExist = true;
	}else{		
		document.getElementById('orderPhone').className = 'red';
		document.getElementById('mandatoryMSG-phone').style.display = 'block';
		phoneExist = false;
	}
	
	if (emailExist & phoneExist) {
		document.getElementById('cartForm').submit();
	}else{
		if(!email){
			document.getElementById('orderEmail').focus();
		}else if(!phone){
			document.getElementById('orderPhone').focus();
		}		
	}
}

function isPhoneNumber (str) {
	pattern = /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/;
	matches = str.match(pattern);
	if (matches == null){
		return false;
	}else{
		return true;
	}
}

function isEmail (str) {
	pattern = /[\w\d-\.]+@([\w\d-]+(\.[\w\-]+)+)/;
	matches = str.match(pattern);
	if (matches == null){
		return false;
	}else{
		return true;
	}
}

function showEmailCommentForm () {
	document.getElementById('emailComment').style.display = 'block';
	document.getElementById('orderEmail').focus();
	document.getElementById('placeForSubmit').innerHTML = '<input type="button" id="prepairOrder"  value="Отправить заказ" onclick="checkEmailInputAndSendIt();"/>';
}

function addToCart(id) {
	xmlHttp = getXMLHttp ();	
	// Создать URL для подключения
    var url = "products.php?a=addToCart&id=" + id;	
	// Открыть соединение с сервером
	xmlHttp.open("GET", url, true);  
	// Установить функцию для сервера, которая выполнится после его ответа
	xmlHttp.onreadystatechange = changeLinkAfterAddToCart;  
	// Передать запрос
	xmlHttp.send(null);	
}

function changeLinkAfterAddToCart () {
	if (xmlHttp.readyState == 4) {		
    	var id = xmlHttp.responseText; 
		containerID = 'cartActionLink-' + id;
		document.getElementById(containerID).innerHTML = '<a href="products.php?a=cart" class="gotoCart">&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1074; &#1082;&#1086;&#1088;&#1079;&#1080;&#1085;&#1091;</a>';
	}
}

function updatePage() {
  if (xmlHttp.readyState == 4) {
    var response = xmlHttp.responseText;
    document.getElementById("Content").innerHTML = response;
  }
}

function searchByTitle(q) {	
	xmlHttp = getXMLHttp ();
	// Создать URL для подключения
    var url = "products.php?a=ajaxSearch&q=" + q;	
	// Открыть соединение с сервером
	xmlHttp.open("GET", url, true);  
	// Установить функцию для сервера, которая выполнится после его ответа
	xmlHttp.onreadystatechange = updatePage;  
	// Передать запрос
	xmlHttp.send(null);	
}

function ajaxSearch() {
	q = document.getElementById('searchTypeIn').value;
	document.title = 'Поиск фразы: '+q+' | ООО «Автомаг 2000»';
	if (q != '') {
		searchByTitle(q);
	}
}


//Общие функции

function coloredHeaders (from,to,target) {
	coloredAllHeadersInContentID (from,to,target,'H1');
	coloredAllHeadersInContentID (from,to,target,'H2');
	coloredAllHeadersInContentID (from,to,target,'H3');	
}

function coloredAllHeadersInContentID (from,to,target,where) {	
	
	var controller = 0;	
	var arrayLength = document.getElementById(target).getElementsByTagName(where).length;
	
	from = hextorgb(from);
	var r = from.red;
	var g = from.green;
	var b = from.blue;
	
	to = hextorgb(to);		
	var rEnd = to.red;
	var gEnd = to.green;
	var bEnd = to.blue;	
		
	while (controller < arrayLength) {
						
		var header = document.getElementById(target).getElementsByTagName(where)[controller].innerHTML;
								
		var headerArray = header.split("");			
		
		var i = 0;
		var headerLength = header.length;		
		
		var rPart = Math.ceil(r / headerLength);
		var gPart = Math.ceil(g / headerLength);
		var bPart = Math.ceil(b / headerLength);
		
		var rNow = r;
		var gNow = g;
		var bNow = b;
				
		var coloredHeader = '';			
		
		for (i; i <= headerLength; i++) {
			if (headerArray[i] != undefined) {
				if (rNow >= rEnd) {rNow = rNow - rPart;}
				if (gNow >= gEnd) {gNow = gNow - gPart;}
				if (bNow >= bEnd) {bNow = bNow - bPart;}
				
				if (rNow < rEnd) {rNow = rEnd;}
				if (gNow < gEnd) {gNow = gEnd;}
				if (bNow < bEnd) {bNow = bEnd;}
				
				
				var starts = '<span style=" color: rgb(';		
				coloredNumbers = rNow+','+gNow+','+bNow;		
				var ends = ' ) !important;">' + headerArray[i] + '</span>';
				
				var coloredLetter = starts + coloredNumbers + ends;
				
				coloredHeader = coloredHeader + coloredLetter;
			}			
		}		
		document.getElementById(target).getElementsByTagName(where)[controller].innerHTML = coloredHeader;
			
		controller++;
	}				
}

function hextorgb(hex_clr){
	if(!/^\#?[\da-f]{6}$/i.test(hex_clr))
		   return null;
	
	var color = (hex_clr.charAt(0)=="#") ? hex_clr.substring(1):hex_clr;
	
	return {
		   "red" : parseInt(color.substring(0,2),16),
		   "green" : parseInt(color.substring(2,4),16),
		   "blue" : parseInt(color.substring(4,6),16)
	}
}
