var ULBox=false;  //view div
var cursorTimer,CursorDiv = false;
var PopupDragVar=false;
var dragPopupDx=0;
var PopupFullScreenState = false;
var PopupFullScreenSelfX,PopupFullScreenSelfY;
var DOMAIN="http://"+document.domain+"/";
//var DOMAIN="http://localhost/wikilife/";
var CONFIG = Object;

//--------------events---------------
var pageX, pageY;
var browsemode = false;                                  // crossbrowsers
if(navigator.appName=="Netscape"){browsemode=true;} // Mozilla
if(navigator.appName=="Microsoft Internet Explorer"){var IE=true;} // IE must die =)

//-----------------------PxToInt()--------------
function PxToInt(v)
{
   v=v.replace("px","");
   v=parseInt(v);
   return v;
}
//-------------StatHelp()---------------
function StatHelp(from,w)
{
     if(!w){w=200;} // default width
     div=ge('stathelp');
     from=ge(from);
     str=from.innerHTML;
     div.innerHTML=str;
     div.style.display="block";
     if(!browsemode && navigator.appName!='Opera'){div.style.position = 'fixed';}
     div.style.width=w+'px';
     div.style.top=pageY+4+'px';
     div.style.left=pageX+4+'px';
}
//--------------StatHelpDivOff()---------------
function StatHelpDivOff()
{
   d=ge("stathelp");
   d.style.display="none";
   d.innerHTML="";
}

function MoveCursorDiv()
{
   d=ge("mousediv");
   d.style.top=pageY+4+'px';
   if(pageX<1020){d.style.left=pageX+4+'px'; }
}

function MyBoxMove(elId, toY)
{	var e = ge(elId);
	var dY, curY = Ext.get(elId).getTop(true);
	var delay;  // ms
	var step = 2; //px
	dY = Math.abs(toY-curY);
	delay = 1000/dY;
	//if(delay<100){step = 2;}
	if(delay>100){delay = 100;step = 1}

	if(curY<toY)
	{		Ext.get(elId).setTop((curY+step));
	}else{return ;}

	setTimeout("MyBoxMove('"+elId+"',"+toY+")", delay);}

function ToCursor(str,opt)
{
    var anime = {
    	duration: 2
    };
    if(!str){return ;}
    if(!opt){opt = new Object; opt.autoHide = true; opt.title = 'Информация';}
    var box = Ext.get('userLogBox'),dataBox = ge('userLogData');
    if(opt.title){ge('userLogTitle').innerHTML = opt.title;}else{ge('userLogTitle').innerHTML = 'Информация';}
    dataBox.innerHTML += str;
    if(ULBox)
    {    	clearTimeout(cursorTimer);
    	cursorTimer=setTimeout('CursorDivOff()',5000);
    	return ;
    }
    if(IE){box.show();}else{box.show(anime);}
    //box.show();
    //box.moveTo(20,100,anime);
    MyBoxMove('userLogBox',0);
    ULBox = true;
   // ge('userLogBox').style.position = 'fixed';

    if(opt.autoHide){cursorTimer=setTimeout('CursorDivOff()',5000);}
}


function CursorDivOff()
{
   var anime = {
    	duration: 2,
    	callback: CursorAfterShow
    };
    var box = Ext.get('userLogBox'),dataBox = ge('userLogData');
    box.hide(anime);

    ULBox = false;
    //Ext.get('userLogBox').setTop(-200);
}
function CursorAfterShow()
{    var box = Ext.get('userLogBox'),dataBox = ge('userLogData');
    dataBox.innerHTML = '';
    box.setTop(-200);
}


function HideDiv(id)
{
        document.getElementById(id).style.height="1px";
        document.getElementById(id).style.visibility="hidden";
        document.getElementById(id).style.overflow="hidden";
}


function UploaderLog()
{
  log=document.getElementById('uploader').innerHTML;
  //alert(log);
}

var zoomId=null;
var zoomMode=null;
function Zoom(id)
{
  zoomId=id;
  var root=document.getElementById("root");
  var zoomm=document.getElementById("zoom");
  if( (zoomm.style.visibility=="visible") && (zoomMode!="reload")){ZoomOut();return ;}
  zoomMode=null;
  root.style.visibility="hidden";
  zoomm.style.visibility="visible";
  document.getElementById("zoomdata").innerHTML=document.getElementById(id).innerHTML;
  //document.getElementById(id).innerHTML="";

}

