var startFocusLoop = [];
var curPos = [];
var curClass = [];
var curDomen = 0;
var curUrl = [ "/", "/", "/" ];
var curLayer = 0;
var layerDomen = [0, 0, 0];
var Layers = [ "body", "body2", "body3" ];

//for( i=0; i<30; i++ ) { t = 'm'+i; curPos[t] = 2; startFocusLoop[t] = false; }

common = {
	setC: function( name, value, expires, path, domain, secure )
	{
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
	},
	
	getC: function( name ) 
	{
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ( ( !start ) &&
			( name != document.cookie.substring( 0, name.length ) ) )
		{
			return null;
		}
		if ( start == -1 ) return null;
		var end = document.cookie.indexOf( ";", len );
		if ( end == -1 ) end = document.cookie.length;
		return unescape( document.cookie.substring( len, end ) );
	},

	setDomen: function()
	{
		curDomen = document.domenform.domen_id.value;
		//alert("domen_id=" + curDomen);
		//alert("curUrl=" + curUrl);
		this.setC( "domen_id", curDomen, "Mon, 01-Jan-2100 00:00:00 GMT", "/");
		if( curUrl[curLayer] != '/' )  { ajax.go2( curUrl[curLayer] ) };
		layerDomen[curLayer] = curDomen;
	},
	
	setDomenbByLayer: function()
	{
		var set = layerDomen[curLayer];
		curDomen = set;
		
		//selObj.selectedIndex=0;
		document.domenform.domen_id.selectedIndex = set;
		
		this.setC( "domen_id", set, "Mon, 01-Jan-2100 00:00:00 GMT", "/");
	},
	
	setLayer: function( layer )
	{
		curLayer = layer;
		//param( Layers );
		var linkid = Layers[layer]+"link";
		var curlinkid = "";
		for (var i=0; i<Layers.length ; i++) 
		{
			//document.write("i = " + Layers[i] + "<br>");
			curlinkid = Layers[i]+"link";
			document.getElementById(Layers[i]).style.display = 'none'; 
			document.getElementById(curlinkid).style.fontWeight = 'normal'; 
		}
		
		document.getElementById(Layers[layer]+"link").style.fontWeight = 'bold';
		document.getElementById(Layers[layer]).style.display = 'block';
		
		common.setDomenbByLayer();
	},
	
	openProduct: function()
	{
		var form = document.forms['selpr'];
		var qs = form.querystring.value;
		var id = form.product_id.value;
		
		ajax.go2("/products/add_modify_dialog.php?" +qs+ "&product_id="+id);
		return false;
	},
	
	sortProduct: function()
	{
		var form = document.forms['sortpr'];
		var sort_by = form.sort_by.value;
		var sub_type = form.sub_type.value;
		var cat_id = form.cat_id.value;
		var search = form.search.value;
		
		ajax.go2("/products/index.php?sort_by="+sort_by+"&sub_type="+sub_type+"&cat_id="+cat_id+"&search="+search);
		return false;
	}
}





divs = 
{
	show: function( id )
	{
		var s = document.getElementById(id).style;
		if (s.display == 'block')
		{
			s.display = 'none';
		}
		else 
		{
			s.display = 'block';
		}
		s = null;
		return false;
	},
	
	hidden: function( id )
	{
		var s = document.getElementById(id).style;
		s.display = 'none';
		s = null;
		return false;
	},
	
	smenu: function( id, picid )
	{
		var s = document.getElementById(id).style;
		
		if( s.display == "" ) s.display = 'block';
		
		if (s.display == 'block')
		{
			document.getElementById(picid).src = "/images/cat_show.gif";
			s.display = 'none';
		}
		else 
		{
			document.getElementById(picid).src = "/images/cat_hide.gif"; 
			s.display = 'block';
		}
		
		s = null;
		return false;
	},
	
	showSecond:  function( url )
	{
		var f = document.getElementById("first").style;
		var s = document.getElementById("second").style;
		
		if( typeof url != 'undefined' && document.getElementById("ifsecond") )
		{
			var ifr = document.getElementById("ifsecond");
			ifr.src = url;
		}
		
		if( s.display == "" ) s.display = 'none';
		
		if (s.display == 'block')
		{
			s.display = 'none';
			f.width = '100%';
		}
		else 
		{
			f.width = '50%';
			s.display = 'block';
		}
		
		ifr = s = f = null;
		return false;
	},
	
	clear: function( id )
	{
		document.getElementById(id).innerHTML = "";
	},
	
	focus: function( id, classNumber )
	{
		startFocusLoop[id] = true;
		//curClass[id] = classNumber;
		//opacity.setElementOpacity(id,1);
		this.focusLoop( id, classNumber );
	},
	
	focusLoop: function( id, classNumber, cur )
	{
		var start = 2, max = 6, step = 1;
		
		if( typeof cur == "undefined" )
		{ 
			if( typeof curPos[id] == "undefined")
				cur = start;
			else
				cur = curPos[id];
		}
		
		curPos[id] = cur;
		
		var elem = document.getElementById(id);
		elem.style.padding = cur+"px 1px";
		elem.className = "menusel" + classNumber;
				
		if( ((curPos[id]+step)<=max) && startFocusLoop[id] == true ) 
		{
			curPos[id] = curPos[id] + step;
			setTimeout("divs.focusLoop('"+id+"', '"+classNumber+"' ,"+curPos[id]+")", 30);
		}
		
		cur = elem = start = max = step = null;
	},
	
	unfocus: function( id, classNumber )
	{
		startFocusLoop[id] = false;
		//opacity.setElementOpacity(id,0.4);
		this.unFocusLoop( id, classNumber );
	},
	
	unFocusLoop: function( id, classNumber, cur )
	{
		var start = 6, min = 2, step = 1;
		
		if( typeof cur == "undefined" )
		{ 
			if( typeof curPos[id] == "undefined")
				cur = start;
			else
				cur = curPos[id];
		}
		
		curPos[id] = cur;
		
		var elem = document.getElementById(id);
		elem.style.padding = cur+"px 1px";
		elem.className = "menu" + classNumber;
		
		if( ((curPos[id]-step)>=min) && startFocusLoop[id] == false ) 
		{
			curPos[id] = curPos[id] - step;
			setTimeout("divs.unFocusLoop('"+id+"', '"+classNumber+"', "+curPos[id]+")", 30);
		}
		
		cur = elem = start = max = step = null;
	}
}





