var layer_id="SitePageLayer";
var site_page_layer_path='/admin/js/site_page_layer';

function SiteShowAjaxLayer(url,width,height,marginTop)
{
	if(marginTop==undefined || marginTop<1) marginTop=150;
	SiteOverlay = document.createElement("DIV");
	SiteOverlay.id=layer_id+'_base';
	SiteOverlay.className = 'SiteOverlay';
	document.body.appendChild(SiteOverlay); 
	
	element = document.createElement("DIV");
	element.id=layer_id;
	element.className='SitePageLayer';
	element.style.marginTop=document.body.scrollTop;
	document.body.appendChild(element); 
	
	var v_offset=document.documentElement.scrollTop;
	
	if(!v_offset) v_offset=document.getElementsByTagName('body')[0].scrollTop;

	wait_image='/admin/js/site_page_layer/images/wait.gif';
	
	if(width!=undefined && width>0) element.style.width=width+'px'; else {var width=1000; element.style.width=width+'px';}
	if(height!=undefined && height>0) element.style.height=height+'px';
	if(marginTop!=undefined && marginTop>0) element.style.top=marginTop+v_offset+'px';
	element.style.marginLeft='-'+width/2+'px';
	element.style.marginTop='0px';

	element.innerHTML='<table width="100%" cellpadding="20"><tr><td id="'+layer_id+'_td"><div style="height:15px; text-align:center">'+((wait_image)?'<img src="'+wait_image+'" />':'')+'</div></td></tr></table>';
	
	close_el = document.createElement("DIV");
	close_el.id=layer_id+"_close";
	//close_el.style.marginTop=document.body.scrollTop; 
	if(marginTop!=undefined && marginTop>0) close_el.style.top=marginTop+v_offset+'px'; 

	close_el.innerHTML='<a href="javascript:SiteCloseAjaxLayer();"><img src="'+site_page_layer_path+'/images/close.gif" alt="Закрыть" title="Закрыть"></a>';

	close_el.className='SitePageLayer_close';
	close_el.style.marginTop=5+'px';
	close_el.style.marginLeft=Number(width/2)-16+'px';
	
	document.body.appendChild(close_el); 
	
	SiteMakeRequest(url,layer_id+'_td');
}

function SiteCloseAjaxLayer()
{
	document.body.removeChild(document.getElementById(layer_id)); 
	document.body.removeChild(document.getElementById(layer_id+'_base')); 
	document.body.removeChild(document.getElementById(layer_id+'_close')); 
}

// Ajax
var eval_code=false;
function SiteMakeRequest(url,element,eval_str) {
	
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// Читайте ниже об этой строке
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP ');
		return false;
	}
	
	http_request.onreadystatechange = function() { SiteAlertContents(http_request,element,eval_str); };
	
	if(strpos(url,'?')>0)
	{
		if(url.length>1)
		{
			var new_url=url.substr(0,strpos(url,'?'));
		}
		else
		{
			var new_url=url;
		}
		
		http_request.open('POST', new_url, true);
		var post_data=url.substr(strpos(url,'?')+1);
		
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", post_data.length);
		http_request.setRequestHeader("Connection", "close");
		http_request.send(post_data);
	}
	else
	{
		http_request.open('GET', url, true);
		http_request.send(null);
	}

	return true;

}

function SiteAlertContents(http_request,element,eval_str) {
	
	if (http_request.readyState == 4) {

		if (http_request.status == 200) {
			if(element!=undefined)
			{
				if(element)
				{
					if(typeof(element)=='object')
					{
						element.innerHTML = http_request.responseText;		
					}
					else
					{
						if(document.getElementById(element)) document.getElementById(element).innerHTML = http_request.responseText; else return false;
					}
					
					SiteEvalJsCode(http_request.responseText);
					return (http_request.responseText);
				}
				else
				{
					return http_request.responseText;
				}

				eval(eval_str);
			}
		} else {
			alert('С запросом возникла проблема.');
		}
	} else {
		
		//document.getElementById(element).innerHTML='<img src="/images/wait.gif">';
	}
}


