// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var Preloader = {
	show: function(target, element)
	{
		element = element == null ? 'preloader' : element;
		this.element = $(element);
		if (this.element == null) return;
		target = (target == null) ? window.document : $(target);
		//var pos = target.cumulativeOffset();
		var viewport = target.viewport.getDimensions();
		var height = viewport.height / 2;
		var img = this.element.down('img');
		if (img) img.style.marginTop = (height - 5) + 'px';
		
		var client = window.innerHeight || document.documentElement.clientHeight;
    var full = document.documentElement.scrollHeight;
    var top = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
		
		this.element.style.left = "0px";
		this.element.style.top = "0px";
		this.element.style.width = viewport.width + 'px';
		this.element.style.height = full + 'px';	
		this.element.show();
	},
	hide: function(element)
	{
		element = element == null ? 'preloader' : element;
		this.element = $(element);
		if (this.element == null) return;
		
		this.element.hide();
		this.element.style.left = '0px';
		this.element.style.top = '0px';
	},
	is_enable: function()
	{
		return (document.getElementById('preloader') != null);
	}
};

MonteCarloAjaxCnt = {activeRequestCount:0};
Ajax.Responders.register({
    onCreate: function(ajax) {
    	if(ajax.options.invisible) return; 
    
    	MonteCarloAjaxCnt.activeRequestCount++;
    	if(MonteCarloAjaxCnt.activeRequestCount == 1)
    	{
    		Preloader.show();
      }
    },
    onComplete: function(ajax) {
    	if(ajax.options.invisible) return;
    
    	MonteCarloAjaxCnt.activeRequestCount--;
      if(MonteCarloAjaxCnt.activeRequestCount == 0)
    	{
        Preloader.hide();
      }
    }
});

var Message = {
	show: function(element)
	{
		this.timeout = 50000;
		element = $(element);
		this.message_box = $('message_form');
		var pos = this.getElementPosition(element);
		var height = this.getObjectHeight(element);
		var frame = $('frame');
		
		if (frame != null) 	pos.top -= frame.scrollTop;
		
		this.message_box.style.left = pos.left + 'px';
		this.message_box.style.top = (pos.top + height) + 'px';
		this.message_box.show();
	},
	
	text: function(value)
	{
		this.message_box_content = $('message_form_content');
		this.message_box_content.innerHTML = value;
		this.start_timeout();
	},
  
  scroll: function()
  {
  	var _left = 0
  	var _top = 0;
  	
		if (window.opera)
		{
			_left += document.documentElement.scrollLeft;
			_top += document.documentElement.scrollTop;
		}
		else if (window.event)
		{
			_left += document.documentElement.scrollLeft + document.body.scrollLeft;
			_top += document.documentElement.scrollTop + document.body.scrollTop;
		}
		else
		{
			_left += window.scrollX;
			_top += window.scrollY;
		}
		
		return {left:_left, top:_top};
  },
  
  hide: function()
  {
  	Element.hide(this.message_box);
  	this.text('<div class="wait"><img src="/images/load.gif"/>Зачекайте, будь ласка...</div>');
  	this.stop_timeout();
  },
  
  stop_timeout: function()
	{
		if (document.body.getAttribute("hide_message_time_out") != null)
		{
			this.clear_timeout("hide_message_time_out");
		}
	},

	start_timeout: function()
	{
		this.clear_timeout("hide_message_time_out");
		this.eventHide = this.hide.bindAsEventListener(this);
		document.body.setAttribute("hide_message_time_out", window.setTimeout(this.eventHide, this.timeout));
	},

	clear_timeout: function(oAttribute)
	{
		var id = document.body.getAttribute(oAttribute);
		if (id !=null){ window.clearTimeout(id);	}
		document.body.removeAttribute(oAttribute);
	},
  
  getElementPosition: function(obj) 
  {
			if (typeof(obj) == 'string')
			{
				var offsetTrail = document.getElementById(obj);
	    }
	    else
	    {
				var offsetTrail = obj;
	    }
	    
	    var offsetLeft = 0;
	    var offsetTop = 0;
	   
	    while (offsetTrail) 
	    {
	        offsetLeft += offsetTrail.offsetLeft;
	        offsetTop += offsetTrail.offsetTop;
	        offsetTrail = offsetTrail.offsetParent;
	    }
	    if (navigator.userAgent.indexOf("Mac") != -1 && 
	        typeof document.body.leftMargin != "undefined") 
	    {
	        offsetLeft += document.body.leftMargin;
	        offsetTop += document.body.topMargin;
	    }
    
    	return {left:offsetLeft, top:offsetTop};
  },
  
  getObjectWidth: function(elem)  
  {
    var result = 0;
    if (elem.offsetWidth) {
        result = elem.offsetWidth;
    } else if (elem.clip && elem.clip.width) {
        result = elem.clip.width;
    } else if (elem.style && elem.style.pixelWidth) {
        result = elem.style.pixelWidth;
    }
    return parseInt(result);
  },
  
  getObjectHeight: function(elem)  
  {
    var result = 0;
    if (elem.offsetHeight) {
        result = elem.offsetHeight;
    } else if (elem.clip && elem.clip.height) {
        result = elem.clip.height;
    } else if (elem.style && elem.style.pixelHeight) {
        result = elem.style.pixelHeight;
    }
    return parseInt(result);
  }
}

