function HttpRequest(url, post_data, id, event, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) {
	var req = null;
    try {
		req = new XMLHttpRequest();
	} catch(e) {
		req = null;
	} // end try
	if (!req) {
	    try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			req = null;
		} // end try
	} // end if
	if (!req) {
	    try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			req = null;
		} // end try
	} // end if
	if (req) {
		var can_start = true;
		if (can_start) {
			try {
				req.onreadystatechange =
					function () {
						if (req.readyState == 4) {
							if (req.status == 200) {
								if (event) event(req.responseText, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
							} else {
								//alert("There was a problem retrieving the XML data:\r\n" + req.statusText);
								var win = window.open('about:blank', 'error_window');
								win.document.write(req.responseText);
							} // end if
						} // end if
					} // end event
				if (Math.random) url = url + (url.indexOf('?') < 0 ? '?' : '&') + 'random=' + escape(Math.random() * 100000);
				if (post_data) {
					req.open("POST", url, true);
					req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					req.send(post_data);
				} else {
					req.open("GET", url, true);
					req.send("");
				} // end if
			} catch(e) {
			} // end try
		} // end if
	} else {
		alert("XML component not found on your computer.");
	} // end if
} // end function

function XmlRootByText(text) {
	var dom = null;
	try {
		dom = new DOMParser();
		if (dom) dom = dom.parseFromString(text, "text/xml");
		if (dom) dom = dom.documentElement;
	} catch(e) {
		dom = null;
	} // end try
	if (!dom) {
	    try {
			dom = new ActiveXObject("Msxml2.DOMDocument");
			if (!dom.loadXML(text)) dom = null;
			if (dom) dom = dom.firstChild;
		} catch(e) {
			dom = null;
		} // end try
	} // end if
	if (!dom) {
	    try {
			dom = new ActiveXObject("Microsoft.DOMDocument");
			if (!dom.loadXML(text)) dom = null;
			if (dom) dom = dom.firstChild;
		} catch(e) {
			dom = null;
		} // end try
	} // end if
	return dom;
} // end function

function GetXmlNodeValue(node) {
	if ((node) && (node.text)) {
		return node.text;
	} else if ((node) && (node.firstChild) && (node.firstChild.nodeValue)) {
		return node.firstChild.nodeValue;
	} else {
		return "";
	} // end if
} // end function

function GetXmlNodeByTagName(parent, tagName) {
	if ((parent) && (parent.childNodes)) {
		var i;
		for (i = 0; i < parent.childNodes.length; i++) {
			if (parent.childNodes[i].tagName == tagName) return parent.childNodes[i];
		} // end for
	} // end if
	return null;
} // end function

function Subscribe(subscribe_type, email_input_id) {
	var email = document.getElementById(email_input_id).value;
	
	if (!(/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(email)))
	{
	   alert('Ошибка! Не правильный e-mail адрес.');
	   return false;
	}
    var event = 
		function (result) {
			alert(result);
		} // end event
	HttpRequest(site_path + 'subscribe/?subscribe_type=' + subscribe_type + '&email=' + email, null, 'subscribe', event);
	return false;
} // end function

function ViewCountry(country_id)
{
    var country = document.getElementById(country_id);
    var div_city = document.getElementById('div_filter_cities');
    var div_shop = document.getElementById('div_filter_shops');
    var div_content = document.getElementById('AjaxContent');
    var section_name = document.getElementById('section_name_for_ajax').value;
    
    div_city.innerHTML = '';
    div_shop.innerHTML = '';
    
    var event = 
		function (result) {
		    var root = XmlRootByText(result);
			div_city.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'cities'));
			if(section_name != 'discount') {
                div_content.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'content'));
            }
            if(section_name == 'discount' && country.value == '') {
                div_content.innerHTML = 'Выберите страну, город и магазин из меню слева';
            }
		} // end event
	HttpRequest(site_path + 'get_filter_cities/?country=' + country.value, null, 'filter', event);
	return;
}

function ViewCity(city_id, country_id)
{
    var city = document.getElementById(city_id);
    var country = document.getElementById(country_id);
    var div_shop = document.getElementById('div_filter_shops');
    var div_content = document.getElementById('AjaxContent');
    var section_name = document.getElementById('section_name_for_ajax').value;
    
    var country_def = (city.value == '') ? '&country='+country.value : '';
    
    div_shop.innerHTML = '';
    
    var event = 
		function (result) {
            var root = XmlRootByText(result);
			div_shop.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'shops'));
			if(section_name != 'discount') {
                div_content.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'content'));
            }
            if(section_name == 'discount' && city.value == '') {
                div_content.innerHTML = 'Выберите страну, город и магазин из меню слева';
            }
		} // end event
	HttpRequest(site_path + 'get_filter_shops/?city=' + city.value + country_def, null, 'filter', event);
	return;
}

