// <IT-Avenue>
var cmBrowser='';
if(/Gecko/.test(navigator.userAgent))cmBrowser='gecko';
else if(/Opera/.test(navigator.userAgent))cmBrowser='opera';
else if(/MSIE/.test(navigator.userAgent))cmBrowser='ie';
/** Common functions */
function gei(id){
	return document.getElementById(id);
}
function hide(obj){	
	obj.style.display='none';
}
function show(obj){
	obj.style.display='block';
}
function showId(id){
	gei(id).style.display='block';
}
function hideId(id){
	gei(id).style.display='none';
}
function isBlock(obj){
	if(obj.style.display=='block')return true;
	return false;
}
function toggle(obj){
	if(isBlock(obj)){
		hide(obj);
		return 0;
	}else{
		show(obj);
		return 1;
	}
}
function vis(obj){
	obj.style.visibility='visible';
}
function invis(obj){
	obj.style.visibility='hidden';
}
function isVis(obj){
	if(obj.style.visibility=='visible' || obj.style.visibility=='')return true;
	return false;
}

function unsetDefault(obj,value,className,type){
	if(obj.value==value||obj.value==''){
		obj.value='';
		//if(className) obj.className=className;
		if(className) removeClass(obj,className);
		if(type){
			if(cmBrowser=='ie'){ // for stupid ie
				var node=domCreate('input');
				node.type=type;
				node.value='';
				if(obj.name) node.name=obj.name;
				if(obj.id) node.id=obj.id;
				if(obj.className) node.className=obj.className;
				if(obj.style.cssText) node.style.cssText=obj.style.cssText;
				if(obj.title) node.title=obj.title;
				if(obj.maxlength) node.maxlength=obj.maxlength;
				if(obj.size) node.size=obj.size;
				if(obj.checked) node.checked=obj.checked;
				if(obj.onfocus) node.onfocus=obj.onfocus;
				if(obj.onblur) node.onblur=obj.onblur;
				if(obj.onclick) node.onclick=obj.onclick;
				if(obj.onchange) node.onchange=obj.onchange;
				obj.parentNode.replaceChild(node,obj);
				setTimeout(function(){node.focus();},10);
			}else{
				obj.type=type;
				obj.focus();
			}
		}
		return true;
	}else return false;
}
function setDefault(obj,value,className,type){
	if(obj.value==''){
		obj.value=value;
		//if(className) obj.className=className;
		if(className) addClass(obj,className);
		if(type){
			if(cmBrowser=='ie'){ // for stupid ie
				var node=domCreate('input');
				node.type=type;
				node.value=value;
				if(obj.name) node.name=obj.name;
				if(obj.id) node.id=obj.id;
				if(obj.className) node.className=obj.className;
				if(obj.style.cssText) node.style.cssText=obj.style.cssText;
				if(obj.title) node.title=obj.title;
				if(obj.maxlength) node.maxlength=obj.maxlength;
				if(obj.size) node.size=obj.size;
				if(obj.checked) node.checked=obj.checked;
				if(obj.onfocus) node.onfocus=obj.onfocus;
				if(obj.onblur) node.onblur=obj.onblur;
				if(obj.onclick) node.onclick=obj.onclick;
				if(obj.onchange) node.onchange=obj.onchange;
				obj.parentNode.replaceChild(node,obj);
				setTimeout(function(){node.blur();},10);
			}else{
				obj.type=type;
				obj.blur();
			}
		}
		return true;
	}else return false;
}
function loadScript(url){
	var head=document.getElementsByTagName('head')[0];
	var nodes=head.getElementsByTagName('script');
	var exists=false;
	for(var i=0;i<nodes.length;i++)
		if(nodes[i].getAttribute('src')==url)exists=true;
	if(!exists){
		var script=document.createElement('script');
		script.setAttribute('type','text/javascript');
		script.setAttribute('src',url);
		head.appendChild(script);
	}
}
function setOnclick(obj,func){
	if(cmBrowser=='ie')obj.onclick=new Function(func);
	else obj.setAttribute('onclick',func);
}
var js_tid=null;
function comWaitJs(func,action){
	if(typeof(this.window[func])=='undefined'){
		js_tid=setTimeout(function(){comWaitJs(func,action);},250);
	}else{
		if(js_tid)clearTimeout(js_tid);
		action();
	}
}
var id_tid=null;
function comWaitId(id,action){
	if(!gei(id)||typeof(gei(id))=='undefined'){
		id_tid=setTimeout(function(){comWaitId(id,action);},250);
	}else{
		if(id_tid)clearTimeout(id_tid);
		action();
	}
} 
function hasClass(elem,className){
	var re=new RegExp('(\\s|^)'+className+'(\\s|$)','g');
	if(elem.className && re.test(elem.className))return true;
	else false;
}
function addClass(elem,className){
	if(!hasClass(elem,className))
		elem.className+=(elem.className?' ':'')+className;
	return true;
}
function removeClass(elem,className){
	var re=new RegExp('(\\s|^)'+className+'(\\s|$)','g');
	if(elem.className)
		elem.className=elem.className.replace(re,'$1$2');
	return true;
}
function getOffsetSum(elem){
	var t=0,l=0;
	while(elem){
		t+=t+parseFloat(elem.offsetTop);
		l+=l+parseFloat(elem.offsetLeft);
		elem=elem.offsetParent;
	}
	return {t: Math.round(t), l: Math.round(l)};
}
function getOffsetRect(elem){
	var box=elem.getBoundingClientRect();
	var body=document.body;
	var docElem=document.documentElement;
	var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
	var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;
	var clientTop = docElem.clientTop || body.clientTop || 0;
	var clientLeft = docElem.clientLeft || body.clientLeft || 0;
	var t  = box.top +  scrollTop - clientTop;
	var l = box.left + scrollLeft - clientLeft;
	return {t: Math.round(t), l: Math.round(l)};
}
// получить позицию элемента (относительно страницы)
function getOffset(elem){
	if(elem.getBoundingClientRect){
		return getOffsetRect(elem);
	}else{
		return getOffsetSum(elem);
	}
}
// получить размеры элемента
function getSize(elem){
	var w=elem.offsetWidth;
	var h=elem.offsetHeight;
	return {w: Math.round(w), h: Math.round(h)};
}
// установить размеры элемента
function setSize(elem,size){
	elem.style.width=(size.w?size.w:size[0])+'px';
	elem.style.height=(size.h?size.h:size[1])+'px';
}
// установить позицию элемента
function setPosition(elem,pos){
	elem.style.top=(pos.t?pos.t:pos[0])+'px';
	elem.style.left=(pos.l?pos.l:pos[1])+'px';
}
// получить ширину документа
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 getDocumentWidth(){
	return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollWidth : document.documentElement.scrollWidth, getClientWidth());
}
// получить высоту документа
function getDocumentHeight(){
	return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getClientHeight());
}
function getBrowser(){
	var browser='';
	if(/Gecko/.test(window.navigator.userAgent))browser='gecko';
	else if(/Opera/.test(window.navigator.userAgent))browser='opera';
	else if(/MSIE/.test(window.navigator.userAgent))browser='ie';
	return browser;
}
function getBrowserVersion(){
	var browser=getBrowser();
	var version='';
	if(browser=='opera'){
		version=window.navigator.userAgent.substr(window.navigator.userAgent.indexOf('Opera')+6,4);
	}else if(browser=='gecko'){
		version=window.navigator.userAgent.substr(window.navigator.userAgent.indexOf('Gecko')+6,8)+ ' ('+ window.navigator.userAgent.substr(8,3) + ')';
	}else if(browser=='ie'){
		version=parseInt(window.navigator.userAgent.substr(window.navigator.userAgent.indexOf('MSIE')+5,3));
	}else{
		version=window.navigator.appName;
	}
	return version;
}
function isIe6(){
	var browser=getBrowser();
	var version=getBrowserVersion();
	return (browser=='ie'&&version=='6');
}
inArray=Array.prototype.indexOf?
	function(arr,val){
		return arr.indexOf(val)!=-1;
	}:
	function(arr,val){
		var i=arr.length;
		while(i--){
			if(arr[i]==val)return true;
		}
		return false;
	}

