Function.prototype.createDelegate = function(obj, args, appendArgs){
	var method = this;
	return function() {
	    var callArgs = args || arguments;
	    if (appendArgs === true) {
	        callArgs = Array.prototype.slice.call(arguments, 0);
	        callArgs = callArgs.concat(args);
        } else if (typeof appendArgs == 'number') {
			callArgs = Array.prototype.slice.call(arguments, 0);
			var applyArgs = [appendArgs, 0].concat(args);
			Array.prototype.splice.apply(callArgs, applyArgs);
	    }
		return method.apply(obj || window, callArgs);
    };
};
var MakeRequest = function () {
	this.transport = (function () {
		try {	
			if (window.ActiveXObject) {
				var AXOs = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
				for (var i = 0; i < AXOs.length; i++) {
					try { return ActiveXObject(AXOs[i]) } catch (e) {}
				}
			}
			if (window.XMLHttpRequest) return new XMLHttpRequest();		} catch (e) {
			alert('ОШИБКА! Невозможно создать объект HTTPRequest.');
			return null;
		}
	} ());
	if (!this.transport)
	{
		this.transport = new ActiveXObject('Microsoft.XMLHTTP');
	}
	this.place = arguments[0] ? document.getElementById(arguments[0]) : null;
	//document.getElementById('wait').innerHTML = 'Waiting ... ';	
	this.ResponseHandler = function () {
		if (4 == this.transport.readyState) {		
			if (this.place) {						
				if (200 == this.transport.status) {				
					this.place.innerHTML = this.transport.responseText;		
					move_block();
						var scripts=document.getElementsByTagName("script");
				 for (var i = 0; i < scripts.length; i++) 
	 						  {
						if (scripts[i].id == "do_it")
						{
						eval(scripts[i].innerHTML);
						scripts[i].id = "";
						}
								}
				} else alert('ОШИБКА! Неверный ответ сервера.');		
			} else alert('ОШИБКА! Отсутствует контейнер для запрошенных данных.');	
			//document.getElementById('wait').innerHTML = '';		
			//this.transport.onreadystatechange = null;
		}	
	}
	try {this.transport.onreadystatechange = this.ResponseHandler.createDelegate(this); } catch (e) {}
 var url = arguments[1] + arguments[2];
	this.transport.open('GET', url, true);

this.transport.send(null);
};

// JavaScript Document
function get_id(id)
{
	return document.getElementById(id);
}

function get_val(id)
{
return get_id(id).value;
}

function get_sel(id)
{
	return get_id(id).options[get_id(id).selectedIndex].value;
}
function change_focus(id)
{
	document.getElementById(id).focus();
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
} 


function show_submenu(cat_id)
{
var cat_div = "menu_" + cat_id;
var now_visibility = get_id(cat_div).style.display;
if (now_visibility=="")
{
	get_id(cat_div).style.display = "none";
}
else
{
	get_id(cat_div).style.display = "";
}
}

function show_help_window(div,img)
{
		function mousePageXY(e)
		{
		  var x = 0, y = 0;
		
		  if (!e) e = window.event;
		
		  if (e.pageX || e.pageY)
		  {
			x = e.pageX;
			y = e.pageY;
		  }
		  else if (e.clientX || e.clientY)
		  {
			x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
			y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
		  }
		
		  return {"x":x, "y":y};
		}
var mCur = mousePageXY();
get_id(div).style.top = mCur.y+5 +"px";
get_id(div).style.left = mCur.x+5 +"px";
if (get_id('photo_image').src && get_id('photo_image').src!=img)
{
	get_id('photo_image').src = img;
}

}

