var isDOM=document.getElementById; //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
var isOpera5=window.opera && isDOM //Opera 5+
var isOpera6=isOpera && window.print; //Opera 6+
var isOpera7=isOpera && document.readyState; //Opera 7+
var isOpera=(isOpera5||isOpera6||isOpera7);
var isMSIE=document.all && document.all.item && !isOpera; //Microsoft Internet Explorer 4+
var isMSIE5=isDOM && isMSIE; //MSIE 5+
var isNetscape4=document.layers; //Netscape 4.*
var isMozilla=isDOM && navigator.appName=="Netscape"; //Mozilla ????????? Netscape 6.*
var active_nick;
var context_menu_active=0;
var mouse_on_nick=0;
var menu_type='user';
var Menu_timeout=1000;
var menu_item=false;
var drop_menu_timeout=false;
var launch_next_menu=1;
var menu_param_keys=false;
var menu_param_values=false;
var delayhide=false;
var update_menu=1;
var portal_url = 'http://www.tutu.ru/';

var comby_loaded=false;
window.onload = combyOnLoad;
function combyOnLoad(e) {
	//onloadH(e);
	comby_loaded = true;
}

/***********************************************
* Drop Down Menu
***********************************************/
var menuwidth='100px' //default menu width
var menubgcolor='#FFF6E5'  //menu bgcolor
var disappeardelay=250  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="no" //hide menu when user clicks within menu?

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="display:none;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype)
{
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl.offsetParent)
	{
		totaloffset+=(offsettype=="left")?parentEl.offsetLeft : parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}


function showhide(menucontents, obj, event_type, visible, hidden, menuwidth, gettype)
{
	if(update_menu)
	{
		if (gettype == 'ajax')
		{
	  	dropmenuobj.innerHTML = '<a><img src="'+portal_url+'img/indicator.gif" align="absmiddle">&nbsp;&nbsp;'+str_loading+'</a>';
	  	if (!window.XMLHttpRequest && !window.ActiveXObject)
	  		return true;
	  	getmenuhtml(menucontents, menu_param_keys, menu_param_values);
		}
		else
		{
	  	populatemenu_js(menucontents, menu_param_keys, menu_param_values);
		}
		if(obj===false)
			obj=dropmenuobj.style;
		if (ie4||ns6)
			obj.left=obj.top="-500px";
		if (menuwidth!="")
		{
			dropmenuobj.widthobj=dropmenuobj.style
			dropmenuobj.widthobj.width=menuwidth
		}
		if (event_type=="click" && obj.visibility==hidden || event_type=="mouseover")
		{
			update_menu=0;
			obj.visibility=visible;
		}
		else if (event_type=="click")
		{
			context_menu_active=0;
			update_menu=1;
			obj.visibility=hidden;
		}

		dropmenuobj.x=getposOffset(menu_item, "left");
		dropmenuobj.y=getposOffset(menu_item, "top");
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(menu_item, "rightedge")+"px";
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(menu_item, "bottomedge")+menu_item.offsetHeight+"px";
	}

}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function getmenuhtml(menucontents, param_keys, param_values)
{
  var URL="/ajax2/?Action="+menucontents; //+"&service_name="+service_name;
  var param_keys
  var param_values

  if (param_keys.length)
    for (i=0;i<param_keys.length;i++)
      URL=URL+"&"+param_keys[i]+"="+param_values[i]

	LoadData(URL,"populatemenu_ajax","menu");
  return;
}

function populatemenu_js(what, param_keys, param_values)
{
  if (ie4||ns6)
  if (what!="undefined") {
    menu_html=what.join("")
    if (param_keys.length)
      for (i=0;i<param_keys.length;i++)
        menu_html=menu_html.replace(new RegExp("%"+param_keys[i]+"%", "gim"), param_values[i]);

    dropmenuobj.innerHTML=menu_html
  }
}

function populatemenu_ajax()
{
  RequestIndex=FindRequest("menu");
//  alert(RequestIndex);
  if (RequestIndex!==false) {
  	// only if reg shows "complete"
    if (RequestStack[RequestIndex].Request.readyState == 4)
    {
  		// only if "OK"
  		if (RequestStack[RequestIndex].Request.status == 200)
  		{
  			// ...processing statements go here...
  			if (RequestStack[RequestIndex].Request.responseText == null) return false;
  			dropmenuobj.innerHTML=RequestStack[RequestIndex].Request.responseText;
        UnsetRequest("menu");
        return true;
  		}
  	}
  }
  return false;
}

function dropdownmenu(menucontents, obj, e, gettype, param_keys, param_values, menuwidth)
{
	context_menu_active=1;
	launch_next_menu=0;
	menu_item=obj;
	if (window.event)
		event.cancelBubble=true;
	else if (e.stopPropagation)
		e.stopPropagation();
	clearhidemenu();
	menu_param_keys=param_keys;
	menu_param_values=param_values;
	dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv;
	if (ie4||ns6)
	{
		if(e.type=='click')
			showhide(menucontents, false, e.type, "visible", "hidden", menuwidth, gettype);
		else
			drop_menu_timeout=setTimeout('showhide("'+menucontents+'", '+false+', "'+e.type+'", "visible", "hidden", "'+menuwidth+'", "'+gettype+'")',Menu_timeout);
	}
	return clickreturnvalue();
}

