//import 'mega_functions.js';
//http://blog.stevenlevithan.com/archives/faster-trim-javascript
//функция удаляет пробелы по краям строки
function trim(str) {	//trim12
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}


//проверка корректности e-mail
function checkEmail(email){
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(email) == false) {
		return false;
	}
	return true;
}


function checkForm(obj)
{
 var mass_text = obj.getElementsByTagName('input');
 var mass_textarea = obj.getElementsByTagName('textarea');

 for(var i=0;i<mass_text.length;i++)
   {
     if(mass_text[i].getAttribute("ness")==1 && mass_text[i].value=='') 
       {
        alert("Все поля должны быть заполнены");
        return false;  
       }
   }

 for(var i=0;i<mass_textarea.length;i++)
   {
     if(mass_textarea[i].getAttribute("ness")==1 && mass_textarea[i].value=='') 
       {
        alert("Все поля должны быть заполнены");
        return false;  
       }
   }


 return true;
}
//----------------------------------------
function showSubs(obj) 
{
 obj.style.position = "relative";
 obj.getElementsByTagName('div').item(0).style.display = 'block';
}
//----------------------------------------
function hideSubs(obj) 
{
 obj.style.position = "";
 obj.getElementsByTagName('div').item(0).style.display = 'none';
}



/**
	Стилизованные checkbox'ы
	ArtProduct.ru
	05.2011
	Куцевалов К.Д.
	
	Принцип работы
		Оригинальные <input type=checkbox/> делаются [display=none], а возле них создается <span> с background'ом и событием onclick,
		при котором у input'a меняется атрибут checked.
		Таким образом при [submit], не выбранный <input type=checkbox/> отправлен на сервер(скрипту) не будет.
	Стили
		Каждый чекбокс (span) имеет всего два класса которыми можно манипулировать в CSS: artCheckbox и checked.
		Соответственно .artCheckbox - не выбран, .artCheckbox.checked - выбран.
*/

if( typeof art === 'undefined' ){ var art = {}; }

//стили
art.checkBoxCSS = ".artCheckbox {" +
		"display: inline-block;" +
		"background-repeat: no-repeat;" +
		"background-position: 0% 0%;" +
		"cursor: pointer; }" +
		".artCheckbox.checked {" +
		"background-position: 100% 0%; }";


art.checkBox = function( cImage ){
	if( typeof cImage === 'undefined' || cImage === null ){	console.log('no image'); return false; }
	
	var img = new Image();
	//сразу после загрузки картинки начнется подмена <input'ов>
	//вот этой функцией
	img.onload = function(){
		//подключаем стили
		var style = document.createElement('style');
		style.type = 'text/css';
		style.innerHTML = art.checkBoxCSS;
		var headTag = document.getElementsByTagName('head')[0];
		if( typeof headTag == 'undefined' ){
			console.error( 'not found head tag' );
			return false; // !
		}
		//помещаем в <head>
		headTag.appendChild( style );
		//сканируем все input
		var inputs = document.getElementsByTagName('input');
		var checkboxes = [];
		var t = 0;
		for( i=0; i<inputs.length; i++ ){	//отбираем только checkbox'ы
			if( inputs[i].type == 'checkbox' ){
				checkboxes[t] = inputs[i];
				t++;
			}
		}
		if( t == 0 ){ return false; /* ! */ }	//нет чекбоксов
		//удаляем input и добавляем span
		var elem = null;
		var chSpan = null;
		var container = null;
		for( i=0; i<checkboxes.length; i++ ){
			//создаем span'ы и пичкаем их атрибутами
			elem = checkboxes[i];
			elem.style.display = 'none';
			container = elem.parentNode;
			chSpan = document.createElement('span');
			chSpan.id = elem.name+'I';	//запоминаем name input'a в id span'a
			chSpan.className = 'artCheckbox';
			chSpan.style.width = Math.round(img.width/2) + 'px';	//рисунок делится на 2 части
			chSpan.style.height = img.height + 'px';
			chSpan.style.backgroundImage = "url(" + cImage + ")";
			container.insertBefore( chSpan, elem );	//добавляем элемент
			if( elem.checked ){ //если чекбокс по умолчанию выбранный, то сразу смещаем бекграунд и помечаем классом checked
				chSpan.className = 'artCheckbox checked';
				elem.checked = true;
			}else{
				elem.checked = false;
			}
			//регистрируем событие
			chSpan.onclick = function(){
				var name = (this.id).substring(0, (this.id).length - 1);
				var inputHidden = document.getElementsByName(name);
				if( typeof inputHidden != 'undefined' ){
					if( inputHidden[0].checked){
						inputHidden[0].checked = false;
						this.className = 'artCheckbox';
					}else{
						inputHidden[0].checked = true;
						this.className = 'artCheckbox checked';
					}
				}else{
					console.log( this.id + ' not found');
				}
			}
		}
	}
	
	img.src = cImage;	//загружаем картинку
};


