function $n(i){return document.all?document.all[i]:document.getElementById(i)}

function centerDialogWindow(elem) { 
	elem.style.visibility = 'hidden'; 
	elem.style.display = 'block'; 
	document.getElementById('mail').style.display = 'block'; 
	document.getElementById('mess').style.display = 'none'; 
	var block = elem.childNodes[1]; 
	elem.childNodes[1].style.display = 'block';
	var width, height; width = block.offsetWidth; height = block.offsetHeight; block.style.margin = '-'+height/2+'px 0 0 -'+width/2+'px'; elem.style.visibility = 'visible'; 
	return {height: height, width: width}; 
}

function getWindow() {
	document.getElementById('alert').style.display='block';
	centerDialogWindow(document.getElementById('alert')); 
	document.getElementById('t').value=document.getElementById('m').value='';
}

function makeRequestObject() {
	var http_request = false;
	if (window.XMLHttpRequest) { 
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	return http_request;
}

function winClose() {
	document.getElementById('alert').style.display='none';
}

function checkField() {
	(document.getElementById('name').value!=''&&document.getElementById('org').value!=''&&document.getElementById('telephone').value!='') ? document.getElementById('but2').className+=' act' : document.getElementById('but2').className='button';
}

function getRequestBody(oForm) {
	var aParams = new Array();
	for (var i=0; i<oForm.elements.length; i++) {
		var sParam = encodeURIComponent(oForm.elements[i].name);
		sParam += '=';
		sParam += encodeURIComponent(oForm.elements[i].value);
		aParams.push(sParam);
	}
	return aParams.join('&');
}

function sendMail() {
	var oForm = document.getElementById('sys_mail_form');
	var sBody = getRequestBody(oForm);
	var oXmlHttp = makeRequestObject();
	oXmlHttp.open("POST", oForm.action, true);
	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		oXmlHttp.onreadystatechange = function () {
		if (oXmlHttp.readyState == 4) {
			if (oXmlHttp.status == 200) {
				document.getElementById('mail').style.display = 'none'; 
				document.getElementById('mess').style.display = 'block';
			} else {
				alert("Обнаружена ошибка: " + oXmlHttp.statusText);
			}
		}
	}
	oXmlHttp.send(sBody);
	return false;
}

var links = {
	getCat: '/cgi-bin/bin/public/select.cgi?do=get_cat',
	getSubcat: '/cgi-bin/bin/public/select.cgi?do=get_field&id=<%id%>',
	getQuestion: '/cgi-bin/bin/public/select.cgi?do=get_qw&id=<%id%>',
	getSystems: '/cgi-bin/bin/public/select.cgi?do=count&fields_id=',
	getList: '/cgi-bin/bin/public/select.cgi?do=select&fields_id=<%fid%>'
}
function centerDialogWindow(elem) { 
	elem.style.visibility = 'hidden'; 
	elem.style.display = 'block'; 
	var block = elem; 
	var width, height; 
	if (!document.all) {
		width = block.offsetWidth; 
		height = block.offsetHeight; 
		block.style.margin = '-'+height/2+'px 0 0 -'+width/2+'px'; 
	}
	elem.style.visibility = 'visible'; 
	return {height: height, width: width}; 
}
function createHTML(tagname, JSON) {
	var e;
	if (arguments.length >= 2) {
		if (tagname) {
			if (typeof tagname == 'string') {
				e=document.createElement(tagname.toUpperCase());
			} else if (tagname instanceof Object) {
				e = tagname;
			} else e = document.createDocumentFragment();
		} else {
			e = document.createDocumentFragment();
		}
		if (JSON instanceof Object) {
			if (JSON.length) {
				for(var i = 0; i < JSON.length; i++) {
					if (JSON[i] && typeof JSON[i] == 'object' && JSON[i].tag) {
						if (document.all && JSON[i].tag.toUpperCase() == 'INPUT') {
							var tag = createNamedElement('INPUT', JSON[i].attributes.name);
						} else {
							var tag = document.createElement(JSON[i].tag.toUpperCase());
						}
						if (JSON[i].attributes) {
							for (var name in JSON[i].attributes) {
								if (name=='classname'||name=='className') {
									tag.className = JSON[i].attributes[name];
								} else {
									if (!document.all && (name != 'type') || name != 'name') tag.setAttribute(name, JSON[i].attributes[name]);
								}
							}
						}
						if (JSON[i].tag.toUpperCase() != 'INPUT') tag.appendChild(createHTML(null, JSON[i].children));
						e.appendChild(tag);
					}
				}
			} else {
				var tag = document.createElement(JSON.tag.toUpperCase());
				if (JSON.attributes) for (var name in JSON.attributes) tag.setAttribute(name, JSON.attributes[name]);
				if (JSON.tag.toUpperCase() != 'INPUT') tag.appendChild(createHTML(null, JSON.children));
				e.appendChild(tag);
			}
		} else {
			try {
				e.appendChild(document.createTextNode(JSON));
			} catch(err) {
			}
		}
	}
	return e;
}

function createXMLHttp() {
	if (typeof XMLHttpRequest != "undefined") {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var aVersions = [ "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ];
		for (var i = 0; i < aVersions.length; i++) {
			try {
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			} catch (oError) {
				alert("Объект MSXML не может быть создан!");
        	}
		}
    }
	throw new Error("Невозможно создать объект XMLHttp.")
}

function makeRequest(reqObj, url, functionName) {
    reqObj.onreadystatechange = functionName;
    reqObj.open('GET', url, true);
	reqObj.send(null);
	return false;
}

function createNamedElement(type, name) {
   var element = null;
   // Try the IE way; this fails on standards-compliant browsers
   try {
      element = document.createElement('<'+type+' name="'+name+'">');
   } catch (e) {}
   if (!element || element.nodeName != type.toUpperCase()) {
      // Non-IE browser; use canonical method to create named element
      element = document.createElement(type);
      element.setAttribute('name', name);
   }
   return element;
}

function $n(id) { return document.getElementById(id); }

function showSystemWin() {
	$n('cont_stage1').style.display = 'block';
	$n('cont_stage2').style.display = 'none';
	$n('category').value = $n('subcategory').value = '0';
	$n('but_next').disabled = true;
	var xmlHttp = createXMLHttp();
	var url = links.getCat;
	makeRequest(xmlHttp, url, function () { makeCategory(xmlHttp); });
}

function makeCategory(obj) {
	if (obj.readyState == 4) {
		if (obj.status == 200) {
			response = obj.responseText;
			var JSON = eval("("+response+")");
			var oSelect = createHTML('select', JSON);
			oSelect.id = 'category';
			(document.all) ? oSelect.attachEvent('onchange', function() {  getSubcategory(); }) : oSelect.setAttribute('onchange', 'getSubcategory(this)'); 
			$n('category').parentNode.replaceChild(oSelect, $n('category'));
			$n('subcategory').disabled = ($n('category').value!='0') ? '' : 'disabled'; 
			$n('s-win').style.display = 'block';
		} else {
			alert("Ошибка: " + obj.statusText);
		}
	}
}

function getSubcategory(e) {
	e = (e) ? e : event.srcElement;
	var xmlHttp = createXMLHttp();
	var url = links.getSubcat.replace('<%id%>', e.value);
	url += ('&random='+Math.round(Math.random()*1000+1));
	makeRequest(xmlHttp, url, function () { makeSubcategory(xmlHttp); });
}

function makeSubcategory(obj) {
		if (obj.readyState == 4) {
			if (obj.status == 200) {
				response = obj.responseText;
				var JSON = eval("("+response+")");
				var oSelect = createHTML('select', JSON);
				oSelect.id = 'subcategory';
				oSelect.onchange = function () {
					$n('but_next').disabled = (($n('category').value!='0') && ($n('subcategory').value!='0')) ? false : true;
				}
				$n('subcategory').parentNode.replaceChild(oSelect, $n('subcategory'));
				$n('but_next').disabled = (($n('category').value!='0') && ($n('subcategory').value!='0')) ? false : true;
			} else {
				alert("Ошибка: " + obj.statusText);
			}
		}
	}
	
var iSubCat = null;
function getQuestion(e) {
	$n('but_next').disabled = true;
	e = (e) ? e : event.srcElement;
	$n('subcat').value = iSubCat = ($n('subcategory').value - 0);
	var xmlHttp = createXMLHttp();
	var url = links.getQuestion.replace('<%id%>', $n('subcategory').value);
	url += ('&random='+Math.round(Math.random()*1000+1));
	makeRequest(xmlHttp, url, function () { drawQuestion(xmlHttp); });
}

function drawQuestion(obj) {
	if (obj.readyState == 4) {
		if (obj.status == 200) {
			response = obj.responseText;
			$n('but_next').disabled = false;
			try {
				var JSON = eval("("+response+")");
				$n('sys_count').innerHTML = JSON.count;
				var oTbody = createHTML('tbody', JSON.html);
				oTbody.id = 'tb_quest';
				$n('tb_quest').parentNode.replaceChild(oTbody, $n('tb_quest'));
				$n('cont_stage1').style.display = 'none';
				$n('cont_stage2').style.display = 'block';
				if (document.all) {
					var inps = $n('tb_quest').getElementsByTagName('INPUT');
					for (var i = 0; i < inps.length; i++) { if(inps[i].getAttribute('type') == 'radio' && inps[i].id.match('No') == 'No') inps[i].checked=true; }
				}
				$n('questNo2').checked = '';
				$n('questYes2').checked = 'checked';
				$n('hid2').value = '1';
				if (document.all) $n('sys_table').attachEvent('onclick', function() { sendAnswer(); });
			} catch (e) {
				alert("Bad JSON");
			}
		} else {
			alert("Ошибка: " + obj.statusText);
		}
	}
}

function sendAnswer(e) {
	e = (e) ? e.target : event.srcElement;
	if (e.name.replace('inp', '') == '1') {
		if (e.id.toLowerCase().match('yes') == 'yes') {
			$n('questYes4').disabled = $n('questNo4').disabled = 'disabled';
			$n('hid4').value = '0';
			$n('questYes4').checked = false;
			$n('questNo4').checked = true;
		} else if (!$n('questYes5').checked) {
			$n('questYes4').disabled = $n('questNo4').disabled = '';
		}
	}
	if (e.name.replace('inp', '') == '4') {
		if (e.id.toLowerCase().match('yes') == 'yes') {
			$n('questYes1').disabled = $n('questNo1').disabled = $n('questYes5').disabled = $n('questNo5').disabled = 'disabled';
			$n('hid1').value = $n('hid5').value = '0';
			$n('questYes1').checked = $n('questYes5').checked = false;
			$n('questNo1').checked = $n('questNo5').checked = true;
		} else {
			$n('questYes1').disabled = $n('questNo1').disabled = $n('questYes5').disabled = $n('questNo5').disabled = '';
		}
	}
	if (e.name.replace('inp', '') == '5') {
		if (e.id.toLowerCase().match('yes') == 'yes') {
			$n('questYes4').disabled = $n('questNo4').disabled = 'disabled';
			$n('hid4').value = '0';
			$n('questYes4').checked = false;
			$n('questNo4').checked = true;
		} else if (!$n('questYes1').checked) {
			$n('questYes4').disabled = $n('questNo4').disabled = '';
		}
	}
	$n('hid'+e.name.replace('inp', '')).value = (e.id.toLowerCase().match('no') == 'no') ? 0 : 1;
	var xmlHttp = createXMLHttp();
	var url = links.getSystems + iSubCat;
	var inputs = $n('sys_table').getElementsByTagName('INPUT');
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('type') == 'hidden') {
			url += ('&' + inputs[i].name.replace('inp', '') + '=' + inputs[i].value);
		}		
	}
	makeRequest(xmlHttp, url, function () { getCountSystem(xmlHttp); });
}