var scroll_action = "";
var scroll_div = "";
function scroll_start(action,div)
{
	scroll_action = action;
	scroll_div = div;
	scroll_left();
}
function scroll_left()
{
	if (scroll_action=="") return;
	if (scroll_action=="+")
	{
get_id(scroll_div).scrollLeft = get_id(scroll_div).scrollLeft+1;
	}
	else
	{
	get_id(scroll_div).scrollLeft = get_id(scroll_div).scrollLeft-1;	
	}
	setTimeout("scroll_left()",10);
}
function open_consult() 
{
	
	var url = "consult.php";
	myWin= open(url, "displayWindow", "width=400,height=600,status=no,toolbar=no,menubar=no, titlebar=no, resizable=no, location=no, scrollbars=no");
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:window.innerHeight;

}
function getBodyScrollTop()
{
return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
function getBodyScrollLeft()
{
return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
var fly_block ="";
function move_block()
{
	if (fly_block=="")
		{
			fly_block = "order_fly";
		}
var order_top = parseInt(get_id(fly_block).style.top);
var need_pos = getBodyScrollTop() -Math.ceil(get_id(fly_block).offsetHeight/2) +Math.ceil(getClientHeight()/2);
var real_width = get_id(fly_block).offsetWidth;
	get_id(fly_block).style.marginLeft ='-'+Math.ceil(real_width/2) + 'px';
//alert(order_top);
//alert(need_pos);
if (order_top < getBodyScrollTop()-500)
        {
        get_id(fly_block).style.top = getBodyScrollTop()-500 +'px';
        }
        if (order_top > getBodyScrollTop()+getClientHeight()-100)
        {
        get_id(fly_block).style.top =  getBodyScrollTop()+getClientHeight()-100 +'px';
        }
if (order_top<need_pos-15)
        {
        get_id(fly_block).style.top = parseInt(get_id(fly_block).style.top)+12+'px';
        }
        else if (order_top>need_pos+15)
        {
        get_id(fly_block).style.top = parseInt(get_id(fly_block).style.top)-12+'px';
        }
        else
        {
        return;
        }
                setTimeout("move_block()",5);
}

 window.onscroll = function () {
			  if (document.getElementById('order_fly'))
			  {
				 
                                fly_block = "order_fly";
                           move_block();                            
			  }
                    }


// AJAX
function call_me ()
{

		if (get_val('call_name')=="" || get_val('call_phone')=="")
			{
				alert("Пожалуйста, заполните все поля, отмеченные *!");
			}
			else
			{			
	var param = "?action=call_me&name="+ get_val('call_name') + "&phone="+ get_val('call_phone')+ "&subj="+ get_val('call_subj')+ "&time="+ get_val('call_time');
	get_id('fly_content').innerHTML = "<div style='width:200px; height:150px;' align='center'><br><br><br>Подождите, идет загрузка...</div>";
	move_block();
	new MakeRequest('fly_content', 'ajax.php', param);	
			}
	
}

function call_me_form ()
{
	get_id('fly_content').innerHTML = "<div style='width:200px; height:150px;' align='center'><br><br><br>Подождите, идет загрузка...</div>";
	move_block();
	var param = "?action=call_me_form";
	new MakeRequest('fly_content', 'ajax.php', param);
}

function login_form()
{
		get_id('fly_content').innerHTML = "<div style='width:200px; height:150px;' align='center'><br><br><br>Подождите, идет загрузка...</div>";
		move_block();
	var param = "?action=login_form";
	new MakeRequest('fly_content', 'ajax.php', param);	

}

function login()
{
	alert("Логин и пароль введены неверно!");
}

function do_blink()
{
	if (document.getElementById('blink'))
	{
			if (document.getElementById('blink').style.visibility=="hidden")
			{
			document.getElementById('blink').style.visibility = "visible";
			setTimeout(do_blink,2000);
			}
			else
			{
			document.getElementById('blink').style.visibility = "hidden";
			setTimeout(do_blink,300);
			}
			
	}
}



function calc()
{
	if (document.getElementById('calc'))
			{
				var total_p =0;
				var inputs = document.getElementById('calc').getElementsByTagName("input");
				 for (var i = 0; i < inputs.length; i++) 
	 						  {
								  if (inputs[i].type=="checkbox" || inputs[i].type=="radio")
								  	{
									
										if (inputs[i].checked)
										{
												
										total_p = total_p+inputs[i].value*1;
										if (document.getElementById('tr_'+inputs[i].id))
										{
										get_id('tr_'+inputs[i].id).style.color='#1f7b36';
										}
										}
										else
										{
												
										if (document.getElementById('tr_'+inputs[i].id))
										{
										get_id('tr_'+inputs[i].id).style.color='#000000';
										}
										}
									}
							  }
							  get_id('total_cost').innerHTML=total_p;
			}
}

var data = "";
function print_price()
{
        data = document.getElementById("print_zone").innerHTML;
        window.open('print_price.html',null,'target=_blank,status=0,toolbar=0,scrollbars=1,menubar=1');
}
