/**
* набор JS скриптов
*
*
*/

/// detect a special case of "web browser"
OMI_BrowserInfo = new Object();
OMI_BrowserInfo.is_ie = (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent));
OMI_BrowserInfo.is_ie5 = (OMI_BrowserInfo.is_ie && /msie 5\.0/i.test(navigator.userAgent));
OMI_BrowserInfo.is_opera = /opera/i.test(navigator.userAgent);
OMI_BrowserInfo.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/**
* call: MM_showHideLayers('name/id div', 0, 'show or hide')
*
*/
function MM_showHideLayers() { //v6.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
		obj.visibility=v; }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}	


function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
  var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    v=o.value;t=a[i+2];
    if (o.type=='text'||o.type=='password'||o.type=='hidden'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      if (t==1){ //fromto
        ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      } else if (t==2){
        rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
      } else if (t==3){ // date
        ma=a[i+1].split("#");at=v.match(ma[0]);
        if(at){
          cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          dte=new Date(cy,cm,cd);
          if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        }else{err=true}
      } else if (t==4){ // time
        ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      } else if (t==5){ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      } else if (t==6){ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      }
    } else
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* '+a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }else if (o.type=='textarea'){
      if(v.length<a[i+1]){err=true}
    }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert(s)}
  document.MM_returnValue = (s=='');
}

function OMI_openBrWindow(theURL,winName,features, IsDelay) { //v2.0
  if(OMI_BrowserInfo.is_ie && IsDelay)
	{
		var win = window.open(theURL,winName,features);
		setTimeout(function() { win.document.location.reload(); }, 50); // for IE
	}else
	{
		var win = window.open(theURL,winName,features);
	}
	win.focus();	
}

/**
*
*/
function OMI_keepNoFrames()
{
	if(top.location.href != self.location.href)
		top.location.href = self.location.href;
	return true;
}

// Functions used by text fiels to accept numbers only.
function IsDigit(evt)
{
	evt = (evt) ? evt : ((window.event) ? event : null );
	if(evt)
	{
		var iCode = (evt.keyCode || evt.which) ;
		
		evt.returnValue = 
			(
				( iCode >= 48 && iCode <= 57 )		// Numbers
				|| (iCode >= 37 && iCode <= 40)		// Arrows
				|| iCode == 8						// Backspace
				|| iCode == 46						// Delete
			) ;
			
		if(!evt.returnValue && !OMI_BrowserInfo.is_ie)
		{ 
			evt.preventDefault();
      //evt.stopPropagation();
		}
	}
}

function addEvent(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
};

function removeEvent(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
};


/**
* функция устанавливает значение value для Input, Radio, Select, CheckBox
*
*/
function OMI_setValue(obj, val)
{
  if(obj)
  {
    if(obj.length)
    {
      for(var i=0; i<obj.length; i++)
      {
        if(obj[i].type == 'radio')
        {
          obj[i].checked = (obj[i].value == val);
        }else
        if(obj.options)
        {
          obj.options[i].selected = (obj.options[i].value == val);
        }
      }
    }else
    {
      if(obj.type == 'checkbox')
				obj.checked = (obj.value == val);
			else
				obj.value = val;
    }
  }
}//\\OMI_setValue


function OMI_initSelectBox(AID, AOptions, AInitVal)
{
	var oSelBox = MM_findObj(AID);
	if(oSelBox)
	{
		// очищаем
		while(oSelBox.options.length > 0)
		{
			if(OMI_BrowserInfo.is_ie)
			 oSelBox.options.remove(0);
			else
				oSelBox.options[0] = null;
		}
		
		var bFirstSel = true;
		for(var key in AOptions)
		{
			var oOption = document.createElement("OPTION") ;
			oOption.value	= key;
			oOption.text = AOptions[key];
			oSelBox.options.add(oOption);		
			if(bFirstSel)
			{
				oOption.selected = bFirstSel;
				bFirstSel = false;
			}else
				oOption.selected = (key == AInitVal);
		}
	}
}


/**
* инициализирует общие пареметры панелей
* @param string AImgNodeClose путь до рисунка node-close
* @param string AImgNodeOpen путь до рисунка node-open
* @param string APrefixNodeName префикс имени рисунка node
* @param string APrefixPanelName префикс имени панели
*
* @return void
*/
function OMI_InitPanel(AImgNodeClose, AImgNodeOpen, APrefixNodeName, APrefixPanelName)
{
	PANEL_IMG_NODE_CLOSE = AImgNodeClose;
	PANEL_IMG_NODE_OPEN = AImgNodeOpen;
	PANEL_PREFIX_NODE_NODE = APrefixNodeName;
	PANEL_PREFIX_PANEL_NAME = APrefixPanelName;
	
	MM_preloadImages(PANEL_IMG_NODE_CLOSE, PANEL_IMG_NODE_OPEN);
}//\\OMI_InitPanel

/**
* скрывает/расскрывает панель и изменяет рисунок-node
* @param int AID id номер панели
*
* @return void
*/
function OMI_HideShowPanel(AID)
{
	var sImgID = PANEL_PREFIX_NODE_NODE+AID;
	var sPanelID = PANEL_PREFIX_PANEL_NAME+AID;
	
	var oImg = MM_findObj(sImgID);
	var oPanel = MM_findObj(sPanelID);

	if(oImg.src.indexOf(PANEL_IMG_NODE_CLOSE) != -1)
	{
		MM_swapImage(sImgID,'',PANEL_IMG_NODE_OPEN,1);
		//oImg.src = PANEL_IMG_NODE_OPEN;

		if(OMI_BrowserInfo.is_ie)
			oPanel.style.display = '';
		else
			oPanel.setAttribute('style', '', false);
	}else
	if(oImg.src.indexOf(PANEL_IMG_NODE_OPEN) != -1)
	{
		MM_swapImage(sImgID,'',PANEL_IMG_NODE_CLOSE,1);
		//oImg.src = PANEL_IMG_NODE_CLOSE;

		if(OMI_BrowserInfo.is_ie)
			oPanel.style.display = 'none';
		else
			oPanel.setAttribute('style', 'display: none;', false);
	}
	
	return true;
}//\\OMI_HideShowPanel

function doInit()
{
	OMI_InitPanel('img/node-close.png', 'img/node-open.png', 'imgPanel_', 'pnPanel_');
}
	