//************************** Калькулятор ********************************//
function getCity(value) {
	var NiFormat = getElem('niformat');
	var item = getElem('item');
	var Tirag = getElem('Tirag');
	//var total = getElem('total');
	var price = getElem('price');
	var margins = getElem('margins');
	var dop_info_city = getElem('dop_info_city');
	var dop_info = getElem('dop_info');
	var tip_item = getElem('tip_item');
	var format_item = getElem('format_item');
	var form_tirage = getElem('form_tirage');
	var button = getElem('button');
	
	if(NiFormat.innerHTML) NiFormat.innerHTML = '';
	if(item.innerHTML) item.innerHTML = '';
	//if(Tirag.innerHTML) Tirag.innerHTML = '';
	if(price.innerHTML) price.innerHTML = '';
	//if(total.innerHTML) total.innerHTML = '';
	if(margins.innerHTML) margins.innerHTML ='';
	if(dop_info.innerHTML) dop_info.innerHTML = '';
	if(dop_info_city.innerHTML) dop_info.innerHTML = '';
	tip_item.innerHTML = '';
	format_item.innerHTML = '';
	form_tirage.value = '';
	button.innerHTML = '';
	
	var req = new Subsys_JsHttpRequest_Js();
	var select = '';
	var content;

	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			content = req.responseJS.format;
			if(content){
				var option = document.createElement('OPTION');
				NiFormat.appendChild(option);
				option.innerHTML = 'Выберите вид услуг';
				
				for(var i = 0; i < content.length; i++){
					var option = document.createElement('OPTION');
					NiFormat.appendChild(option);
					option.value = content[i]['kind'];
					option.innerHTML = content[i]['name'];
				}
			}
		}
		dop_info_city.innerHTML = '<br />'+req.responseJS.dop_info;
	}
	req.caching = false;
	req.open('POST', base_url + 'calculator/city'+value+'/', true);
	req.send({format:value});
}

function getFormat(value, html) {
	var Format = getElem('item');
	var Tirag = getElem('Tirag');
	//var total = getElem('total');
	var price = getElem('price');
	var margins = getElem('margins');
	var dop_info = getElem('dop_info');
	var tip_item = getElem('tip_item');
	var format_item = getElem('format_item');
	var form_tirage = getElem('form_tirage');
	var button = getElem('button');

	if(Format.innerHTML) Format.innerHTML = '';
	//if(Tirag.innerHTML) Tirag.innerHTML = '';
	if(price.innerHTML) price.innerHTML = '';
	//if(total.innerHTML) total.innerHTML = '';
	if(margins.innerHTML) margins.innerHTML ='';
	if(dop_info.innerHTML) dop_info.innerHTML = '';
	tip_item.innerHTML = html;
	format_item.innerHTML = '';
	form_tirage.value = '';
	button.innerHTML = '';

	var req = new Subsys_JsHttpRequest_Js();
	var select;
	var content;
	var flag;
	var margin;

	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if(req.responseJS.format){

				if(req.responseJS.margins == 1) margin = true;
				else margin = false;
				
				content = req.responseJS.format;
				
				var option = document.createElement('OPTION');
				Format.appendChild(option);
				option.innerHTML = 'Выберите формат';
				
				for(var i = 0; i <= content.length-1; i++){
					if(content[i]['type'] != ''){
						var option = document.createElement('OPTION');
						Format.appendChild(option);
						option.value = content[i]['id'];
						option.innerHTML = content[i]['type'];
					}
					else	
						flag = content[i]['id'];
				}
				
				if(flag != null){
					var option = document.createElement('OPTION');
					Format.appendChild(option);
					option.innerHTML = 'Формат непредусмотрен';

					$('item').removeChild($('item').options[0]);
					getTirag(flag, false, margin);
				}
			}
			dop_info.innerHTML = req.responseJS.dop_inf;
		}
	}
	req.caching = false;
	req.open('POST', base_url + 'calculator/format'+value+'/', true);
	req.send({format:value});
}

function zero(index, value, margin, html){
	var Tirag = getElem('Tirag');
	var format_item = getElem('format_item');
	if (index == 0) Tirag.innerHTML = '';
	if (index > 0) getTirag(value, true, margin);
	format_item.innerHTML = html;
}