function sub_menu(event)
{
	var element = Event.element(event);
	var link = (element.tagName == 'A') ? element : element.up('a');
	var ul = element.up('ul');
	var links = ul.select('a');
	for(var i = 0; i < links.length; i++)	{ links[i].className = ''; }
	link.className = 'active';
}

function set_menu(event)
{
	var element = Event.element(event);
	var menu = $('menu');
	
	var question = menu.down('a.questionAct');
	var enter = menu.down('a.enterAct');
	var registr = menu.down('a.registrAct');
	var home = menu.down('a.homeAct');
	
	if (question) question.className = "question";
	if (enter) enter.className = "enter";
	if (registr) registr.className = "registr";
	if (home) home.className = "home";
	
	var links = menu.down('ul.top-menu').select('a');
	for(var i = 0; i < links.length; i++)	{ links[i].removeClassName('act'); }
	 
	if(element.parentNode && element.parentNode.id == 'menu')
	{
		element.className += "Act";
	}
	else if(!element.hasClassName('act'))
	{
		element.addClassName('act');
	}
	
	location.replace('#:page=' + element.readAttribute('href'));
}

function exTree(node)
{
	var li = $(node).up("ul");
	var uls = li.select('ul');
	mode = (node.className == 'minus')
	
	for(var i = 0; i < uls.length; i++)
	{
		if (mode)	{uls[i].hide();} else {uls[i].show();}
	}
	node.className = (mode) ? 'plus' : 'minus';
}
function set_smoking(value)
{
	//alert('set_smoking')
	//{ expires : 6, expires_unit : "months"}
	var obj = new wp_Cookie();
	obj.set("smoking", value);
	
}
function is_smoking()
{
	var obj = new wp_Cookie();
	var value = parseInt(obj.get("smoking"));
	set_smoking(value);
	return value == 1;
}
var MessageSmoking = {
	show: function()
	{
		this.element = $('smoking-ask');
		
		var viewport = window.document.viewport.getDimensions();
		//var height = viewport.height / 2;
		this.element.show();
		Preloader.show(window.document, 'preloader');
		var ask = $('preloader');
		var pos = ask.getDimensions();
		var scroll = window.document.viewport.getScrollOffsets();
		this.element.style.left = (viewport.width / 2 - this.element.getWidth() / 2) + "px";
		this.element.style.top = (scroll.top + 180) + "px";
	},
	hide: function()
	{
		this.element = $('smoking-ask');
		this.element.style.left = "0px";
		this.element.style.top = "0px";
		this.element.hide();
		Preloader.hide('preloader');
	},
	is_enable: function()
	{
		return (document.getElementById('smoking-ask') != null);
	}
};