/**
	Стилизованные combobox'ы
	ArtProduct.ru
	06.2011
	Куцевалов К.Д.
	
	Принцип работы
		Создается контейнер, в него помещаются стилизованные рисунками span'ы и копия оригинального select'а,
		после чего оригинальный select заменяется на контейнер со стилизованными элементами и копией select'а
	Стили
		artComboBox - контейнер
		artComboBoxButton - кнопочка
		artComboBoxField - поле

*/

if( typeof art === 'undefined' ){ var art = {}; }

//стили
art.comboBoxCSS = ".artComboBox {" +
		"display: inline-block;" +
		"position: relative;" +
		"}" +
		".artComboBoxField {" +
		"display: inline-block;" +
		"background-repeat: no-repeat;" +
		"background-position: 0% 0%;" +
		"cursor: pointer;" +
		"}" +
		".artComboBoxButton {" +
		"display: inline-block;" +
		"background-repeat: no-repeat;" +
		"background-position: 0% 0%;" +
		"cursor: pointer;" +
		"}" +
		".artComboBoxText {" +
		"display: block;" +
		"position: absolute;" +
		"top: 2px;" +
		"left: 2px;" +
		"z-index: 50;" +
		"font-size: 12px;" +
		"}" +
		".artComboBox select {" +
		"display: block;" +
		"position: absolute;" +
		"top: 0px;" +
		"left: 0px;" +
		"z-index: 100;" +
		"cursor: pointer;" +
		"font-size: 12px;	}";

art.comboBox = function( cImageField, cImageButton ){
	if( typeof cImageField === 'undefined' || cImageField === null ){	console.log('no image field'); return false; }
	if( typeof cImageButton === 'undefined' || cImageButton === null ){	console.log('no image button'); return false; }
	
	var imgField = new Image();
	var imgButton = new Image();
	//сразу после загрузки картинки начнется подмена <select'ов>
	
	//вот этой функцией
	imgField.onload = function(){
		//подключаем стили
		var style = document.createElement('style');
		style.type = 'text/css';
		style.innerHTML = art.comboBoxCSS;
		var headTag = document.getElementsByTagName('head')[0];
		if( typeof headTag == 'undefined' ){
			console.error( 'not found head tag' );
			return false; // !
		}
		//помещаем в <head>
		headTag.appendChild( style );
		
		//сканируем все select
		var selects = document.getElementsByTagName('select');
		
		for( i=0; i<selects.length; i++ ){
			//создаем span'ы и пичкаем их атрибутами
			var elem = selects[i];
			var originalWidth = elem.offsetWidth;
			elem.style.opacity = "0.01";
			elem.style.height = Math.round(imgField.height/2) + 'px';
			elem.style.width = (originalWidth + imgButton.width) + 'px';
			var container = elem.parentNode;
			var comboField = document.createElement('span');	//рисунок поля
			comboField.className = 'artComboBoxField';
			comboField.style.width = (originalWidth) + 'px';
			comboField.style.height = Math.round(imgField.height/2) + 'px';	//рисунок делится на 2 части
			comboField.style.backgroundImage = "url(" + imgField.src + ")";
			var comboText = document.createElement('span');	//текст
			comboText.className = 'artComboBoxText';
			//comboText.style.width = (originalWidth - imgButton.width - 4) + 'px';
			//comboText.style.height = (Math.round(imgField.height/2) - 4) + 'px';
			var comboButton = document.createElement('span');	//рисунок кнопки
			comboButton.className = 'artComboBoxButton';
			comboButton.style.width = imgButton.width + 'px';
			comboButton.style.height = Math.round(imgField.height/2) + 'px';
			comboButton.style.backgroundImage = "url(" + imgButton.src + ")";
			//создаем контейнер для стилизованных span'ов
			var comboBoxContainer = document.createElement('span');
			comboBoxContainer.className = 'artComboBox';
			//клонируем оригинальный список, помещаем его и все стилизованные span в контейнер, затем заменяем оригинальный
			//select на контейнер с клоном
			var copySelect = elem.cloneNode(true);
			//перенаправляем некоторые события, если они есть
			copySelect.myfunc = function(){};
			if( elem.onchange != null && typeof(elem.onchange) != 'undefined' ){
				copySelect.myfunc = elem.onchange;
			}
			comboBoxContainer.appendChild(copySelect);
			comboBoxContainer.appendChild(comboField);
			comboBoxContainer.appendChild(comboText);
			comboBoxContainer.appendChild(comboButton);
			container.replaceChild( comboBoxContainer, elem );
			if( copySelect.id == null || typeof(copySelect.id) == 'undefined' || copySelect.id == '' ){
				copySelect.id = "combobox_" + i;
			}
			comboText.id = copySelect.id + "text";
			//выставляем значение по умолчанию
			var defItem = elem.selectedIndex;
			if( defItem < 0 ){ defItem = 0;	}
			var defText = elem.options[defItem].text;
			comboText.innerHTML = defText;
			//ставим событие
			copySelect.onchange = function(){
				var defItem = this.selectedIndex;
				if( defItem < 0 ){ defItem = 0;	}
				var defText = this.options[defItem].text;
				var text = document.getElementById(this.id + "text");
				if( text != null && typeof(text) != 'undefined' ){
					text.innerHTML = defText;
				}
				this.myfunc();
			}
			
			//тут переключение фона при наведении
			//дописать позже
			// copySelect.onmouseenter = function(){
			// }
			// copySelect.onmouseenter = function(){
			// }
			
		}
	}
	
	//первая картинка
	imgButton.onload = function(){
		imgField.src = cImageField;	//вторая картинка
	}
	
	imgButton.src = cImageButton;	//загружаем картинку
};