function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

function hidemenu(e)
{
	context_menu_active=0;
	if(!mouse_on_nick)
 		show_hide_arrow(false,0,menu_type);
	if (typeof dropmenuobj!="undefined")
	{
		if (ie4||ns6)
		{
			dropmenuobj.style.visibility="hidden";
			update_menu=1;
		}
	}
}

function delayhidemenu()
{
	if (ie4||ns6)
	{
		delayhide=setTimeout("hidemenu()",disappeardelay);
		launch_next_menu=1;
	}
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

function show_hide_arrow(obj,type,whom)
{
	if(type)
	{
		if(active_nick!=obj)
			update_menu=1;
//		alert('active=' + active_nick+ 'menu_type='+menu_type);
		if(active_nick)
			show_hide_arrow(active_nick,0,menu_type);
		active_nick=obj;
		clearTimeout(delayhide);

	}
	clearTimeout(drop_menu_timeout);
	if(!whom)
		whom='user';
	menu_type=whom;
	var class_type=(whom=='user')?'usernav':'communitynav';
	var class_name=(type)?'m-'+class_type+'-active':'m-'+class_type;
	if(active_nick)
		active_nick.className=class_name;
}
/***********************************************
* Menu Script ends here
***********************************************/

function repeat_changed(id_pefix)
{
	var obj=document.getElementById(id_pefix+'repeat');
	var radio=document.getElementsByName(id_pefix+'position');
	for(var i=0;i<radio.length;i++)
	{
		if(obj.value=='repeat')
		{
			radio[i].disabled=true;
			continue;
		}
		if(obj.value=='repeat-x')
		{
			switch(radio[i].value)
			{
				case 'top left':
				case 'center left':
				case 'bottom left':
					radio[i].disabled=false;
					break;
				default:
					radio[i].disabled=true;
					break;
			}
			continue;
		}
		if(obj.value=='repeat-y')
		{
			switch(radio[i].value)
			{
				case 'top left':
				case 'top center':
				case 'top right':
					radio[i].disabled=false;
					break;
				default:
					radio[i].disabled=true;
					break;
			}
			continue;
		}
		radio[i].disabled=false;
		continue;
	}
}

/***********************************************
* Additional functions
***********************************************/
function jsTrim(str){
	return str.replace(/^\s+/,'').replace(/\s+$/,'')
}

function js_in_array(what, arr){
  var i;
  if (!arr.length)
    return false;

  for(i in arr){
    if (arr[i].toLowerCase() == what.toLowerCase()){
      return true;
    }
  }
  return false;
}

function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function moveCaretToStart(inputObject)
{
  if (inputObject.createTextRange)
  {
   var r = inputObject.createTextRange();
   r.collapse(true);
   r.select();
  }
}

function moveCaretToEnd(inputObject)
{
  if (inputObject.createTextRange)
  {
   var r = inputObject.createTextRange();
   r.collapse(false);
   r.select();
  }
}


function getPageScroll()
{
	var yScroll = 0;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	return yScroll;
}


function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}



function hideSelect(obj,form,type)
{
	if(Moz)
		return;
	if(type==1)
		var show='hidden';
	else
		var show='visible';
//	var form=document.all.appearance_form;
	var left=obj.offsetLeft;
	var top=obj.offsetTop;
	var obj1=obj;
	while(obj1.offsetParent){
		top+= obj1.offsetParent.offsetTop;
		left+= obj1.offsetParent.offsetLeft;
		obj1 = obj1.offsetParent;
	}
	var bottom=top-(-obj.scrollHeight);
		var right=left-(-obj.scrollWidth);
	for(var i=0;i<form.elements.length;i++)
	{
		if(form[i].type=='select-one')
		{
			fl=form[i].offsetLeft;

			ft=form[i].offsetTop;
			obj1=form[i];
			while(obj1.offsetParent){
				ft+= obj1.offsetParent.offsetTop;
				fl+= obj1.offsetParent.offsetLeft;
				obj1 = obj1.offsetParent;
			}
			fb=ft-(-form[i].scrollHeight);
			fr=fl-(-form[i].scrollWidth);
//			alert(left+","+top+"  "+right+","+bottom+"\n"+fl+","+ft+"  "+fr+","+fb);
//			alert(ft+","+bottom+"  "+fb+","+top+"  "+fl+","+right+"  "+fr+","+left);
			if(ft<bottom && fb>top && fl<right && fr>left)
			{
				form[i].style.visibility=show;
			}
		}
	}
}

function coCheckEmail(email){
	var emailTest = "^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z_-]+\\.)+[a-z]{2,4}$";
	var regex = new RegExp(emailTest);
	if (!regex.test(email) || !(email.length > 0))
		return false;

	return true;
}