function getCountSystem(obj) {
	if (obj.readyState == 4) {
		if (obj.status == 200) {
			response = obj.responseText;
			var JSON = eval("("+response+")");
			$n('sys_count').innerHTML = JSON.count;
		} else {
			alert("Ошибка: " + obj.statusText);
		}
	}
}

var oBigPhoto = {
	width: '318px',
	height: '243px'
};
var oSmallPhoto = {
	width: '52px',
	height: '40px'
};

function photoResize(e) {
	var nBigWidth = 318;
	var bBig = ((e.style.width.replace('px', '') - 0) == nBigWidth) ? true : false;
	(bBig) ? doAllSmall() : doBig(e);
}

function doBig(img) {
	doAllSmall();
	img.style.width = oBigPhoto.width;
	img.style.height = oBigPhoto.height;
	notOpacity(img.parentNode);
}

function doSmall(img) {
	img.style.width = oSmallPhoto.width;
	img.style.height = oSmallPhoto.height;
}

function doAllSmall() {
	var photos = document.getElementById('photo').getElementsByTagName('IMG');
	for (var i = 0; i < photos.length; i++) doSmall(photos[i]);
}

function photoInit() {
	var photos = document.getElementById('photo');
	photos.onclick = function (e) {
		e = (e) ? e.target : event.srcElement;
		if (e.tagName && e.tagName.toLowerCase() == 'img') photoResize(e);
	}
}