opacity = 
{
	setElementOpacity: function(sElemId, nOpacity)
	{
		var opacityProp = opacity.getOpacityProperty();
		var elem = document.getElementById(sElemId);

		if (!elem || !opacityProp) return; // Если не существует элемент с указанным id или браузер не поддерживает ни один из известных функции способов управления прозрачностью
  
		if (opacityProp=="filter")  // Internet Exploder 5.5+
		{
			nOpacity *= 100;
	
			// Если уже установлена прозрачность, то меняем её через коллекцию filters, иначе добавляем прозрачность через style.filter
			var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
			if (oAlpha) oAlpha.opacity = nOpacity;
			else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; // Для того чтобы не затереть другие фильтры используем "+="
		}
		else // Другие браузеры
			elem.style[opacityProp] = nOpacity;
			
		opacityProp = elem = nOpacity = oAlpha = null;
	},

	getOpacityProperty: function()
	{
		if (typeof document.body.style.opacity == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
			return 'opacity';
		else if (typeof document.body.style.MozOpacity == 'string') // Mozilla 1.6 и младше, Firefox 0.8 
			return 'MozOpacity';
		else if (typeof document.body.style.KhtmlOpacity == 'string') // Konqueror 3.1, Safari 1.1
			return 'KhtmlOpacity';
		else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) // Internet Exploder 5.5+
			return 'filter';
		return false; //нет прозрачности
	}
}


param = window.param = function (obj, name) 
{
    var div = document.createElement("PRE"); 
    div.style.border = "1px solid red", div.style.padding = "5px";
    
    if ( typeof obj != 'object' )
        div.innerHTML = obj;
    else {
        var name = (name == undefined) ? 'object.' : name + '.'
        for (var i in obj) 
        {
            try { 
                div.innerHTML += name + i + " = " + obj[i] + "<br />";
            }
            catch( err ) {
                /* Вывод с сообщением об ошибке */
                div.innerHTML += "object.line = ERROR<br />";
            }
        }
    }
    
    if (document.body == null) 
    {
        function func() {document.body.appendChild(div)};
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        }
        else {
            window.onload = function() {
                oldonload();
                func();
            }
        }
    } 
    else {
        document.body.appendChild(div);
    }
}