function evalScripts(html){
	var tempNode=domC('div');
	tempNode.innerHTML=html;
	for(i in tempNode.childNodes){
		var node=tempNode.childNodes[i];
		if(node.tagName && node.tagName.toLowerCase()=='script'){
			eval(node.innerHTML);
		}
	}
}

// отправка данных ajax
function ajaxSendData(fields,url,action,elementId){
	var exchanger = new Ajax();
	if(typeof(action)=='function'){
		exchanger.onLoaded=action;
	}else{
		if(action) exchanger.resultAction=action;
		if(elementId) exchanger.resultElementId=elementId;
	}
	exchanger.sendData(fields,url);
}
// отправка формы ajax
function ajaxSendForm(form,iframe,url,action,elementId){
	var exchanger = new Ajax();
	if(typeof(action)=='function'){
		exchanger.onLoaded=action;
	}else{
		if(action) exchanger.resultAction=action;
		if(elementId) exchanger.resultElementId=elementId;
	}
	exchanger.sendForm(form,iframe,url);
}

// MESSAGES
function msgSetWait(node,text,displayType){
	if(!text)text='Подождите, идет загрузка...';
	if(!displayType)displayType='block';
	var waitNode=domC(displayType=='inline'?'span':'div','wait',text);
	domAP(waitNode,node);
	return waitNode;
}
function msgSetError(node,text,displayType){
	if(!text)return false;
	if(!displayType)displayType='block';
	var errorNode=domC(displayType=='inline'?'span':'div','error',text);
	domAP(errorNode,node);
	return errorNode;
}
function msgSetMessage(node,text,displayType){
	if(!text)return false;
	if(!displayType)displayType='block';
	var messageNode=domC(displayType=='inline'?'span':'div','message',text);
	domAP(messageNode,node);
	return messageNode;
}
function msgSetSuccess(node,text,displayType){
	if(!text)return false;
	if(!displayType)displayType='block';
	var successNode=domC(displayType=='inline'?'span':'div','success',text);
	domAP(successNode,node);
	return successNode;
}
function msgUnset(node,msgTypes){
	if(!msgTypes)msgTypes=new Array('wait','error','message','success');
	var tempNode=node;
	var removingNodes=new Array();
	while(tempNode=domPN(tempNode)){
		if(inArray(msgTypes,tempNode.className)){
			removingNodes.push(tempNode);
		}
	}
	if(removingNodes){
		for(var i=0;i<removingNodes.length;i++){
			domD(removingNodes[i]);
		}
	}
}