StroyM = {
	seml1: 'info@stroyhim.com',
	seml2: 'marketing@ict.to'
};

function setCoor(e) {
	x=e.clientX;
	y=e.clientY;
	if (box) { 
		var dy, dx;
		var d = (document.documentElement.scrollTop == 0) ? document.body : document.documentElement;
		/*dy = (document.all&&!window.XMLHttpRequest) ? document.body.scrollTop : document.documentElement.scrollTop;
		dx = (document.all&&!window.XMLHttpRequest) ? document.body.scrollLeft : document.documentElement.scrollLeft;*/
		dy = d.scrollTop;
		dx = d.scrollLeft;
		box.style.top = y + 1 + dy +'px';
 		box.style.left = x + 1 + dx +'px';
	}
}

function ral(e) {
	var obj = (e) ? e.target : event.srcElement;
 	if (box) { 
 		clearTimeout(t);
 		if (obj.tagName=='LI') {
			box.style.display = 'block';
			box.firstChild.innerHTML = 'RAL: '+obj.className; 
 		}
 	}
}
function hideBox() {
	t = setTimeout("document.getElementById('boxRAL').style.display='none'", tt);
}
var t, box;
var tt = 200;

var cont = {
	cont1: 'marketing/#/stroyhim.com',
	cont2: 'info/#/stroyhim.com',
	cont3: 'borkrostov/#/yandex.ru',
	cont4: 'ict38/#/irk.ru',
	cont5: 'liebreich/#/mail.ru'	
}