function getTirag(id_doc, restriction, margin) {
	var Format = getElem('Tirag');
	var margins = getElem('margins');
	//var total = getElem('total');
	var price = getElem('price');
	var dop_info = getElem('dop_info');
	var form_tirage = getElem('form_tirage');
	
	form_tirage.value = '';

	if(margin == true)
	{
		margins.innerHTML = '<table><tr><td>20% выборочная доставка </td><td><input type="checkbox" onclick="if (this.checked == true) Margins('+0.2+','+1+','+1+'); else Margins('+0.2+','+0+','+1+');" ></td></tr> <tr><td>30% политическая реклама </td><td><input type="checkbox" onclick="if (this.checked == true) Margins('+0.3+','+1+','+2+'); else  Margins('+0.3+','+0+','+2+');"></td></tr> <tr><td>30% иногородний заказчик </td><td><input type="checkbox" onclick="if (this.checked == true) Margins('+0.3+','+1+','+3+'); else  Margins('+0.3+','+0+','+3+');"></td></tr></table> ';
	}

	Format.innerHTML = '<input type="text" value ="Введите тираж" id = "form_tirage" onfocus="if(this.value == \'Введите тираж\')this.value = \'\';" onkeyup="Calculate(getElem(\'form_tirage\').value, '+id_doc+', '+restriction+');" />';
}

function Calculate(tirag, doc, restriction)
{
	if(isFinite(doc)){
		tirag_global = tirag;
		restriction_global = restriction;
		doc_global = doc;
		
		var messege;
		var tirag_field = getElem('Tirag');
		var price = getElem('price');
		var dop_info = getElem('dop_info');
		//var total = getElem('total');
		var in_form_iddoc = getElem('iddoc');
		var in_form_total_price = getElem('total_price');
		var in_form_type_persent = getElem('type_persent');
		var in_form_tirag = getElem('eeee');
		var button = getElem('button');
	
		//total.innerHTML = 'Итого:';
		
		in_form_tirag.value = tirag;
		
		var req = new Subsys_JsHttpRequest_Js();
		req.onreadystatechange = function() {
			if (req.readyState == 4) {
				messege = is_valid(tirag);
				
				if(messege){
					price.innerHTML = messege;
				}
				else{
					if( (parseInt(tirag) > parseInt(req.responseJS.up_to)) & (restriction === true) ){
	
						if(!persent){ 
								var price_total = new Number(req.responseJS.up_to*req.responseJS.format);
								var price_total_nds = new Number((price_total*0.18)+price_total);
							}
							else{
								var price_total = new Number(  ((req.responseJS.up_to*req.responseJS.format)*persent)+ req.responseJS.up_to*req.responseJS.format  );
								var price_total_nds = new Number((price_total*0.18)+price_total);
							}
	
						price.innerHTML = 'Доставка в этом городе оcуществляется до '+req.responseJS.up_to+' экземпляров.<br /><br /> Итого: <br />' + price_total_nds.toFixed(2) + ' рублей (с НДС 18%) <br />'+ price_total.toFixed(2) + ' рублей (без НДС)<br /><br />';
					}
					else{
						if( parseInt(tirag) < parseInt(req.responseJS.from) ){
							price.innerHTML = 'Доставка в этом городе оcуществляется от ' + req.responseJS.from + ' экземпляров.<br /><br />';
	
							button.innerHTML = '';
						}
						else{
	
							button.innerHTML = '<input type="image" src="'+tpl_url+'img/buttons/application.gif" />';
	
							if(!persent){ 
								var price_total = new Number(req.responseJS.format*tirag);
								var price_total_nds = new Number((price_total*0.18)+price_total);
							}
							else{
								var price_total = new Number(  ((req.responseJS.format*tirag)*persent)  + req.responseJS.format*tirag  );
								var price_total_nds = new Number((price_total*0.18)+price_total);
							}
							
							price.innerHTML = 'Итого: <br />' + price_total_nds.toFixed(2) +' рублей (с НДС 18%) <br />'  + price_total.toFixed(2) + ' рублей (без НДС)<br /><br />';
						}
					}
				}
	
				in_form_iddoc.value = doc;
				in_form_total_price.value = price_total;
				in_form_type_persent.value = type_persent;
				
				
			}
		}
		req.caching = false;
		req.open('POST', base_url + 'calculator/price'+doc+'/?tirage='+tirag, true);
		req.send({format:doc});
	}
}