ajax = 
{	
	getXmlHttpRequestObject: function () 
	{
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			document.getElementById('p_status').innerHTML = 'Ваш браузер не поддерживает AJAX.';
			return false;
		}
	},
	
	get: function( url, func, key ) 
	{
		if ( typeof receiveReq != 'object' || receiveReq == null || receiveReq == undefined ) receiveReq = new Array();
		
		// ПРОЦЕСС АЯКСА БУДЕТ ЗАПУЩЕН:
        // 1. Если нет такого объекта
        // 2. Если объект уже вернул результат
        var aStart = false;
            
        if ( typeof receiveReq[key] == 'undefined' || receiveReq[key] == null) 
        {
			aStart = true;
        } 
        else if ( typeof receiveReq[key] == 'object' && receiveReq[key].readyState == 4 ) 
        {
			aStart = true;
        }
		
		if( aStart )
		{
			receiveReq[key] = this.getXmlHttpRequestObject();
	
			if (receiveReq[key].readyState == 4 || receiveReq[key].readyState == 0) 
			{
				receiveReq[key].open("GET", url, true);
				receiveReq[key].onreadystatechange = func; 
				receiveReq[key].send(null);
			} 
		}
	},
	
	go: function( obj )
	{
		return ajax.send( obj, Layers[curLayer] );
	},
	
	go2: function( url, name )
	{
		if( typeof name != "undefined" )
		{
			var id = "body"+(curLayer+1)+"text";
			document.getElementById(id).innerHTML = name; 
		}

		return ajax.send( url, Layers[curLayer] );
	},
	
	send: function(obj, idcont)
	{
		if( obj.href ) curUrl[curLayer] = obj.href;
		else curUrl[curLayer] = obj;
		
		ajax.get( curUrl[curLayer], function()
		{
			if(receiveReq[idcont].readyState == 4 && receiveReq[idcont].status == 200 )
			{
				if( receiveReq[idcont].responseText != '' )
				{
					divs.hidden("p_loading");
					document.getElementById(idcont).innerHTML = ajax.checkEvalTags( receiveReq[idcont].responseText );
				}
			}
			else if(receiveReq[idcont].readyState == 3 || receiveReq[idcont].readyState == 1 )
			{
				//document.getElementById(idcont).innerHTML = "<div style='padding: 50px;' align='center'><img alt='Загрузка' src='/images/loading.gif'></div>";
				divs.show("p_loading");
			}
		}, idcont );
		return false;
	},
	
	checkEvalTags: function( content )
	{
		var tags = ['andycms'];
					
		for( var tag in tags ) //param( tag );
		{
			for( var i=0; i<tags.length; i++ ) 
			{
				var reg = new RegExp("<"+tags[i]+">(.*)</"+tags[i]+">", "im");
				res = content.match(reg);
				//alert(res);
				if ( res != null && res[1].length > 0 ) 
				{ 
					//alert( res );
					content = content.replace(res[0],""); 
					eval(res[1]);
					//ekv('#'+tags[i]).html('[' + res[1] + ']'); num++;
				}
			}
		}
		return content;
	},
	
	getMenu: function()
	{
		ajax.get( "/topmenu.php", function()
		{
			if(receiveReq['mainmenu'].readyState == 4 && receiveReq['mainmenu'].status == 200 )
			{
				if( receiveReq['mainmenu'].responseText != '' )
				{
					//divs.show("p_loading");
					if(document.getElementById("mainmenu")) document.getElementById('mainmenu').innerHTML = receiveReq['mainmenu'].responseText;
					if(document.getElementById("menu_loading")) document.getElementById("menu_loading").style.display = 'none'; 
				}
			}
			else if (receiveReq['mainmenu'].readyState == 3 || receiveReq['mainmenu'].readyState == 1) 
			{  
				if(document.getElementById("mainmenu")) document.getElementById("mainmenu").innerHTML = "<div style='padding: 20px;' align='center'><img alt='Загрузка' src='/images/loading.gif' ></div>";
				//divs.show("p_loading");
			}  
		}, "mainmenu" );
		return false;
	}
}

function start()
{	
	var version = "Система администрирования v3.0";
	var t = "<div>" + version + ' (AJAX: XMLHttpRequest)</div>';
	
	if( document.getElementById('p_status') )
	{
		if (window.XMLHttpRequest) document.getElementById('p_status').innerHTML = t;
		if (window.ActiveXObject) document.getElementById('p_status').innerHTML = t; 
	}
	
	if( document.getElementById('p_zak') )
		document.getElementById('p_zak').innerHTML = "<a id='bodylink' onclick='common.setLayer(0); return false;' href='#'>[<span id='body1text'>Закладка1</span>]</a>&nbsp;<a id='body2link' onclick='common.setLayer(1); return false;' href='#'>[<span id='body2text'>Закладка2</span>]</a>&nbsp;<a id='body3link' onclick='common.setLayer(2); return false;' href='#'>[<span id='body3text'>Закладка3</span>]</a>";
	if( document.getElementById('p_footer') )
		document.getElementById('p_footer').innerHTML = "<a class='black' href='http://www.positive-solution.ru'>2009 Автор: Уваров Андрей</a>";
	if( document.getElementById('p_loading') )		
		document.getElementById('p_loading').innerHTML = "<img alt='Загрузка' src='/images/loading.gif'>";
	
	ajax.getMenu();
	
	layerDomen[0] = common.getC("domen_id");
}

var oldonload = window.onload;

if (typeof window.onload != 'function') {
	window.onload = start;
}
else {
	window.onload = function() {
		oldonload();
        start();
    }
}


		