//а это вспомогательная функция, может понадобиться при обновлении списка через ajax,
//при этом элемент span с текстом последнего пункта останется старым, так вот чтобы его сменить...
art.refreshComboBox = function( name ){
	var elem = document.getElementsByName(name)[0];
	if( elem != null && typeof(elem) != 'undefined' ){
		var comboText = document.getElementById( elem.id + "text" );
		if( comboText != null && typeof(comboText) != 'undefined' ){
			if( elem.options.length > 0 ){
				comboText.innerHTML = elem.options[0].text;
			}else{
				comboText.innerHTML = "";
			}
		}
	}
}


//эта функция позволяет добавлять в список select новый пункт
art.addItemToComboBox = function( name, text, value ){
	var elem = document.getElementsByName( name )[0];
	if( elem != null && typeof(elem) != 'undefined' ){
		var newopt = document.createElement('option');
		newopt.text = text;
		newopt.value = value;
		elem.appendChild( newopt );
	}
}


/**
	Стилизованные radiobutton'ы
	ArtProduct.ru
	05.2011
	Куцевалов К.Д.
	
	Принцип работы
		Оригинальные <input type=radio/> делаются [display=none], а возле них создается <span> с background'ом и событием onclick,
		при котором у input'a меняется атрибут checked.
	Стили
		Каждый radiobutton (span) имеет всего два класса которыми можно манипулировать в CSS: artRadioButton и checked.
		Соответственно .artRadioButton - не выбран, .artRadioButton.checked - выбран.
*/

if( typeof art === 'undefined' ){ var art = {}; }

//стили
art.radioButtonCSS = ".artRadioButton {" +
		"display: inline-block;" +
		"background-repeat: no-repeat;" +
		"background-position: 0% 0%;" +
		"cursor: pointer; }" +
		".artRadioButton.checked {" +
		"background-position: 100% 0%; }";

