/*
document.write('<script language="javascript" type="text/javascript" src="/js/prototype.js"></script>');
document.write('<script language="javascript" type="text/javascript" src="/js/scriptaculous.js?load=effects"></script>');
document.write('<script language="javascript" type="text/javascript" src="/js/swfobject.js"></script>');
*/

function togleShowHide(id)
{
	var object = document.getElementById(id);
	if(!object) return;
	if(object.style.display=='none') {
		object.style.display='';
	}
	else {
		object.style.display='none';
	}
}



function toggleShowHide(id)
{
	togleShowHide(id);
}

function toggle_login_form()
{
	var div = $('div_login_form');
	/*
	if(div.getStyle('display')=='none') {
		div.setStyle({display: ''});
		if($('flashcontent')) $('flashcontent').setStyle({visibility: 'hidden'});
	}
	else {
		div.setStyle({display: 'none'});
		if($('flashcontent')) $('flashcontent').setStyle({visibility: ''});
	}
	*/
	if(div.getStyle('visibility')=='hidden') {
		div.setStyle({visibility: 'visible'});
		if($('flashcontent')) $('flashcontent').setStyle({visibility: 'hidden'});
	}
	else {
		div.setStyle({visibility: 'hidden'});
		if($('flashcontent')) $('flashcontent').setStyle({visibility: ''});
	}
	
}


function checkAll(form,prefix,check)
{
	var elements = $(form).getElements();
	var count = elements.length;
	var pfxlen = prefix.length;
	//alert(count);
	check = check?true:false;

	for(i=0;i<count;i++) {
			if(elements[i].type!='checkbox') continue;
			if(elements[i].name.substring(0,pfxlen)==prefix) elements[i].checked = check;
	}
		
    return true;
}


function switch_city(prefix,show)
{
	var elements = document.getElementsByTagName('div');
	var count = elements.length;
	var pfxlen = prefix.length;
	//alert(count);
	for(i=0;i<count;i++) {
			if(elements[i].id.substring(0,pfxlen)==prefix) elements[i].style.display = 'none';
	}
	var div = $(prefix+show);
	if(div) div.style.display = '';
		
    return true;
}

function flash_show_city(show)
{
	//alert(show);
	show = show.split('|');
	prefix = 'city_';
	
	var elements = document.getElementsByTagName('div');
	var count = elements.length;
	var pfxlen = prefix.length;
	//alert(count);
	for(i=0;i<count;i++) {
		if(elements[i].id.substring(0,pfxlen)==prefix) elements[i].style.display = 'none';
	}
	
	for(i=0;i<show.length;i++) {
		var div = $(prefix+show[i]);
		if(div) div.style.display = '';
	}
}


function popup(url,width,height) {
	if(!width) var width = '660';
	if(!height) var height = '400';
	window.open(url,'popup','scrollbars=0, resizable=1,scrollbars=yes, width='+width+', height='+height+' , top=40,left=100').focus();
}


/**
 * Надоели мне все эти аяксы-хуяксы... ни файл не отправить, нихуя.
 * Вот наш новый JS Framework Бля.
 */
var NAXCMS = {};

NAXCMS.AJAX = {};

