// JavaScript Document

IndexForms = []

IndexForm = function() {
	this.injectObject = document.body;
	this.lines = []
	this.data = IndexCatalogData
	this.numLines = 0;
}

IndexForm.prototype = {
	activate: function(id) {
		
		this.build();
		
		IndexForms[this.id] = this
	},
	build: function() {
		this.generalLayer = new Element('div', {
			'styles': {
				'border': '0px solid black'
			},
			'align': 'left'
		})
		
		this.addLine();
		
		this.generalLayer.injectInside(this.injectObject)
		
		d = new Element('div', {
			'styles': {
				'text-align': 'center',
				'margin-top': 10,
				'border': '0px solid red',
				'width': 400
			},
			'align': 'right'
		})
		d.injectInside(this.injectObject)
		
		dl = new Element('div', {
			'styles': {
				'text-align': 'left',
				'border': '0px solid red',
				'float': 'left'
			},
			'align': 'left'
		})
		dl.injectInside(d)
		
		dr = new Element('div', {
			'styles': {
				'text-align': 'right',
				'border': '0px solid red',
				'float': 'right'
			},
			'align': 'right'
		})
		dr.injectInside(d)
		
		this.AddButton = new Element('INPUT', {
			'styles': {
				'width': 90,
				'margin-left': 10
			},
			'ATFID': this.id,
			'lineID': n,
			'title': 'Добавить',
			'type': 'button',
			'value': 'Добавить',
			'events': {
				'click': function() {
					n = this.getProperty('lineID')
					IndexForms[this.getProperty('ATFID')].addLine();
				}
			}
		}) 
		this.AddButton.injectInside(dl)
		
		this.lines[n].RemoveButton = new Element('INPUT', {
			'styles': {
				'width': 90,
				'margin-left': 20,
				'margin-right': 20
			},
			'ATFID': this.id,
			'lineID': n,
			'title': 'Удалить',
			'type': 'button',
			'value': 'Удалить',
			'events': {
				'click': function() {
					n = this.getProperty('lineID')
					IndexForms[this.getProperty('ATFID')].removeLine(n);
				}
			}
		}) 
		this.lines[n].RemoveButton.injectInside(dl)
		
		this.submitButton = new Element('INPUT', {
			'style': {
				'margin-left': 20
			},
			'type': 'button',
			'ATFID': this.id,
			'value': 'Отправить заказ',
			'events': {
				'click': function() {
					IndexForms[this.getProperty('ATFID')].sendData();
				}
			}
		})
		this.submitButton.injectInside(dr)
		
		this.infoDiv = $('IndexCInfoDiv')
		
		this.infoDiv.setHTML('<font color=red>*</font> ФИО (Компания): ')
		
		this.CompanyNameInput = new Element('INPUT', {
			styles: {
				
			},
			type: 'text'
		})
		this.CompanyNameInput.injectInside(this.infoDiv)
		
		br = new Element('br', {})
		br.injectInside(this.infoDiv)
		
		span = new Element('SPAN', {})
		span.setHTML('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=red>*</font> Телефон: ')
		span.injectInside(this.infoDiv)
		
		this.PhoneInput = new Element('INPUT', {
			styles: {
				
			},
			type: 'text'
		})
		this.PhoneInput.injectInside(this.infoDiv)
		
		br = new Element('br', {})
		br.injectInside(this.infoDiv)
		
		span = new Element('SPAN', {})
		span.setHTML('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E-mail: ')
		span.injectInside(this.infoDiv)
		
		this.EmailInput = new Element('INPUT', {
			styles: {
				marginLeft: 2
			},
			type: 'text'
		})
		this.EmailInput.injectInside(this.infoDiv)
		
	},
	
	addLine: function() {
		this.numLines++;
		
		separator = new Element('div', {
			'styles': {
				'width': 10,
				'height': 10
			}
		})
		
		n = this.numLines;
		
		this.lines[n] = {}
		
		this.lines[n].div = new Element('div', {
			'styles': {
				'padding': 5
			}
		}) 
		this.lines[n].div.injectInside(this.generalLayer)
		
		this.lines[n].Select1 = new Element('SELECT', {
			'styles': {
				'margin-left': 3,
				'margin-right': 3,
				'width': 160,
				'font-size': 12
			},
			'ATFID': this.id,
			'lineID': n,
			'events': {
				'click': function() {
					n = this.getProperty('lineID')
					IndexForms[this.getProperty('ATFID')].update2Select(n);
					IndexForms[this.getProperty('ATFID')].update3Select(n);
				}
			}
		})
		this.lines[n].Select1.injectInside(this.lines[n].div)
		
		br = new Element('br', {})
		br.injectInside(this.lines[n].div)
		
		//separator.clone().injectInside(this.lines[n].div)
		
		this.lines[n].Select2 = new Element('SELECT', {
			'styles': {
				'margin-left': 3,
				'margin-right': 3,
				'width': 245,
				'font-size': 12
			},
			'ATFID': this.id,
			'lineID': n,
			'events': {
				'click': function() {
					n = this.getProperty('lineID')
					IndexForms[this.getProperty('ATFID')].update3Select(n);
				}
			}
		})
		this.lines[n].Select2.injectInside(this.lines[n].div)
		
		//separator.clone().injectInside(this.lines[n].div)
		
		this.lines[n].Select3 = new Element('SELECT', {
			'styles': {
				'margin-left': 3,
				'margin-right': 3,
				'width': 100,
				'font-size': 12
			}
		})
		this.lines[n].Select3.injectInside(this.lines[n].div)
		
		//separator.clone().injectInside(this.lines[n].div)
		
		this.lines[n].Edit = new Element('INPUT', {
			'styles': {
				'margin-left': 3,
				'margin-right': 3,
				'width': 30,
				'font-size': 14,
				'color': '#999999'
			},
			'type': 'text',
			'value': 0,
			'events': {
				'focus': function() {
					if (this.getValue().toString() == '0') {
						this.setStyle('color', '#000000')
						this.setProperty('value', '')
					}
				},
				'blur': function() {
					if (this.getValue().toString() == '') {
						this.setStyle('color', '#999999')
						this.setProperty('value', '0')
					}
				}
			}
		}) 
		this.lines[n].Edit.injectInside(this.lines[n].div)
		
		//separator.clone().injectInside(this.lines[n].div)
		

		
		//separator.clone().injectInside(this.lines[n].div)
		
		
		this.setOptions(this.data, this.lines[n].Select1)
		this.setOptions(this.data[this.getData(n, 1)].data, this.lines[n].Select2)
		this.setOptions(this.data[this.getData(n, 1)].data[this.getData(n, 2)].data, this.lines[n].Select3)
		
		for (i in this.lines) {
			if (i<this.numLines) {
				this.lines[i].Select1.setProperty('disabled', 'disabled')
				this.lines[i].Select2.setProperty('disabled', 'disabled')
				this.lines[i].Select3.setProperty('disabled', 'disabled')
				this.lines[i].Edit.setProperty('disabled', 'disabled')
			}
		}
	},
	
	removeLine: function(n) {
		n = this.numLines
		if (this.numLines>1) {
			if (this.lines[n]) {
				this.lines[n].div.remove();
				this.lines[n] = null
				this.numLines--
				this.lines[this.numLines].Select1.setProperty('disabled', '')
				this.lines[this.numLines].Select2.setProperty('disabled', '')
				this.lines[this.numLines].Select3.setProperty('disabled', '')
				this.lines[this.numLines].Edit.setProperty('disabled', '')
			}
		}
	},
	
	update2Select: function(n) {
		this.setOptions(this.data[this.getData(n, 1)].data, this.lines[n].Select2)
	},
	
	update3Select: function(n) {
		opr = false
		if (this.data[this.getData(n, 1)].data)
		if (this.data[this.getData(n, 1)].data[this.getData(n, 2)]) {
			this.setOptions(this.data[this.getData(n, 1)].data[this.getData(n, 2)].data, this.lines[n].Select3)
			opr = true
		}
		if (!opr) {
			this.setOptions(false, this.lines[n].Select3)
		}
	},
	
	setOptions: function(data, SelObj) {
		SelObj.setHTML('');
		if (data) {
			for (i in data) {
				if ((i != '33333')&&(data[i].name)) {
					o = new Element('OPTION', {
						'value': i
					})
					o.setText(data[i].name)
					o.injectInside(SelObj)
				}
			}
		} else {
			
		}
	},
	
	getData: function(line, sel) {
		if (this.lines[line]) {
			return this.lines[line]['Select'+sel].getValue();
		}
	},
	
	sendData: function() {
		get = ''
		Cookie.set('Phone', escape(this.PhoneInput.getValue()));
		Cookie.set('Company', escape(this.CompanyNameInput.getValue()));
		Cookie.set('Email', escape(this.EmailInput.getValue()));
		this.lines.each(function(item, index){
			if (item)
			if ((item.Select1.getValue())&&(item.Select2.getValue())&&(item.Select3.getValue())&&(item.Edit.getValue().toInt()>0))
			get += 'DATA'+index+'='+item.Select1.getValue()+'|'+item.Select2.getValue()+'|'+item.Select3.getValue()+'|'+item.Edit.getValue()+'&'
		});
		if (get != '') {
			
			if (this.CompanyNameInput.getValue().length < 2) {
				alert('Поле "ФИО (Компания)" обязательно для заполнения!')
				this.CompanyNameInput.focus()
				return;
			}
			
			if (this.PhoneInput.getValue().length < 5) {
				alert('Поле "Телефон" обязательно для заполнения!')
				this.PhoneInput.focus();
				return;
			}
			
			//alert(get);
			if (window.ie) {
				window.location = 'zakaz.php?zakaz=send&'+get
			} else {
				this.submitForm = new Element('FORM', {
					'ACTION': 'zakaz.php?zakaz=send&'+get,
					'METHOD': 'POST'
				})
				this.submitForm.injectInside(this.injectObject)
				this.submitForm.submit();
			}
		} else {
			alert('Ничего не выбрано');
		}
	}
	
	
	
	
	
	
	
}
