$(document).ready(init_page);

function init_page()
{
	if($.browser.msie&&$.browser.version=="7.0")
	{
		$.browser.msie7=true
	}
	if($.browser.msie)
	{
		$("body").addClass("ie")
	}
	if($.browser.msie7)
	{
		$("body").addClass("ie7")
	}
		
	var max_files_size=10;
	$("form").attr("action","/sendRequest.php");
	$("img").bind("contextmenu",function(){return false});
	$(".work_type_item").click(function(){ $("input",this)[0].checked=true });
	
	watch_focus($("input"));
	watch_focus($("textarea"));
	
	function watch_focus(query)
	{
		query.focus(function(){$(this).addClass("focus")}).blur(function(){$(this).removeClass("focus")})}
		$(document).keydown(disable_esc);
		$(document).keypress(disable_esc);
		function disable_esc(e)
		{
			if(e.keyCode==27)
			{
				e.preventDefault()
			}
		}
				
		var email=$(".configured_email").text();
		$(".mail").html('<a href="mailto:'+email+'">'+email+"</a>");
		$(".max_files_size").text(max_files_size);
		var calc=$(".calculator");
		$(".calculate",calc).click(function(){show_total()});
		$(".send_button",calc).click(function(){send_calculator_form()});
		$(".request_service_form").each(function(i,form){  
			$(".send_button.active",form).live("click",function(){
				console.log("send");
				send_request_service_form($(form))
				})
			});
		var total_area=$("input[name=total_area]",calc);
		var rooms=$("input[name=rooms]",calc);
		var ceiling=$("input[name=ceiling]",calc);
		var baths=$("input[name=baths]",calc);
		var baths_area=$("input[name=baths_area]",calc);
		if(!ceiling.val()){ceiling.val(2.5)}
		if(!baths.val()){baths.val(1)}
		$(".menu .menu_group").each(function(){var submenu=$(".sub_menu",this);
											 submenu.width($(this).width());
											 var hiding=null;
											$(this).hover(function(){
												window.clearTimeout(hiding);
												hiding=null;
												submenu.slideDown(200);
												},function(){
												if(hiding!=null){ return }
												hiding=window.setTimeout(function(){hiding=null;submenu.slideUp(100)},500);
												})
											});
											
		var common_tooltip_options={effect:$.browser.msie?"toggle":"fade",relative:true};
		
		$(".request_result .with_tooltip").tooltip($.extend({},common_tooltip_options,{delay:500}));
		
		$(".value input",calc).tooltip($.extend({},common_tooltip_options,{onBeforeShow:function(){return this.getTrigger().hasClass("error")}}));
		
		$(".gallery_photos a").overlay({target:".gallery_overlay",speed:500,expose:{color:"#000000",opacity:0.8,loadSpeed:1000,closeSpeed:100},onBeforeLoad:function(){freeze_gallery(true)},onClose:function(){freeze_gallery(false)}}).gallery({opacity:1,speed:1000,onChange:function(is_next){get_gallery().advance_gallery(is_next)}});
		
		var common_overlay_options={expose:{opacity:0,loadSpeed:0,closeSpeed:0},effect:"apple",top:"center"};
		
		$(".page_thumbnail.photo").overlay($.extend({},common_overlay_options,{target:".page_photo_overlay",onLoad:load_page_photo_overlay,fadeInSpeed:0}));
		
		$(".page_thumbnail.contract").overlay($.extend({},common_overlay_options,{target:"#contract",closeOnClick:!$.browser.msie,onLoad:load_contract_overlay,fadeInSpeed:0}));
		
		$(".request_estimate_link a").overlay($.extend({},common_overlay_options,{target:"#request_estimate",fadeInSpeed:$.browser.msie?0:"fast"}));
		
		$(".request_estimate_files input").each(function(index){$(this).attr("name","file_"+index)}).each(update_file).change(update_file);
		
		$(".request_estimate_files .remove_file").click(remove_file);
		
		function update_file(){var file=$(this).parents(".request_estimate_files .file");
		
		var has_value=$(this).val()?true:false;file.toggleClass("selected",has_value);
		
		$(".file_name",file).text($(this).val().split("\\").reverse()[0])}function remove_file(){var file=$(this).parents(".request_estimate_files .file");
		var add_file=$(".add_file",file);
		$("input",file).unbind();
		add_file.html(add_file.html());
		$("input",file).change(update_file);
		update_file.call($("input",file))}function load_page_photo_overlay(){var thumbnail=this.getTrigger();var overlay=this.getOverlay();var photo=$(".photo",overlay);var info=$(".info",overlay);var progress=$(".progress",overlay);var photo_url=thumbnail.attr("src").replace("/page_thumbs/","/page_photos/");var image=new Image();var loaded=false;image.onload=function(){loaded=true;photo.attr("src",photo_url);progress.hide();photo.fadeIn(300);info.text(thumbnail.attr("title"));$.browser.msie?info.show():info.fadeIn(300)};window.setTimeout(function(){if(!loaded){progress.show()}},1000);photo.hide();info.hide();image.src=photo_url}function load_contract_overlay(){var content=$(".content",this.getOverlay());content.jScrollPane({scrollbarMargin:10,scrollbarWidth:11,observeHash:false});content.parent().focus()}function make_number(value){return Number(value.replace(",","."))}function make_numbers(properties){var result={};for(var name in properties){result[name]=make_number(properties[name])}return result}function calculator_fields_values(){return make_numbers({total_area:total_area.val(),rooms:rooms.val(),ceiling:ceiling.val(),baths:baths.val(),baths_area:baths_area.val()})}function show_total(){var values=calculator_fields_values();validate_calculator(values);if($("input.error",calc).length>0){$("input.error",calc)[0].focus();return}var text;try{var dimensions=get_dimensions(values);var amounts=get_amounts(dimensions);text=print_total(amounts)}catch(e){text="Error"}$(".total .value",calc).text(text)}function print_total(amounts){var total=calculate_total(amounts);return print_amount(total)}function print_amount(value){var text;var remaining=value;var last_part=remaining%1000;text=String(last_part)+" р.";remaining=Math.floor(remaining/1000);while(remaining>0){if(last_part<100){text="0"+text}if(last_part<10){text="0"+text}last_part=remaining%1000;text=String(last_part)+"'"+text;remaining=Math.floor(remaining/1000)}return text}
		
		function send_request_service_form(form)
		{
			//var button=$(".send_button",form);
			alert($(form).serialize());
			//disable_request_service_button(button);
			//process_request(form,$(".request_result",form),function(){enable_request_service_button(button)});
		}
		
		function disable_request_service_button(button){button.removeClass("active")}function enable_request_service_button(button){button.addClass("active")}
		
		function send_calculator_form()
		{
		
			$(".request_estimate_link a").each(function(){$(this).overlay().close()});
			disable_request_estimate_link();
			process_request($("form",calc),$(".request_estimate .request_result"),enable_request_estimate_link,calculator_form_extra_data())
		}
		
		function calculator_form_extra_data()
		{
			var extra_data={};
			try
			{
				var values=calculator_fields_values();
				var dimensions=get_dimensions(values);
				var amounts=get_amounts(dimensions);
				extra_data.rooms_area=dimensions.rooms_area;
				extra_data.rooms_perimeter=dimensions.rooms_perimeter;
				extra_data.walls_area=dimensions.walls_area;
				extra_data.baths_walls_area=dimensions.baths_walls_area;
				extra_data.floors_amount=print_amount(amounts.floors);
				extra_data.ceilings_amount=print_amount(amounts.ceilings);
				extra_data.walls_amount=print_amount(amounts.walls);
				extra_data.baths_amount=print_amount(amounts.baths);
				extra_data.general_amount=print_amount(amounts.general);
				extra_data.overhead_amount=print_amount(amounts.overhead);
				extra_data.total=print_total(amounts)
			}
			catch(ex)
			{}
			return extra_data
		}
		
		function set_request_state(request_result,state)
		{
			request_result.removeClass("error");
			request_result.removeClass("size_error");
			request_result.removeClass("success");
			request_result.removeClass("progress");
			request_result.addClass(state);
			hide_tooltips(request_result);
			var current_tooltip=$("."+state,request_result).tooltip();
			current_tooltip.show();
			window.setTimeout(function(){current_tooltip.hide()},3000)
		}
		
		function hide_tooltips(placeholder)
		{
			$(".with_tooltip",placeholder).each(function(){$(this).tooltip().hide()})
		}
		
		function disable_request_estimate_link()
		{
			$(".request_estimate_link").addClass("disabled")
		}
		
		function enable_request_estimate_link()
		{
			$(".request_estimate_link").removeClass("disabled")
		}
		
		function process_request(form,result,after,data)
		{
			set_request_state(result,"progress");
			send_form(form,data?data:{},after,function(){set_request_state(result,"success")},function(){set_request_state(result,"error")},function(){set_request_state(result,"size_error")})
		}
		
		function send_form(form,data,after,success,error,exceeded_max_size)
		{
			data.form=form.attr("name");
			data.max_files_size=max_files_size;
			//for(key in data) alert("data["+key+"] = "+data[key]);
			form.ajaxSubmit(
				{
					type:"POST",
					data:data,
					complete:after,
					success:function(res)
					{
						switch(res)
						{
							case"success":success();break;
							case"exceeded_max_size":exceeded_max_size?exceeded_max_size():error();break;
							default:error()
						}
					},
					error:error
				})
		}
			
		function validate_calculator(values){total_area.toggleClass("error",!(values.total_area>=20&&values.total_area<=1000));rooms.toggleClass("error",!(values.rooms>=1&&values.rooms<=30));ceiling.toggleClass("error",!(values.ceiling>=2.4&&values.ceiling<=5));baths.toggleClass("error",!(values.baths>=1&&values.baths<=10));baths_area.toggleClass("error",!(values.baths_area>=3&&values.baths_area<=100))}function get_dimensions(values){var rooms_area=Math.max(values.total_area-values.baths_area,0);var rooms_perimeter=Math.sqrt(rooms_area)*(5*Math.sqrt(2)+5*values.rooms+4)/Math.sqrt(3.75+1.5*values.rooms);var walls_area=rooms_perimeter*values.ceiling;var baths_perimeter=Math.sqrt(values.baths_area)*Math.sqrt(values.baths)*5/Math.sqrt(1.5);var baths_walls_area=baths_perimeter*values.ceiling;dimensions={total_area:values.total_area,rooms_area:rooms_area,rooms_perimeter:rooms_perimeter,walls_area:walls_area,baths:values.baths,baths_area:values.baths_area,baths_walls_area:baths_walls_area};for(i in dimensions){dimensions[i]=Math.round(dimensions[i]*100)/100}return dimensions}function get_prices(){var all_prices=eval("object = "+$(".calculator_prices").text());switch($(".work_type_item input:checked").val()){case"standart":return all_prices.standart;case"comfort":return all_prices.comfort;case"premium":return all_prices.premium}}function get_amounts(dimensions){prices=make_numbers(get_prices());var amounts={floors:prices.floor*dimensions.rooms_area+prices.floor_walls*dimensions.rooms_perimeter,ceilings:prices.ceiling*dimensions.rooms_area,walls:prices.walls*dimensions.walls_area,baths:prices.general_baths*dimensions.baths+prices.bath_walls*dimensions.baths_walls_area+prices.bath_ceiling*dimensions.baths_area+prices.bath_floor*dimensions.baths_area,general:prices.general+prices.general_square*dimensions.total_area};for(i in amounts){amounts[i]=Math.round(amounts[i])}total=calculate_total(amounts);amounts.overhead=Math.round(total*prices.overhead/100);return amounts}function calculate_total(amounts){total=0;for(i in amounts){total+=amounts[i]}return total}function get_flash_movie(movie_name){return $.browser.msie?window[movie_name]:document[movie_name]}function get_gallery(s){return get_flash_movie("gallery")}function freeze_gallery(freeze){get_gallery().freeze_gallery(freeze)}}function show_photo(a){$(window).focus();$(".gallery_photos a[href$="+a+"]").overlay().load()};
