﻿/* Map */
var heightContrain = 3072;
var widthContrain = 3072;
$(document).ready(function(){	
	angel = 180;
	$(".crop").css({overflow:"hidden"});
	$(".map").css({cursor:"move"});	
	$(".map").draggable();	
	$(".crop").mousemove(function(e){rotate(e);});
	
	//$(".compass").mousemove(function(e){rotate(e);});
	//$("#arrow").mousemove(function(e){rotate(e);});
	//$(".mnu6").mousemove(function(e){rotate(e);});
		
	selected_museum = 1
	for(var i=1;i<=10;i++){
		$(".museum"+i+" div").bind("mouseover",function(){if(this.className=='on')this.className = 'hover';});
		$(".museum"+i+" div").bind("mouseout",function(){if(this.className=='hover')this.className = 'on';});
		$(".museum"+i+" div").bind("click",function(){description(this);});
		if(i!=selected_museum){
			$(".museum"+i+" div").removeClass('off');
			$(".museum"+i+" div").addClass('on');
		}
		else{
			$(".museum"+i+" div").removeClass('on');
			$(".museum"+i+" div").addClass('off');
		}
	}
});
/* Navigation */
function moveTo(a,l,t){
	a.blur();
	$(".map").animate({left:l+'px',top:t+'px'});
}
/* Compass */
var angel;
function rotate(e){
	var x,y,cx,cy,a,b,c,alpha,quarter;
		
	x = e.clientX;
	y = e.clientY;
			
	cx = Math.floor($(".crop").width()/2);
	cy = Math.floor($(".crop").height()/2);		
		
	a = Math.abs(cy-y);
	b = Math.abs(cx-x);
	c = Math.sqrt(a*a+b*b);
			
	if((b>0)&&(c>0)){
		alpha = Math.floor(Math.acos((b*b+c*c-a*a)/(2*b*c))*57.295779513);

		if(((cx-x)>=0)&&(cy-y)>=0){
			quarter = 4;
			alpha += 270;
		}
		if(((cx-x)>=0)&&(cy-y)<=0){
			quarter = 3;
			alpha = 270 - alpha;
		}
		if(((cx-x)<=0)&&(cy-y)<=0){
			quarter = 2;
			alpha += 90;
		}
		if(((cx-x)<=0)&&(cy-y)>=0){
			quarter = 1;
			alpha = 90 - alpha;
		}

		angel = alpha;
		orient();
	}
	else{
		//the same angel
	}
			
	//document.title = angel;
}
function orient(){
	var o = 1;
	var p = 360/8/2;
			
	//N
	o = ((angel>15*p)&&(angel<p))? 1 : o;
	//NE
	o = ((angel>p)&&(angel<3*p))? 2 : o;
	//E
	o = ((angel>3*p)&&(angel<5*p))? 3 : o;
	//SE
	o = ((angel>5*p)&&(angel<7*p))? 4 : o;
	//S
	o = ((angel>7*p)&&(angel<9*p))? 5 : o;
	//SW
	o = ((angel>9*p)&&(angel<11*p))? 6 : o;
	//W
	o = ((angel>11*p)&&(angel<13*p))? 7 : o;
	//NW
	o = ((angel>13*p)&&(angel<15*p))? 8 : o;
	
	document.getElementById("arrow").className = 'orient'+o;
}
/* Feedback */
function reset(){
	document.getElementById('name').value = 'Как вас зовут';
	document.getElementById('mail').value = 'Ваша электронная почта';
	document.getElementById('name').style.color = '#bfbfbf';
	document.getElementById('mail').style.color = '#bfbfbf';
	document.getElementById('msg').value = '';
}
function sendmail(){
	var poststr;
	poststr = getFormValues('feedback',1);
	$(".feedback").addClass('hidden');
	$(".sending").removeClass('hidden');
	makeGETRequest('/feedback/sendmail.php', poststr, onChangeSendmail);
}
function onChangeSendmail(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			$(".sending").addClass('hidden');
			$(".sent").removeClass('hidden');
		} 
	}	
}
/* Museums */
var selected_museum;
function description(sender){
	var id = sender.parentNode.className.substr(6,2);	
	if(selected_museum!=id){
		$(".museum"+selected_museum+" div").removeClass('off');
		$(".museum"+selected_museum+" div").addClass('on');
					
		selected_museum = id;
	
		$(".museum"+selected_museum+" div").addClass('off');
		$(".museum"+selected_museum+" div").removeClass('on');
		$(".museum"+selected_museum+" div").removeClass('hover');
		$(".ajax").html('<div class="ajax-loader"><p style="color:#bfe2e7;">Загрузка данных с сервера</p><img src="img/ajax-loader.gif" alt="" title="" /></div>');
		makeGETRequest('/museum/info.php', 'id='+id, onChangeDescription);
	}
}
function onChangeDescription(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			$(".ajax").html(http_request.responseText);
		} 
	}
}
/* Photos */
function photos(sender){
	$(".preview").addClass('hidden');
	$(".selected").removeClass('selected');
	$(".loaded").html('<div style="color:#bfe2e7;position:absolute;top:48%;left:50%;margin-left:-100px;width:200px;">Загрузка фотографий с&#160;сервера<br /><br /><img src="img/ajax-loader.gif" alt="" title="" /></div>');
	sender.parentNode.className = 'ajaxcall selected';	
	var id = sender.parentNode.id;
	makeGETRequest('/museum/photos.php', 'id='+id, onChangePhotos);
}
function onChangePhotos(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			$(".loaded").html(http_request.responseText);
		} 
	}
}
function preview(a){
	var src = a.href;
	$(".preview").addClass('hidden');
	$(".preview").html('<img src="'+src+'" alt="" title="" />');	
	$(".preview").removeClass('hidden');
}
/* Typical Ajax Functions */
var http_request = false;
function makeGETRequest(url, parameters, afteraction){
	http_request = false;
	if (window.XMLHttpRequest){
		http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType){
				http_request.overrideMimeType('text/html');
			}
	} 
	else if (window.ActiveXObject){
		try{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
        	catch (e){
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}	
	if (!http_request) {
		return false;
	} 
	http_request.onreadystatechange=afteraction 
	http_request.open("GET",url+'?'+parameters,true)	
	http_request.send(null)
}
function ParamPrepare(id){
	var value = 'not_found';
	var input = this.document.getElementById(id);
	if(input){
		if((input.type=='radio')||(input.type=='checkbox')){
			value = id+'='+encodeURI(input.checked);
		}
		else{
			value = id+'='+encodeURI(input.value);
		}
	}
	return value;
}
function getFormValues(id,submiy_cnt){
	var form;
	var poststr;
	var andsrt;
	
	form = this.document.getElementById(id);
	poststr = '';
	
	for(var i=0;i<form.length;i++){
		andsrt = (i<form.length-1-submiy_cnt)? '&':'';
		if(form.elements[i].type!='button')
			poststr += ParamPrepare(form.elements[i].id)+andsrt;
	}
	return poststr;
}
