var nowSection = null;

var preloader = {
	
	show : function () {
		pageState('index');
	},
	
	hide : function () {
		pageState('second');
	}

}

var LoaderData = function(section, params, isPost) {

	var callback = function(data, status){

		if (data == null) {
			pageState('index');
			return;
		}
		else {

			pageTracker._trackPageview(_root + section);

			$('#contentOuter').html(data);
			reinitLinks('contentOuter');
			preloader.hide();
			
		}
		
		
		nowSection = section;
		return;
		
	}

	if (!section) {
		callback(null);
		return;
	}
	
	preloader.show();

	if (!params) {
		params = {};
	}
	params['ajax'] = 1;

	if(isPost) {
		$.post(section, params, callback);
	}
	else {
		$.get(section, params, callback);
	}

	return false;
	
}



function GetContent(section, params, isPost) {

	if (params || isPost) {
		LoaderData(section, params, isPost);
	}
	else {
		
		section = section.split(_root);
		section = section[1];
		if(!section) {
			section = '#';
		}
		historyPage.GoTo(section);
		return false;
	}
}


function reinitLinks(idBody) {

	setEventsFormElement( $('body')[0] );
	
	$('#' + idBody + ' A').each(
		function() {
			
			var regExp = {
				doc: new RegExp('.*\.doc', 'i'),
				xls: new RegExp('.*\.xls', 'i'),
				jpg: new RegExp('.*\.jpg', 'i'),
				gif: new RegExp('.*\.gif', 'i'),
				png: new RegExp('.*\.png', 'i')
			};
			
			for (var item in regExp) {
				if(regExp[item].test($(this).attr('href'))) {
					return;
				}
			}
			
			if ($(this).attr('target') == '_blank' || $(this).is('.no_ajax')) {
				return;		
			}
			
			$(this).click(function() {
				GetContent(this.href);
				return false;
			});
		}
	);
	
	$('form').each(function () {
		
		if ($(this).attr('onsubmit')) {
			return;
		}
		else {
			$(this).attr('onsubmit', 'return PostForm(this)');
		}
		
	});
}

function submit_search(link_search, text) {

	GetContent(link_search, {searchtext: text});
	$('.inputbox').val(text);
	
	return false;

}

function PostForm(form, onlyGet) {

	var json = {};

	$('input', form).each(function() {
		
		if (($(this).attr('type') == 'radio' || $(this).attr('type') == 'checkbox') && $(this).attr('checked')) {
			json[$(this).attr('name')] = $(this).val();
		}
		else if (($(this).attr('type') == 'radio' && $(this).attr('type') == 'checkbox')) {
			json[$(this).attr('name')] = $(this).val();
		}
		
		
	});
	
	$('textarea', form).each(function() {
		json[$(this).attr('name')] = $(this).val();
	});
	
	$('button', form).each(function() {
		json[$(this).attr('name')] = $(this).text();
	});
	
	$('select', form).each(function() {
		json[$(this).attr('name')] = $(this).val();
	});
	
	
	GetContent(nowSection, json, onlyGet ? false : true);
	
	return false;
}

function PostDelivery(f) {
	
	if (f.email.value && f.charset.value) {
			w=window.open('', 'feedback','height=160,width=220,maximize=0,minimize=0,center=1,resizable=0,status=0,top=200,left=300');
			w.focus();
			f.action = nowSection;
	}
	else{
		alert('Пожалуйста, заполните адрес электронной почты');
		return false;
	}

	return true;
	
}

function initMapLink() {
	$("#intmap").click( function() { 
		var date = new Date();

		w=window.open('','','width=950,height=550,toolbar=0,scrollbars=0,resizable=no');
		w.document.open();
		w.document.write('<html><head><title>Жилой квартал «Московский»</title><meta http-equiv=Content-Type content="text/html; charset=windows-1251"></head>');
		w.document.write('<body bgcolor=white marginwidth=0 marginheight=0 topmargin=0 leftmargin=0><table width=100% height=100% border=0 cellspacing=0 cellpadding=0><tr><td align=center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="950" height="550" id="miskMap_950x550_3" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+_root+'public/flash/map/miskMap_950x550_3.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="flashVars" value="flashvarXmlFile='+_root+'public/flash/map/data.xml?date='+date+'" /><embed src="'+_root+'public/flash/map/miskMap_950x550_3.swf" quality="high" flashvars="flashvarXmlFile='+_root+'public/flash/map/data.xml?date='+date+'" bgcolor="#ffffff" width="950" height="550" name="miskMap_950x550_3" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></td></tr></table></body></html>');
		w.document.close();
		w.focus();

		return false;
		
	} );
}



/**
 * Функция для фикса бага с формами в IE6
 * при перезагрузки флэшки-пустышки пропадает фокус из поля
 */
var setEventsFormElement = function ( parent ) {
	
	if ( browser.isIE && navigator.appVersion.match('6') == 6 ) {
		
		var array = new Array();
		
		var funcFocus = function ( ) {
			
			historyPage.StopDisplatch();

		}
		
		var funcBlur = function ( ) {
			
			historyPage.StartDispatch();
			
		}
		
		// назначаем обработчик для input type="text"
		var element = parent.getElementsByTagName('input');
		
		for ( var i=0, length=element.length; i<length; i++ ) {
			
			if ( element[i].type == 'text' ) {
				
				element[i].onfocus = funcFocus;
				element[i].onblur = funcBlur;
				
			}
			
		}
		
		// назначаем обработчик для textarea
		var element = parent.getElementsByTagName('textarea');
		for ( var i=0, length=element.length; i<length; i++ ) {
			
			element[i].onfocus = funcFocus;
			element[i].onblur = funcBlur;

		}
		
	}
	
}