function is_valid(tirag)
{
	var mes;
	if(!isFinite(tirag)) mes = 'Тираж введен некорректно';
	if(!tirag)	mes = 'Тираж введен некорректно';
	if(tirag <= 0)	mes = 'Тираж введен некорректно';
	if(tirag%1 != 0)	mes = 'Тираж введен некорректно';
	return mes;
}

function Margins(persent_item, what, type)
{
	
	if(what == 1){ 
		if(isNaN(persent)) persent = persent_item;
		else persent = persent + persent_item;
		if(isNaN(type_persent)) type_persent = type;
		else type_persent = type_persent + type;
	}
	if(what == 0) {
		persent = persent - persent_item;
		type_persent = type_persent - type;
	}
	
	if(tirag_global) Calculate(tirag_global, doc_global, restriction_global);
}



//************************** Калькулятор ********************************//


function Show(fname, width, height) {
	if (screen.height<=550 && screen.width<=700) { 
		document.location = fname;
	} else {
		if(!height) height = 800;
		if(!width) width = 600;		
		newHeight = height + 20;
		PopupWin = window.open(fname, "_blank", "height="+newHeight+",width="+width+",menubar=no,status=no,titlebar=no,toolbar=no,location=no,resizable=no,scrollbars=yes"); }
	return false;
}

function checkStrSearch(str) {
   if((str.value.length) < 3) {
        alert('Строка поиска должна быть не менее 3 символов');
        return false;
    } else return true;
}

function checkFForm(){
	var elem = getElem('login');
	if (elem.value.length < 4){
		alert('Логин/e-mail должен быть не меньше 3 символов');
		return false;
	}
	else return true;
}

function checkSubscrForm(email) {
	if (checkEmail(email.value)) return true;
	else {
		alert('Вы ввели некорректный E-mail.');
		return false;
	}
}

function checkRequestForm(str) {
	if (str.value.length > 0) return true;
	else {
		alert('Поле "Общая стоимость" обязательно для заполнения');
		return false;
	}
}

function checkForm() {
	input = document.getElementById('str');
	input.value = trim(input.value);

	if(input.value == default_value) input.value = ''; 
	fill = checkStrSearch(input.value);
	if(!fill && input.value == '') {
		input.value = default_value;
		return false;
	} else if(input.value != '' && !fill) return false;

};

function checkFeedbackForm() {
	var required = {
		"name"		:	"Вы не ввели Ваше ФИО",
		"org"		:	"Вы не ввели оганизацию",
		"email"		:	"Не введен или введен некорректный e-mail",
		"msg"		:	"Вы не ввели сообщение"
	};

	for (i in required) {
		var el = document.getElementById(i);
		if(el.id == 'email' && el.value && !checkEmail(el.value))
		{
			alert(required['email']);
			el.focus();
			return false;
		};
		if (!el.value) {
			alert(required[i]);
			el.focus();
			return false;
		}
	}
	return true;
}

function checkFeedbackFormFeedback() {
	var required = {
		"name"		:	"Вы не ввели Ваше ФИО",
		"email"		:	"Не введен или введен некорректный e-mail",
		"msg"		:	"Вы не ввели сообщение"
	};

	for (i in required) {
		var el = document.getElementById(i);
		if(el.id == 'email' && el.value && !checkEmail(el.value))
		{
			alert(required['email']);
			el.focus();
			return false;
		};
		if (!el.value) {
			alert(required[i]);
			el.focus();
			return false;
		}
	}
	return true;
}

function auto_form_check(required) {
	if(!required) return true;
	for (var i in required) {
		var el = document.getElementById(i);
		if (!el.value) {
			alert(required[i]);
			el.focus();
			return false;
		}
	}
	return true;
}

function checkEmail(email) {
	if(!email) return email;
	if(!email.match(/^[\w\.\-]+@[\w\.\-]+\.[a-zA-Z]{2,}$/i, "")) return false;
	return true;
}