art.radioButton = function( cImage ){
	if( typeof cImage === 'undefined' || cImage === null ){	console.log('no image'); return false; }
	
	var img = new Image();
	//сразу после загрузки картинки начнется подмена <input'ов>
	//вот этой функцией
	img.onload = function(){
		//подключаем стили
		var style = document.createElement('style');
		style.type = 'text/css';
		style.innerHTML = art.radioButtonCSS;
		var headTag = document.getElementsByTagName('head')[0];
		if( typeof headTag == 'undefined' ){
			console.error( 'not found head tag' );
			return false; // !
		}
		//помещаем в <head>
		headTag.appendChild( style );
		//сканируем все input
		var inputs = document.getElementsByTagName('input');
		var radiobuttones = [];
		var t = 0;
		for( i=0; i<inputs.length; i++ ){	//отбираем только radiobutton'ы
			if( inputs[i].type == 'radio' ){
				radiobuttones[t] = inputs[i];
				t++;
			}
		}
		if( t == 0 ){ return false; }	//нет чекбоксов
		//удаляем input и добавляем span
		var elem = null;
		var chSpan = null;
		var container = null;
		for( i=0; i<radiobuttones.length; i++ ){
			//создаем span'ы и пичкаем их атрибутами
			elem = radiobuttones[i];
			elem.id = 'radio' + i;	//создаем id для отличия одноименных radiobutton
			elem.style.display = 'none';
			container = elem.parentNode;
			chSpan = document.createElement('span');
			chSpan.id = elem.name + '_' + elem.id;	//запоминаем name и id input'a в id span'a
			chSpan.className = 'artRadioButton';
			chSpan.style.width = Math.round(img.width/2) + 'px';	//рисунок делится на 2 части
			chSpan.style.height = img.height + 'px';
			chSpan.style.backgroundImage = "url(" + cImage + ")";
			container.insertBefore( chSpan, elem );	//добавляем элемент
			if( elem.checked ){ //если чекбокс по умолчанию выбранный, то сразу смещаем бекграунд и помечаем классом checked
				chSpan.className = 'artRadioButton checked';
				elem.checked = 'checked';
			}else{
				elem.checked = null;
			}
			//регистрируем событие
			chSpan.onclick = function(){
				var inpID = this.id.split('_')[1];	//разделяем name и id input'a
				var inpName = this.id.split('_')[0];
				var inputHidden = document.getElementsByName( inpName );
				if( typeof inputHidden != 'undefined' ){
					var startID = inputHidden[0].id.split('radio').join('');	//стартовый номер id для текущего name
					for( i=0; i<inputHidden.length; i++ ){
						if( inputHidden[i].id === inpID ){ //если выбранный элемент
							inputHidden[i].checked = 'checked';
							this.className = 'artRadioButton checked';
						}else{	//не выбранный
							inputHidden[i].checked = null;
							var otherSpan = document.getElementById( inpName + '_radio' + startID );	//ищем span привязанный к текущему инпуту по id
							if( typeof otherSpan != 'undefined' ){// && otherSpan !== null ){
								otherSpan.className = 'artRadioButton';
							}
						}
						startID++;
					}
				}else{
					console.log( this.id + ' not found');
				}
			}
		}
	}
	
	img.src = cImage;	//загружаем картинку
};


function changeProizvoditelList(elem){
	maker = document.getElementById('proizvoditel');
	thickness = document.getElementById('thickness'); //толщина
	maker.options.length = 0;
	thickness.options.length = 0;
	thickness.value=false;
	if (elem.value == '4-камерный'){
		var o = document.createElement('option');
		var t = document.createTextNode('- Proplex (Россия-Австрия)');
		o.setAttribute('value', '- Proplex (Россия-Австрия)');
		o.appendChild(t);
		maker.appendChild(o);	
		
		o = document.createElement('option');
		t = document.createTextNode('32');
		o.setAttribute('value', '32');
		o.appendChild(t);
		thickness.appendChild(o);	
		
		o = document.createElement('option');
		t = document.createTextNode('40');
		o.setAttribute('value', '40');
		o.appendChild(t);
		thickness.appendChild(o);
		
	}
	else if (elem.value == '3-камерный'){
		var o = document.createElement('option');
		var t = document.createTextNode('- Proplex (Россия-Австрия)');
		o.setAttribute('value', '- Proplex (Россия-Австрия)');
		o.appendChild(t);
		maker.appendChild(o);
		o = document.createElement('option');
		t = document.createTextNode('- Funke (Германия)');
		o.setAttribute('value', '- Funke (Германия)');
		o.appendChild(t);
		maker.appendChild(o);
		
		o = document.createElement('option');
		t = document.createTextNode('24');
		o.setAttribute('value', '24');
		o.appendChild(t);
		thickness.appendChild(o);	
		
		o = document.createElement('option');
		t = document.createTextNode('32');
		o.setAttribute('value', '32');
		o.appendChild(t);
		thickness.appendChild(o);
	}
	else if (elem.value == '5-камерный'){
		var o = document.createElement('option');
		var t = document.createTextNode('- Proplex (Россия-Австрия)');
		o.setAttribute('value', '- Proplex (Россия-Австрия)');
		o.appendChild(t);
		maker.appendChild(o);
		o = document.createElement('option');
		t = document.createTextNode('- Funke (Германия)');
		o.setAttribute('value', '- Funke (Германия)');
		o.appendChild(t);
		maker.appendChild(o);
		
		o = document.createElement('option');
		t = document.createTextNode('32');
		o.setAttribute('value', '32');
		o.appendChild(t);
		thickness.appendChild(o);	
		
		o = document.createElement('option');
		t = document.createTextNode('40');
		o.setAttribute('value', '40');
		o.appendChild(t);
		thickness.appendChild(o);
	}		
}