function fixPNG(element)
{
  if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
  {
    var src;
	
    if (element.tagName=='IMG'||element.tagName=='INPUT')
    {
      if (/\.png$/.test(element.src))
      {
        src = element.src;
        element.src = "/images/blank.gif";
      }
    }
    else
    {
      src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
      if (src)
      {
        src = src[1];
        element.runtimeStyle.backgroundImage="none"; //убираем фоновое изображение
      }
    }
    if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')";
  }
} 

function popup_scroll(path, width, height) {
    window.open(path, "_blank", "width=" + width + ", height=" + height + "");
    return false;
}

function popup(path, width, height) {
	//console.log(path);
    window.open(path, "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=no, copyhistory=no, scrollbars=no, width=" + width + ", height=" + height + "");
    return false;
}


var CodeForm = {
	show: function(target, element)
	{
		this.element = $('code_window_bg');
		if (this.element == null) return;
		
		var viewport = window.document.viewport.getDimensions();
		//var height = viewport.height / 2;
		//var img = this.element.down('img');
		//if (img) img.style.marginTop = (height - 5) + 'px';
		
		var client = window.innerHeight || document.documentElement.clientHeight;
	    var full = document.documentElement.scrollHeight;
	    var top = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
		
	    this.element.style.display='block';
		/*this.element.style.left = "0px";
		this.element.style.top = "0px";*/
		this.element.style.width = viewport.width + 'px';
		this.element.style.height = full + 'px';	
		//this.element.show();
		
		this.inner_element = $('code_window');
		this.inner_element.style.display='block';
		this.inner_element.style.top=(viewport.height / 2 - this.inner_element.getHeight() / 2) + "px";
		this.inner_element.style.left=(viewport.width / 2 - this.inner_element.getWidth() / 2) + "px";
		
	},
	hide: function()
	{
		this.element = $('code_window_bg');
		if (this.element == null) return;
		
		//this.element.hide();
		this.element.style.display='none';
		this.element.style.left = '0px';
		this.element.style.top = '0px';
		
		this.inner_element = $('code_window');
		this.inner_element.style.display='none';
		this.inner_element.style.top = '-500px';
		this.inner_element.style.left = '-500px';
	}
}

function addOptionsSubThemes(optionList, SubTheme)
{
	removeOptions(SubTheme);  // clear out the options
	objOption=document.createElement("option");
	objOption.innerHTML = '';
	objOption.value = '';
	SubTheme.appendChild(objOption);
	for (var i=0; i < optionList.length; i++) {
		objOption=document.createElement("option");
		objOption.innerHTML = optionList[i].text;
		objOption.value = optionList[i].value;
		SubTheme.appendChild(objOption);
	}
}

function removeOptions(option)
{
	option.disabled = true;
	for (var i=0; i < option.options.length; i++){
		if (option.options[i].value!=''){
			option.options[i] = null;
		} 
	}
	option.innerHTML='';
}

function loadSubThemes(SubTheme,el_id){
	var url = '/feedback/themes.html?cat_id='+SubTheme;
	if (SubTheme) {
		var ajxObj = createAjxObj();
		ajxObj.onreadystatechange = function() { 
			if (ajxObj.readyState == 4) {
				if (ajxObj.status == 200) {
					data_subt=ajxObj.responseText.evalJSON();
					addOptionsSubThemes(data_subt,el_id);
					el_id.disabled = false;
				}
	    	}
		}
		ajxObj.open("GET", url, true);
		ajxObj.send(null);
	}
}


function GetSubThemes(el,theme_id){
	SubTheme = $(el);
	removeOptions(SubTheme);
	loadSubThemes(theme_id,SubTheme);
	if (!theme_id) SubTheme.disabled = true;
}