NAXCMS.AJAX.sendForm =
function (params) {
// ! НЕ РЕАЛИЗОВАНО! params.ids_array - массив айдишников элементов которые нужно отправить
// ! НЕ РЕАЛИЗОВАНО! params.elements_array - возможно это сами элементы как объекты
// ! НЕ РЕАЛИЗОВАНО! params.data_array - ну или чистые данные
// params.container_id - ну или айдишник контэйнера в котором все эти элементы должны лежать
// params.action - путь куда отправлять
// params.onSuccess - путь куда отправлять
// params.onFailure - путь куда отправлять
//
	if(params.container_id!==null) {
	// если указан ID контейнера, перебираем все поля ввода в этом контэйнере
		//alert('Пытаюсь выбрать элементы из контэйнера '+params.container_id);
		params.elements_array = NAXCMS.getDOMBranch(params.container_id);
		//alert('Выбрано '+params.elements_array.length+' элементов');
	}
	else {
		//alert('Отправка форм пока работает только по ID контэйнера!');
	}
	
	// создаем IFrame куда будем сабмитить форму
	var body = document.getElementsByTagName('body')[0];
	var name = id = 'NAX_CMS_AJAX_IFRAME'+NAXCMS.AJAX.sendForm_counter;
	var iframe = (NAXCMS.BROWSER.isIE)? '<iframe name="'+name+'" id="'+id+'">' : 'iframe';
	//var iframe = 'iframe';
    iframe = document.createElement(iframe);
	iframe.setAttribute('name',name);
	iframe.setAttribute('id',id);
	//iframe.setAttribute('src','about:blank');
	iframe.style.position = 'absolute';
	iframe.style.left = '-10000px';
	iframe.style.top = '-100px';
	iframe.style.visibility = 'hidden';
	//iframe.style.width = '300px';
	//iframe.style.height = '300px';
	body.appendChild(iframe);
	//if (iframe.contentDocument) var iframe_document = iframe.contentDocument;
	//else if (iframe.contentWindow) var iframe_document = iframe.contentWindow.document;
	//else var iframe_document = iframe.document;
	//var html = iframe_document.createElement('html');
	//var body = iframe_document.createElement('body');
	
	// потом создаем форму
	var form = (NAXCMS.BROWSER.isIE)? '<form name="'+name+'" method="POST" enctype="multipart/form-data">' : 'form';
	var form = document.createElement(form);
	form.setAttribute('action',params.action);
	form.style.position = 'absolute';
	form.style.left = '-10000px';
	form.style.top = '-5000px';
	form.style.visibility = 'hidden';
	//alert(params.action);
	form.setAttribute('method','POST');
	form.setAttribute('target',name);
	form.setAttribute('enctype','multipart/form-data');
	form.setAttribute('name','NAX_CMS_AJAX_IFRAME_FORM'+NAXCMS.AJAX.sendForm_counter);
	form.setAttribute('id','NAX_CMS_AJAX_IFRAME_FORM'+NAXCMS.AJAX.sendForm_counter);
	var body = document.getElementsByTagName('body');
	body = body[0];
	body.appendChild(form);
	//iframe.document.innerHTML = '<html><body><form action="'+params.action+'" target="_self" method="post" id="NAX_CMS_AJAX_IFRAME_FORM'+NAXCMS.AJAX.sendForm_counter+'">';
	var len = params.elements_array.length;
	for(var i=0;i<len;i++) {
		var element = params.elements_array[i];
		if(element.name && element.type && (element.type!='file' || element.value!='') && (!element.disabled || element.disabled!='disabled')) {
			if(element.type=='checkbox' && !element.checked) continue;
			//alert(element.name+' '+element.type+' '+element.value);
			if(element.type=='file' && element.value!='') {
			// мы не можем просто так присвоить input file какое-то значение
			// придется отправить тот который видел юзер, а на его место поставить новый пустой
				var input = (NAXCMS.BROWSER.isIE)? '<input name="'+element.name+'" id="'+element.id+'">' : 'input';
				input = document.createElement(input);
				input.setAttribute('name',element.name);
				input.setAttribute('type',element.type);
				input.setAttribute('id',element.id);
				input.className = element.className;
				//input.style = element.style;
				element.parentNode.insertBefore(input,element);
				form.appendChild(element);
			} else {
				var input = document.createElement('input');
				input.setAttribute('name',element.name);
				if(element.type=='checkbox') input.setAttribute('type','hidden');
				else input.setAttribute('type',element.type);
				//input.setAttribute('value',element.value);
				input.value=element.value;
				//input.type=element.type;
				form.appendChild(input);
			}
		}
	}
	//iframe.document.innerHTML = iframe.document.innerHTML+'<input type="submit" /></form></body></html>';
	//alert(iframe_document.innerHTML);
	//var id = 'NAX_CMS_AJAX_IFRAME_FORM'+NAXCMS.AJAX.sendForm_counter;
	//alert(iframe.document.getElementById(id));
	//iframe.document.getElementById(id).submit();
	//alert(form+' '+form.hasChildNodes());
	//alert();
	form.submit();
	//iframe.setAttribute('onload',alert('BOO'));
	NAXCMS.AJAX.sendForm_counter++;

}
NAXCMS.AJAX.sendForm_counter = 0;