function SiteEvalJsCode(html_code)
{
	var reg2=/<script/i; 
	t=html_code.split(reg2);
	for(n=0;n<t.length;n++)
	{
		reg2=/<\/script>/i;
		res='';
		if(reg2.test(t[n]))
		{
			reg3=/^.*?src=\'(.*?)\'.*?>/i;
			reg4=/^.*?src=\"(.*?)\".*?>/i;

			res1=reg3.exec(t[n]);
			res2=reg4.exec(t[n]);
			
			if(res1!=null && res1[1])
			{
				res=res1[1];
			}
			else if(res2!=null && res2[1])
			{
				res=res2[1];
			}
			
			if(res)
			{
				if(typeof(window.execScript)=='function' || typeof(window.execScript)=='object')
				{
					window.execScript(SiteIncludeJsScript(res));
				}
				else
				{
					window.eval(SiteIncludeJsScript(res));
				}
			}
		}
		
	}
	
	eval_code='';
	var reg=/<script.*?>(.*?)<\/script>/i; 
	reg1=/<script.*?>/i;
	v=html_code.split(reg1);
	for(n=0;n<v.length;n++)
	{
		reg2=/<\/script>/i;
		if(reg2.test(v[n]))
		{
			v2=v[n].split(reg2);
			eval_code+=v2[0]+';';
		}
	}
	if(eval_code!='')
	{
		if(typeof(window.execScript)=='function' || typeof(window.execScript)=='object')
		{
			window.execScript(eval_code);
		}
		else
		{
			setTimeout(eval_code,0);
		}
	}
}
var lite=false;
function SiteIncludeJsScript(url) {
	var http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// Читайте ниже об этой строке
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		return false;
	}
	http_request.onreadystatechange = function() { SiteAlertContentsJs(http_request); };
	
	http_request.open('GET', url, true);
	http_request.send(null);

	return true;

}

function SiteAlertContentsJs(http_request,element,eval_str) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if(typeof(window.execScript)=='function' || typeof(window.execScript)=='object')
			{
				window.execScript(http_request.responseText);
			}
			else
			{
				window.eval(http_request.responseText);
			}
		} else {
			alert('С запросом возникла проблема.');
		}
	}
}

function strpos( haystack, needle , offset ) {
	   if(offset) offset = offset ; 
	   else offset = 0 ; 
	   return haystack.indexOf(needle, offset); 
}

function parseMultiForm(form)
{
    var result = new Array();
    result='';

    for(var i=0;i<form.elements.length;i++)
    {
        if(form.elements[i].name)
        {            
        
            var reg=/\[\]/;
            
            if(reg.exec(form.elements[i].name))
            { 
        
				result=result+'&'+form.elements[i].name+'='+escape(form.elements[i].value);
            
            } else {
            
                if(form.elements[i].type=='checkbox')
                {
                    if(form.elements[i].checked) result=result+'&'+form.elements[i].name+'='+escape(form.elements[i].value);
                }
				else if(form.elements[i].type=='radio')
				{
					if(form.elements[i].checked) result=result+'&'+form.elements[i].name+'='+escape(form.elements[i].value);	
				}
				else 
				{
                    result=result+'&'+form.elements[i].name+'='+escape(form.elements[i].value);
                }
            }
        }
    }

    return result;
}

function AjaxSendForm(obj,container_id)
{
	if(!container_id) container_id=layer_id+'_td';
	if(document.getElementById(container_id))
	{
		if(obj.action)
		{
			SiteMakeRequest(obj.action+'?'+parseMultiForm(obj),container_id);
		}
		else
		{
			alert('Form action is empty!');
		}
	}
	else
	{
		alert('Do not exists container: '+container_id);
	}
};

