/**
 * перегрузка функции document.getElementById для сокращения синтаксиса
 */
function _$ ( psId ) {
    return document.getElementById(psId);
}
/**
 * перегрузка функции document.getElementsByTagName для сокращения синтаксиса
 */
function $$ ( psTagName ) {
    return document.getElementsByTagName( psTagName );
}
/**
 * ядро JS
 */
var SDG_Core = {
    _oAjax : new SDG_Ajax(),
    _oLoadedJs : {},
    _oLoadedCSS : {},
    IE : '\v'=='v',

    eval : function (sCode) {
        var retVal;
            if (window.execScript && SDG_Core.IE) {
                retVal = window.execScript(sCode, 'javascript');
                
            }
            else {
                retVal = self.eval (sCode);
            }
        return retVal;
    },

    loadJS : function (psFileName, pbForceReload, psPrefix) {
        this._oAjax.clear();
        if ( !this._oLoadedJs[psFileName] || pbForceReload ) {
            //this._oAjax.noRandom = true;                    //-- отменим рандомизацию, чтобы можно было брать из кеша
            var lResult = this._oAjax.doRequest(psFileName, 'GET', true); //-- здесь синхронная подгрузка и автоматический eval ()
            if (lResult) {
                //alert (SDG_Core.eval(lResult));
                this._oLoadedJs[psFileName] = true;
                return SDG_Core.eval((psPrefix) ? psPrefix + lResult : lResult);
            }
        }
        return false;
    },

    loadCSS : function (psFileName, pbForceReload) {
        if ( !this._oLoadedCSS[psFileName] || pbForceReload ) {
            jQuery("<link>").attr({"rel":"stylesheet","type":"text/css","href":psFileName + '?'+Math.random(), "media":"screen"}).appendTo(document.getElementsByTagName("head")[0]);
        }
        return ;
    },
    /**
     * добавить обработчик события на элемент
     */
    addEvent: function(element, type, handler) {
      if (! element ) return false;
      if(element.addEventListener) element.addEventListener(type,handler,false);
      else if(document.attachEvent) element.attachEvent('on'+type,handler);
      else element['on'+type]=handler;
    }  ,
    /**
     * быстрая подгрузка JS
     */
    fastLoad : function (poHref) {
        if (poHref) {
            this._oAjax.clear();
            this._oAjax.stateFuncs = {
                4 : function (poAjax) { SDG_Core.eval (poAjax.request.responseText); }
            };
            this._oAjax.doRequest(poHref);
        }
    },
    doAsync : function (poFunction) {
        
        if (typeof poFunction == 'function') setTimeout(function () { poFunction();}, 500);
    },
    /**
     * загрузить jQuery
     */
    loadJQuery : function () {
        if (typeof jQuery == 'undefined') {
            SDG_Core.loadJS('/gnu_source/jquery/jquery.js');
        }
    },

    textTranscript : function (psText) {
		A = new Array();
		A["Ё"]="YO";A["Й"]="I";A["Ц"]="TS";A["У"]="U";A["К"]="K";A["Е"]="E";A["Н"]="N";A["Г"]="G";A["Ш"]="SH";A["Щ"]="SCH";A["З"]="Z";A["Х"]="H";A["Ъ"]="";
		A["ё"]="yo";A["й"]="i";A["ц"]="ts";A["у"]="u";A["к"]="k";A["е"]="e";A["н"]="n";A["г"]="g";A["ш"]="sh";A["щ"]="sch";A["з"]="z";A["х"]="h";A["ъ"]="";
		A["Ф"]="F";A["Ы"]="I";A["В"]="V";A["А"]="A";A["П"]="P";A["Р"]="R";A["О"]="O";A["Л"]="L";A["Д"]="D";A["Ж"]="ZH";A["Э"]="E";
		A["ф"]="f";A["ы"]="i";A["в"]="v";A["а"]="a";A["п"]="p";A["р"]="r";A["о"]="o";A["л"]="l";A["д"]="d";A["ж"]="zh";A["э"]="e";
		A["Я"]="YA";A["Ч"]="CH";A["С"]="S";A["М"]="M";A["И"]="I";A["Т"]="T";A["Ь"]="";A["Б"]="B";A["Ю"]="YU";
		A["я"]="ya";A["ч"]="ch";A["с"]="s";A["м"]="m";A["и"]="i";A["т"]="t";A["ь"]="";A["б"]="b";A["ю"]="yu";
                A[" "]="_";
		return psText.replace(/([\u0410-\u0451, ])/g,
			function (str,p1,offset,s) {
				if (typeof A[str] != 'undefined'){return A[str];}
			}
		);
    }
}
SDG_Core.loadJQuery();

function submit_auth_form(form_name)
{
	var submittedForm = document.forms[form_name];

		if (!submittedForm['user_login'].value) 
		{
			alert ('Не указано имя пользователя!');
			return false;
		}
		if (!submittedForm['user_password'].value) 
		{
			alert ('Не указан пароль!');
			return false;
		}
		
	submittedForm.submit();
	return true;
}

function submit_logout_form(form_name)
{
	var submittedForm = document.forms[form_name];
	submittedForm.submit();
	return true;
}
/**
 * добавить событие на элемент
 * @param	string 	psEventName 		- строка, имя события
 * @param	mixed 	psEventProcedure 	- строка, имя события
*/
/**
 * "запустить" событие для элемента (потом пригодится)
*/
function emulateElementEvent (poElement, psEventName)
{
	
}

/**
 * получить абсолютные координаты DOM объекта
*/

function getAbsPos (pElement)
{
	var r = { x: pElement.offsetLeft, y: pElement.offsetTop };
	if (pElement.offsetParent) {
		var tmp = getAbsPos(pElement.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}
//-------------------------
function alertx (psAlertMsg)
{
	var d = document.getElementById ('__aalert_div');
	if (!d)
	{
		var d = document.createElement( 'DIV' ) ;
		d.setAttribute( 'style', 'position:absolute; z-index:10;left:0px;top:0px;' ); 
		d.id = '__aalert_div';
		document.body.appendChild(d);
	}

	d.innerHTML+= psAlertMsg+'<br/>';
}

function addAjaxQueue(poElement, poFunction)
{
	
}

function setAjaxWaitIcon(poElement, psIcon)
{
	poElement.innerHTML = '<img src="/resources/pics/ajax-icons/'+psIcon+'.gif" border="0" style="position:fixed;top:50%;left:50%;"/>';
}

