//Cufon.replace('*.yanus, #menu1, #contents div.submenu li span');

$(document).ready(function(){
	if($.browser.msie && $.browser.version<=6){
		var $main_td=$(document.createElement('td')).attr({id:'mainTd'}).
			appendTo($(document.createElement('tr')).
				appendTo($(document.createElement('table')).attr({id:'mainTbl'}).
					appendTo('body')));
		$('body').css({position:'absolute',width: '100%',height: '100%'}).children('div').appendTo($main_td);
		$('html').css({position:'static',width: '100%',height: '100%'});
	}
	C.init();
})

var C={
	init: function(){
//		Cufon.now();
		C.whois.init();
		C.photoalbum.init();
		C.other.style();
	},
	whois: {
		zones_checked: null,
		init: function(){
			$('#whoisForm').bind('submit',function(evt){
				evt.preventDefault();
				C.whois.showStat({draw:false});
				var domain=$(this).find('span.txt input')[0].value;
				if(C.whois.last_domain_query && C.whois.last_domain_query==domain){
					return;
				}else{
					C.whois.last_domain_query=domain;
					var success_function=function(json){
						var d2=new Date();
						var mls=d2.getTime() - d1.getTime();
						mls=(mls<1000)?(1000-mls):0;
						C.whois.show_stat_json=json;
						setTimeout('C.whois.showStat({draw:true})',mls);
					}
					C.whois.emptyStat();
					var d1=new Date();
					$.ajax({
						type: 'GET',
						url: '/__scripts/whois_all.php',
						dataType: 'json',
						data: {d:domain,a:'whois'},
						success: success_function
					});
				}
			})
			$('#domainApplyForm').bind('submit',function(evt){
				evt.preventDefault();
				// проверяем, все ли поля заполнены
				var fields_not_empty=true;
				var $fields=$(this).find('div.fields');
				var fields_data='user_name user_phone user_email';
				var form_data={};
				for(var i=0; i<fields_data.split(' ').length; i++){
					var f_name=fields_data.split(' ')[i];
					var $field=$fields.find('input[name='+f_name+']');
					if(!$.trim($field[0].value)){
						fields_not_empty=false;
						$field.evSwitchField('не заполнено');
					}else if(f_name=='user_email' && !$.evValidateEmail($field[0].value)){
						fields_not_empty=false;
						alert('Поле E-mail заполнено некорректно');
					}
				}
				if(fields_not_empty){
					C.whois.hideApplyFields();
					var success_function=function(json){
						var d2=new Date();
						var mls=d2.getTime() - d1.getTime();
						mls=(mls<2000)?(2000-mls):0;
						C.whois.apply_result_json=json;
						// вызываем обработчик через время mls
						setTimeout('C.whois.applySuccess()',mls);
					}
					var domain=C.whois.last_domain_query.split('.')[0];
					var d1=new Date();
					$(this).ajaxSubmit({
						type: 'POST',
						url: '/__scripts/apply_for_domains.php',
						data: {domain: domain},
						dataType: 'json',
						success: success_function
					});
				}
			})
		},
		showStat: function(hash){
			var $domain_apply_form=$('#domainApplyForm');
			if($domain_apply_form.length){
				// устанавливаем body обработчик клика, скрывающий слой
				if(!C.whois.body_click_listener){
					C.whois.body_click_listener=function(evt){
						var $target=$(evt.target);
						if(!$target.parents('form').eq(0).is('#domainApplyForm, #whoisForm')){
							$domain_apply_form.hide();
							$('body').unbind('click',C.whois.body_click_listener);
							delete(C.whois.body_click_listener);
						}
					}
					$('body').bind('click',C.whois.body_click_listener);
				}
				// показываем слой
				$domain_apply_form.show();
				// показываем свободные и занятые домены, если передан json
				if(hash.draw){
					C.whois.drawDomainsCols();
				}
			}
		},
		drawDomainsCols: function(){
			var $cols=$('#domainApplyForm').find('div.cols');
			// список зон (имеется также в speedcheck.sh, client.js, whois_all.php и apply_for_domains.php)
			var cols={
				l: 'ru su com net org biz info',
				m: 'name me tel asia mobi tv us',
				r: 'in cc ws bz kz'
			};
			C.whois.zones_checked={};
			for(var i in cols){
				var $ul=$(document.createElement('ul')).addClass(i).appendTo($cols);
				var zones=cols[i].split(' ');
				for(var j=0; j<zones.length; j++){
					var zone=zones[j];
					var cls=(C.whois.show_stat_json.zones[zone] || 'a');
					var $li=$(document.createElement('li')).appendTo($ul);
					var $input=$(document.createElement('input')).attr({type:'checkbox',name:zone}).appendTo($li);
					var $label=$(document.createElement('span')).addClass(cls).text('.'+zone).appendTo($li);
					if(cls=='d'){
						$input.attr({disabled:true});
					}else{
						if(C.whois.show_stat_json.zones[zone]=='c'){
							$input.attr({checked:true});
							C.whois.zones_checked[zone]=true;
						}else{
							C.whois.zones_checked[zone]=false;
						}
						$label.bind('mouseup',C.whois.getLabelFunction(zone));
					}
				}
			}
			$cols.append($(document.createElement('div')).addClass('clear'));
			// определяем высоту $cols чтобы сделать анимацию
			var cols_h=$cols.show()[0].offsetHeight;
			$cols.hide();
			// анимируем переход от загрузчика к списку доменов
			var $ajaxload=$cols.parent().children('div.ajaxload').eq(0);
			$ajaxload.animate({opacity:0},'fast',function(){
				$ajaxload.animate({height:cols_h},'fast',function(){
					$ajaxload.hide().css({opacity:1,height:''});
					$cols.show().css({opacity:0}).animate({opacity:1},'fast',function(){
						C.whois.toggleApplicationFields();
					});
				})
			})
			delete(C.whois.show_stat_json.zones);
		},
		getLabelFunction: function(zone){
			return function(evt){
				var $label=$(this);
				var bool=!C.whois.zones_checked[zone];
				C.whois.zones_checked[zone]=bool;
				var input
				$label.parent().children('input')[0].checked=bool;
				if(bool){
					$label.addClass('c').removeClass('a');
				}else{
					$label.addClass('a').removeClass('c');
				}
				C.whois.toggleApplicationFields();
				C.whois.recountZonesPrice();
			}
		},
		emptyStat: function(){
			var $domain_apply_form=$('#domainApplyForm');
			if($domain_apply_form.length){
				var $ajaxload=$domain_apply_form.find('div.ajaxload').eq(0);
				if($ajaxload[0].offsetHeight==0){
					var $cols=$ajaxload.parent().children('div.cols');
					$cols.animate({opacity:0},'fast',function(){
						$cols.animate({height:64},'fast',function(){
							$cols.hide().empty().css({opacity:1,height:''});
							$ajaxload.show().animate({opacity:1});
						})
					})
				}
			}
		},
		toggleApplicationFields: function(){
			var $domain_apply_form=$('#domainApplyForm');
			var there_are_checked_domains=false;
			var total=0;
			$domain_apply_form.find('div.cols input').each(function(){
				if(this.checked){
					there_are_checked_domains=true;
				}
			})
			// скрываем или показываем поля, если нужно
			$fields=$domain_apply_form.find('div.fields');
			if(there_are_checked_domains && $fields[0].offsetHeight==0){
				// нужно показать поля
				var fields_h=$fields.show()[0].offsetHeight;
				$fields.css({height:0,opacity:0});
				$fields.animate({height:fields_h},'fast',function(){
					$fields.animate({opacity:1},'fast');
				})
			}else if(!there_are_checked_domains && $fields[0].offsetHeight>0){
				// нужно скрыть поля
				$fields.animate({opacity:0},'fast',function(){
					$fields.animate({height:0},'fast',function(){
						$fields.hide().css({opacity:1,height:''});
					})
				})
			}
		},
		recountZonesPrice: function(){
			// пересчитываем стоимость выбранных зон
			var $domain_apply_form=$('#domainApplyForm');
			var total=0;
			$domain_apply_form.find('div.cols input').each(function(){
				if(this.checked){
					total+=parseInt(C.whois.show_stat_json.price[this.name]);
				}
			})
			$domain_apply_form.find('div.fields p.price strong').text(total);
		},
		hideApplyFields: function(){
			var $domain_apply_form=$('#domainApplyForm');
			var $fields=$domain_apply_form.find('div.fields');
			var fields_h=$fields[0].offsetHeight;
			var $ajaxload=$fields.parent().children('div.ajaxload').eq(1);
			$fields.animate({opacity:0},'fast',function(){
				$fields.animate({height:64},'fast',function(){
					$fields.hide();
					$ajaxload.show().css({opacity:0}).animate({opacity:1});
				})
			})
			// одновременно с полями убираем иконки
			$domain_apply_form.find('p.comments').animate({opacity:0},'fast');
			// дизейблим поле домена
			$('#whoisForm input[name=domain]')[0].disabled=true;
		},
		applySuccess: function(){
			var $domain_apply_form=$('#domainApplyForm');
			var $fields=$domain_apply_form.find('div.fields');
			var $ajaxload=$fields.parent().children('div.ajaxload').eq(1);
			var $p=$(document.createElement('p')).html('Спасибо! Ваша заявка принята.<br>Наши специалисты свяжутся с&nbsp;вами в&nbsp;ближайшее время.');
			$fields.empty().append($p);
			$ajaxload.animate({opacity:0},'fast',function(){
				$ajaxload.hide();
				$fields.css({opacity:0}).show().animate({opacity:1},'fast');
			})
		}
	},
	photoalbum: {
		init: function(){
			var $photoalbum = $('#photoalbumBox');
			if($photoalbum.length){
				var $div_photo=$photoalbum.find('div.lcol > div.photo');
				if(typeof C.photoalbum.virtual_tour=='object'){
					var $p=$photoalbum.find('div.lcol > div.previews > p');
					var $virtual_tour_item=$(document.createElement('span')).addClass('item').
						append($(document.createElement('a')).addClass('virtualTour').attr({href:'#'}).
							append($(document.createElement('span')).addClass('pattern')).
							append($(document.createElement('img')).attr({src:C.photoalbum.virtual_tour.preview}))).prependTo($p);
					$virtual_tour=$(document.createElement('div')).addClass('virtualTour').
						append($(document.createElement('div')).attr({id:'virtualTourBox'})).
							insertBefore($div_photo);
					var so = new SWFObject(C.photoalbum.virtual_tour.medium, "virtualTourBox", "528", "312", "8", "#ffffff");
					so.addParam("wmode", "transparent");
					so.addVariable("_path", C.photoalbum.virtual_tour.panorama);
					so.write("virtualTourBox");
					$virtual_tour.hide();
					window['open_panorama']=function(){
						// if(C.photoalbum.virtual_tour_fullview_win){
						// 	C.photoalbum.virtual_tour_fullview_win.close();
						// }
						try{
							if(C.photoalbum.virtual_tour_fullview_win && C.photoalbum.virtual_tour_fullview_win.document){
								C.photoalbum.virtual_tour_fullview_win.focus();
							}else{
								C.photoalbum.virtual_tour_fullview_win=$.evPopup(C.photoalbum.virtual_tour.popup,900,600,{s:0,m:0,r:0})
							}
						}catch(e){
							//alert(e)
						}
					}
				}
				$photoalbum.find('div.previews span.item b').addClass('active');
				$photoalbum.find('div.previews span.item a, div.previews span.item b').bind('click', function(evt){
					evt.preventDefault();
					if(this.className.indexOf('active')<0){
						$photoalbum.find('div.previews span.item *.active').removeClass('active').prepend($(document.createElement('span')).addClass('pattern'))
						$(this).addClass('active').children('span.pattern').remove();
						if($(this).is('a.virtualTour')){
							$div_photo.hide();
							$virtual_tour.show();
							$photoalbum.find('div.rcol p.title').html('<b>Панорама</b>');
							$photoalbum.find('div.rcol div.body').html('<p>Основное помещение дата-центра.</p>');
						}else{
							var index_of_id = this.className.indexOf('id');
							var id = parseInt(this.className.substr(index_of_id+2));
							var photo = C.photoalbum.photos['id'+id];
							$photoalbum.find('div.rcol p.title').html('<b>На фото:<br></b><span>'+photo.title+'</span>');
							$photoalbum.find('div.rcol div.body').html(photo.body);
							$virtual_tour.hide();
							$div_photo.show().children('img').attr({src:photo.src, alt:photo.title});
						}
					}
				})
				// делаем клик на виртуальный тур
				if(typeof C.photoalbum.virtual_tour=='object' && $virtual_tour_item){
					$virtual_tour_item.children('a').trigger('click');
				}
			}
		}
	},
	other: {
		style: function(){
			// форма проверки домена
			$whois_form=$('#whoisForm');
			if($whois_form.length){
				$whois_form.find('input').evSwitchField('домен');
				// $whois_form.find('select').evSboxDecorate({submitForm:'true',style:true});
			}
			// обработка таблиц
			$('*.contentZone table').evParseTable();
			setTimeout('C.other.styleDelyed()',100);
		},
		styleDelyed: function(){
			// обводка ссылок в меню
			$('#menu1 a').each(function(){
				// alert([this.offsetWidth,this.parentNode.offsetWidth])
				$(this).css({width:this.offsetWidth, height:this.offsetHeight, overflow:'hidden'});
			})
		}
	}
}