function ZoomOut()
{
  zoomId=null;
  zoomMode=null;
  var root=document.getElementById("root");
  var zoomm=document.getElementById("zoom");
  document.getElementById("zoomdata").innerHTML="";
  root.style.visibility="visible";
  zoomm.style.visibility="hidden";

}



function sh(id)
{
   div=ge(id);
   if(id=='popup2'){PopupFullScreenState = false;}
   if(!div){alert("not "+id);return ;}
   if (div.style.display!="none" && div.style.display){div.style.display="none";}else{div.style.display="block";}
   return false;
}

function ge(str)
{
    return document.getElementById(str);
}

function sf(id)
{
   if(ge('htmlEdField_'+id))
   {   	    ge('htmlEdField_'+id).value = htmlEd.getValue();   }

   if(ge('cityListXX'))                        // for city list
   {   	  var cityV = MyCityList.exportValues();
   	  if(cityV.city){ge('cityListXX').value = cityV.city;}
   	  //alert(cityV.city);   }

   ge(id).submit();
}

var smilediv;
function csd(id)
{
   smilediv=id;
}

function pst(str)
{
   div=document.getElementById(smilediv);
   if(div){div.value+=" "+str;}
  // sh(smileblock);
}
var smileblock;                //block with smile img
function SetSmileDiv(id)
{
 smileblock=id;
}

function rand(a,b)
{
   return a+(b-a)*Math.random();
}
//---------------------ajax+--------------------
function Dark()
{
  if(!console){alert('не выбрана консоль');return ;}
  console.innerHTML="<div class=\"ajaxwall\">"+console.innerHTML+"</div>";
}

function shf(id)
{
   sh(id+'b');
   sh(id);
   return false;
}


function gd(id)
{
	var data2,data=document.getElementById(id);
	data2 = data.innerHTML;
	data.innerHTML = '';
	//alert(data2);
	return data2;
}

var popupFlag = false,winPopUp;
function newPopup(fromId,name,opt)
{
 var defW = 400;
 if(!opt)
 {
 	opt = new Object;
 	opt.width = 400;
 	opt.modal = false;
 }

 var winData = gd(fromId);
 if(!winData){return ;}

 if(popupFlag){winPopUp.my_hide();}

 winPopUp = new Ext.Window({
            title    : name,
            width    : opt.width,
            plain    : true,
            closable: true,
            draggable : true,
            modal:opt.modal,
            closeAction :'my_hide',
            fromId: fromId,
            html: winData,
            my_html:winData
        });

   winPopUp.my_hide = function()
   {
   	   var d = ge(this.fromId);
   	   var tid = this.id;
   	   tid = ''+tid+'';
   	   if(d){d.innerHTML = this.my_html;}
   	   this.close();
   	   popupFlag = false;               //!!!!!!!!
   }
        winPopUp.show();
        popupFlag = true;
}


function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function CityChoose()
{	if(ge('city_list').value==0)
	{		Ext.get('otherCityBox').show();
		Ext.get('otherCityField').focus();
	}else{		Ext.get('otherCityBox').setDisplayed('none');
		ge('otherCityField').value = '';	}}

function RefreshCaptchaImg()
{
  ge("regimg").src="../regimg.php?r="+Math.random();
}

function CheckCaptcha()
{	var s = ge('captchaStr').value;
    if(s.length!=5)
    {    	 MyAlert('Неверное количество символов кода! Пожалуйста, введите <b>5</b> символов, изображенных на картинке.');
    	 return ;
    }    goajax('captchaAjaxAnswer','pd_act=captchaCheck&captchaStr='+s);
}

function MyAlert(str)
{	Ext.MessageBox.show({
           msg: str,
           title: 'Информация',
           width:300,
           buttons: Ext.MessageBox.OK,
           icon: Ext.MessageBox.INFO
           //wait:true,
           //waitConfig: {interval:200},
           //icon:'ext-mb-download', //custom class in msg-box.html
           //animEl: 'mb7'
       });
}

function MyError(str)
{
	Ext.MessageBox.show({
           msg: str,
           title: 'Информация',
           width:300,
           buttons: Ext.MessageBox.OK,
           icon: Ext.MessageBox.ERROR
           //wait:true,
           //waitConfig: {interval:200},
           //icon:'ext-mb-download', //custom class in msg-box.html
           //animEl: 'mb7'
       });

}

function MyHide(id)
{
	Ext.get(id).hide({duration:1.5,callback:MyHideCallBack});
}

function MyHideCallBack(e)
{
	ge(e.id).style.display = 'none';
}