window.onload = function () {
	if ($n('photo')) {
		document.onclick = function(e) {
			e = (e) ? e.target : event.srcElement;
			if (!e.className || e.className != 'pg') doAllSmall();
		}
		photoInit();
	}
	if ($n('ral') && $n('boxRAL')) {
		$n('ral').onmouseover = ral;
		$n('ral').onmouseout = hideBox;
		box = $n('boxRAL');
		document.onmousemove = function (e) {
			e=e||window.event;
			setCoor(e);
		}
	}
	var aM = $n('info').getElementsByTagName('IMG');
	for (var i = 0; i < aM.length; i++) {
		if (aM[i].className && aM[i].className.indexOf('seml') != -1) {
			var link = document.createElement('A');
			link.href = 'mailto:' + StroyM[aM[i].getAttribute('rel')];
			link.className = 'mail';
			link.appendChild(document.createTextNode(StroyM[aM[i].getAttribute('rel')]));
			aM[i].parentNode.replaceChild(link, aM[i]);
		}
	}
	
	if ($n('cont')) {
		var aObj = $n('cont').getElementsByTagName('I');
		for (var i = aObj.length; i > 0; i--) {
			var className = aObj[i-1].className;
			if (className && className.match('cont')) {
				var oLink = document.createElement('A');
				var address = cont[className].replace('/#/', '@');
				oLink.href = 'mailto:' + address;
				oLink.appendChild(document.createTextNode(address));
				aObj[i-1].parentNode.replaceChild(oLink, aObj[i-1]);
			}
		}
	}
	
	if ($n('show-map')) {
		$n('show-map').onclick = function () {
			$n('ict-map').className = ($n('ict-map').className.match('hidden')) ? '' : 'hidden';
		}
	}
	if ($n('show-map-1')) {
		$n('show-map-1').onclick = function () {
			$n('ict-map-1').className = ($n('ict-map-1').className.match('hidden')) ? '' : 'hidden';
		}
	}
}