function ViewShop(shop_id, city_id)
{
    var city = document.getElementById(city_id);
    var shop = document.getElementById(shop_id);
    var div_content = document.getElementById('AjaxContent');
    var section_name = document.getElementById('section_name_for_ajax').value;
    
    var event = 
		function (result) {
            var root = XmlRootByText(result);
			div_content.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'content'));
		} // end event
	HttpRequest(site_path + 'get_' + section_name + '/?shop=' + shop.value + '&city=' + city.value, null, 'filter', event);
	return;
}

function LoadNovelties(filter, val, last)
{
    var div_content = document.getElementById('AjaxContent');
    last = (last == 'yes') ? '&last=yes' : '';
    
    if(filter == 'shops') {
        document.getElementById('filter_trade_marks')[0].selected = "selected";
    } else {
        document.getElementById('filter_shops')[0].selected = "selected";
    }
    
    var event = 
		function (result) {
            div_content.innerHTML = result;
		} // end event
	HttpRequest(site_path + 'get_novelties/?filter=' + filter + '&val=' + val + last, null, 'filter', event);
	return;
}

function printShop(id)
{
	window.open(print_path + id + '/print/','Popup','width=800,height=600,top=70,left=100,dependent=yes,titlebar=no,scrollbars=yes,resizable=yes');	
}

function printDiscount(id)
{
	window.open(print_path + id + '/print/','Popup','width=800,height=600,top=70,left=100,dependent=yes,titlebar=no,scrollbars=yes,resizable=yes');	
}

function showPressCentre()
{
    window.open(site_path + 'press_centre/','Popup','width=304,height=595,top=170,left=300,dependent=yes,titlebar=no,scrollbars=no,resizable=no');	
}

function showGallary(shop)
{
    window.open(site_path + 'shops_gallery/?shop=' + shop,'Popup','width=878,height=729,dependent=yes,titlebar=no,scrollbars=no,resizable=no');
}

function zoomKeepsake(path,id)
{
    window.open(path + '?zoom=' + id,'Popup','width=850,height=850,dependent=yes,titlebar=no,scrollbars=no,resizable=no');
    return false;
}

function MailMessage(s,l)
{
    var div_content = document.getElementById('AjaxContent');
    var message = document.getElementById('message').value;
    var post_data = 'start=' + s + '&limit=' + l + '&message=' + encodeURIComponent(message);
    
    var event = 
		function (result) {
            var xml_root = XmlRootByText(result);
            div_content.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(xml_root, 'text'));
            eval(GetXmlNodeValue(GetXmlNodeByTagName(xml_root,'action')));
		}
	HttpRequest(site_path + 'manual_mail/', post_data, 'mail', event);
	return false;
}

function MailContent(s,l)
{
    var div_content = document.getElementById('AjaxContent');
    var f = document.getElementById('subscribe-form');
    var f_len = f.length;
    var news = '';
    var novelties = '';
    
    for (var i=0; i<f_len; i++) {
        if (f[i].type == 'checkbox' && f[i].checked) {            
            if (f[i].name.indexOf('news[]') != -1) {
                news += (news == '') ? f[i].value : ','+f[i].value;
            }
            if (f[i].name.indexOf('novelties[]') != -1) {
                novelties += (novelties == '') ? f[i].value : ','+f[i].value;
            }
        }
    }

    var post_data = 'news=' + news + '&novelties=' + novelties + '&start=' + s + '&limit=' + l;
    
    var event = 
		function (result) {
            var xml_root = XmlRootByText(result);
            div_content.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(xml_root, 'text'));
            eval(GetXmlNodeValue(GetXmlNodeByTagName(xml_root,'action')));
		}
	HttpRequest(site_path + 'auto_mail/', post_data, 'mail', event);
	return false;
}

function MailClick(bu, mes)
{
    bu.style.display='none';
    var div_content = document.getElementById('AjaxContent');
    div_content.innerHTML = mes;
}

function AllowForm(ch,f)
{
    f.semifinalist1.disabled = !ch.checked;
    f.semifinalist2.disabled = !ch.checked;
    f.semifinalist3.disabled = !ch.checked;
    f.semifinalist4.disabled = !ch.checked;
    f.finalist1.disabled = !ch.checked;
    f.finalist2.disabled = !ch.checked;
    f.score1.disabled = !ch.checked;
    f.score2.disabled = !ch.checked;
    f.winner.disabled = !ch.checked;
    f.fio.disabled = !ch.checked;
    f.phone.disabled = !ch.checked;
    f.mail.disabled = !ch.checked;
}