function checkUrl(url) {
	pattern = /https?:\/\/(?:[-_A-Z0-9]*)\.[A-Z0-9]{2,5}(?:\/[-A-Z0-9+&@#/%=~_|]*)?/i;
	return url.match(pattern);
}

function showHiddenElem(id) {
	//alert(id);
	if(!document.getElementById(id)) {
		return false;
	}
	elem = document.getElementById(id);
	if(elem.style.display == 'block') elem.style.display = 'none';
	else elem.style.display = 'block';
}

function getElem(id) {
	return document.getElementById(id);
}

function isInt(num, chara)
{
	if(((num >= 48) && (num <= 57)) || num == 37 || num == 8)
	{
		event.keyCode = num;
		return event.keyCode;
	}
	if(((chara >= 48) && (chara <= 57)) || chara == 37 || chara == 8)
	{
		event.charCode = chara;
		return event.charCode;
	}
	else
	{
		return false;
	}
}

function trim(str) {
	while (str.substr(0, 1) == ' ') {str = str.substr(1);};
	while (str.substr(str.length - 1, 1) == ' ') {str = str.substr(0, str.length - 1);};
	return str;
}

function setHttp(link) {
	if(link && link.substr(0, 7) != 'http://') link = 'http://' + link;
	return link;
}

function dump(elem) {
	var str="";
	for(var key in elem) {
		str += key + ": " + elem[key] + "\n<br>";
	}
	document.write(str);
}

function sendFilterForm() {
	var form = document.filter;
	
	var formFields = new Array('country', 'region', 'period', 'count');
	var toAdd = new Array();
	var url = location.href;
	
	for(var key in formFields) {
		var field = formFields[key];
		var elem = eval('form.'+field);
		if(elem.nodeName == 'SELECT') {
			var value = elem.options[elem.selectedIndex].value;
		} else if(elem.nodeName == 'INPUT') var value = elem.value;
		
		var _delimiter = url.indexOf('?') > -1 ? '&' : '?';

		if(url.indexOf(field+'=') == -1) {
			url += _delimiter + field+'='+value;
		} else {
			var RegEx = new RegExp(field+'=[0-9a-z]*', 'i');
			url = url.replace(RegEx, field+'='+value);
		}
	}
	
	location.href = url;
}

function preloadImg(src) {
	if (document.images) {
		var image = new Image();
		image.src = src;
	}
}

if (navigator.appName.toLowerCase()=='opera')
{
	var a = document.createElement('link');
	a.href = 'css/opera.css';
	a.media = 'all';
	a.type = 'text/css';
	a.rel = 'stylesheet';
	document.appendChild(a);
}

/**************** Функции для конкретного проекта ************************/
function topMenu(elem)
{
	var className = elem.className;
	if (className.indexOf('_active') > -1) return;
	if(className.indexOf('_active') > -1) elem.className = className.replace('_active', '');
	else elem.className += '_active';
	currentElem= elem.id.replace('div', '');
	cropImageSrc(elem, (className.indexOf('_active')  > -1 ? 1 : 0));
	contId = "tab" + currentElem;
	contElem = document.getElementById(contId);
	contElem.style.display = 'block';
	for (var i = 1; i <=4; i++)
	{
		if (i!=currentElem)
		{
			contId = "tab" + i;
			contElem = document.getElementById(contId);
			contElem.style.display = 'none';
			j = "div" +i;
			elem = document.getElementById(j);
			if(elem.className.indexOf('_active') > -1) {
				elem.className = className.replace('_active', '');
				img = elem.childNodes[0];
				if ((navigator.appName.toLowerCase()=='opera')||(navigator.appName.toLowerCase()=='netscape')){img = elem.childNodes[1];}
				src = img.src;
				src = src.replace('_active.gif', '.gif');
				img.src = src;
			}
		}
	}
}
	
function cropImageSrc(elem, variant)
{
	img = elem.childNodes[0];
	if ((navigator.appName.toLowerCase()=='opera')||(navigator.appName.toLowerCase()=='netscape')){img = elem.childNodes[1];}
	src = img.src;
	if (variant == 0) {
	new_src = src.replace('.gif', '_active.gif');
	}
	else {
		new_src = src.replace('_active.gif', '.gif');
	}
	img.src = new_src;
	
}
/**************** Конец Функции для конкретного проекта ************************/


var isDOM = document.getElementById //DOM1 browser 
var isO   = isO5 = window.opera && isDOM; //Opera 5+
var isO6  = isO && window.print //Opera 6+
var isO7  = isO && document.readyState //Opera 7+
var isIE  = document.all && document.all.item && !isO //Microsoft Internet Explorer 4+
var isIE5 = isIE && isDOM //MSIE 5+
var isMZ  = isDOM && (navigator.appName=="Netscape")