NAXCMS.getDOMBranch =
function (id,element,recurse) {
// рекурсивная функция получения ссылок на все элементы из ветви DOM
	
	if(id!==null) {
		NAXCMS.getDOMBranch_elements = [];
		NAXCMS.getDOMBranch_elements[0] = document.getElementById(id);
	}
	else {
		//alert('Добавляем элемент '+NAXCMS.getDOMBranch_elements.length);
		//NAXCMS.getDOMBranch_elements[NAXCMS.getDOMBranch_elements.length] = element;
	}
	
	var element = NAXCMS.getDOMBranch_elements[NAXCMS.getDOMBranch_elements.length-1];
	
	var len = element.childNodes.length;
	for(var i=0;i<len;i++) {
		if(element.childNodes[i] && element.childNodes[i].attributes) {
			//alert(element.childNodes[i].attributes);
			//alert(NAXCMS.getDOMBranch_elements.length);
			NAXCMS.getDOMBranch_elements[NAXCMS.getDOMBranch_elements.length] = element.childNodes[i];
			if(element.childNodes[i].hasChildNodes()) {
				NAXCMS.getDOMBranch(null,element.childNodes[i],true);
			}
		}
	}
	
	if(id!==null) {
		return NAXCMS.getDOMBranch_elements;
	}
}
NAXCMS.getDOMBranch_elements = [];


NAXCMS.showErrors =
function (errors) {
	if(!errors) return;
	//var len = errors.length;
	//alert(len);
	//if(!len) return;
	
	//NAXCMS.var_dump(errors);
	
	var div = document.createElement('div');
	div.className = 'errors_div';
	div.style.display = 'none';
	div.innerHTML = '<h1>Ошибка!<h1>'; 
	var dl = document.createElement('dl');
	div.appendChild(dl);
	
	//var len = 10;
	for(var i in errors) {
		//alert(errors[i]);
		if(!errors[i]) continue;
		//alert(errors[i][0]);
		//var tmp = document.createElement('dt');
		//tmp.innnerHTML = errors[i][0]+' ';
		//dl.appendChild(tmp);
		//var tmp = document.createElement('dd');
		//tmp.innnerHTML = errors[i][1]+' ';
		//dl.appendChild(tmp);
		dl.innerHTML = dl.innerHTML + '<dt>'+errors[i][0]+'</dt><dd>'+errors[i][1]+'</dd>';
		//alert(errors[i][0]);
	}
	
	//var butt = document.createElement('<input type="button" onclick="javascript:this.parentNode.parentNode.removeChild(this.parentNode);" value="Закрыть" />');
	div.innerHTML = div.innerHTML + '<input type="button" onclick="javascript:this.parentNode.parentNode.removeChild(this.parentNode);" value="Закрыть" />';
	
	var tmp = document.getElementsByTagName('body');	
	tmp[0].appendChild(div);
	div.style.left=(NAXCMS.mousePosition.x-200)+'px';
	div.style.top=(NAXCMS.mousePosition.y-200)+'px';
	div.style.display = '';
}



NAXCMS.mousePositionChange = 
function (e) {
	var x = 0, y = 0;
	
	if (!e) e = window.event;
	
	if (e.pageX || e.pageY)
	{
	x = e.pageX;
	y = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
	x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
	y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
	
	return {"x":x, "y":y};
}
document.onmousemove = function(e){ NAXCMS.mousePosition = NAXCMS.mousePositionChange(e); };


// Browser Detect  v2.1.6
// documentation: http://www.dithered.com/javascript/browser_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
function BrowserDetect() {
   var ua = navigator.userAgent.toLowerCase(); 

   // browser engine name
   this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

   // browser name
   this.isKonqueror   = (ua.indexOf('konqueror') != -1); 
   this.isSafari      = (ua.indexOf('safari') != - 1);
   this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
   this.isOpera       = (ua.indexOf('opera') != -1); 
   this.isIcab        = (ua.indexOf('icab') != -1); 
   this.isAol         = (ua.indexOf('aol') != -1); 
   this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); 
   this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isFirefox     = (ua.indexOf('firefox/') != -1 || ua.indexOf('firebird/') != -1);
   this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   
   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
   
   // rendering engine versions
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
   this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
   this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );
   
   // browser version
   this.versionMinor = parseFloat(navigator.appVersion); 
   
   // correct version number
   if (this.isGecko && !this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
   }
   else if (this.isOmniweb) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
   }
   else if (this.isOpera) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
   }
   else if (this.isIcab) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
   }
   
   this.versionMajor = parseInt(this.versionMinor); 
   
   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
   
   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin    = (ua.indexOf('win') != -1);
   this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac    = (ua.indexOf('mac') != -1);
   this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux  = (ua.indexOf('linux') != -1);
   
   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);
   
   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);
   
   this.isIE4xMac = (this.isIE4x && this.isMac);
}
NAXCMS.BROWSER = new BrowserDetect();


NAXCMS.dump = 
function (arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += NAXCMS.dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

NAXCMS.var_dump = 
function (arr) {
	alert(NAXCMS.dump(arr));
}