

try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
	window.onload = func;
	} else {
	window.onload = function() {
	oldonload();
	func();
	}
	}
	}
 

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}


function main_menu () {
	var main_menu_lks = $$('#main_menu a');
	main_menu_lks.each(function(element) {
		var fx = new Fx.Styles(element, {duration:200, wait:false, transition: Fx.Transitions.quadOut});
		element.addEvent('mouseenter', function() {
			fx.start({'padding-top': 10	});
		});
	 
		element.addEvent('mouseleave', function() {
			fx.start({'padding-top': 0});
		});
	});
}


Drag.Move2 = Drag.Base.extend({

	options: {
		droppables: [],
		container: false,
		overflown: []
	},

	initialize: function(el, options){
		this.setOptions(options);
		this.element = $(el);
		this.droppables = $$(this.options.droppables);
		this.container = $(this.options.container);
		this.position = {'element': this.element.getStyle('position'), 'container': false};
		if (this.container) this.position.container = this.container.getStyle('position');
		if (!['relative', 'absolute', 'fixed'].contains(this.position.element)) this.position.element = 'absolute';
		var top = this.element.getStyle('top').toInt();
		var left = this.element.getStyle('left').toInt();
		if (this.position.element == 'absolute' && !['relative', 'absolute', 'fixed'].contains(this.position.container)){
			top = $chk(top) ? top : this.element.getTop(this.options.overflown);
			left = $chk(left) ? left : this.element.getLeft(this.options.overflown);
		} else {
			top = $chk(top) ? top : 0;
			left = $chk(left) ? left : 0;
		}
		this.element.setStyles({'top': top, 'left': left, 'position': this.position.element});
		this.parent(this.element);
	},

	start: function(event){
		this.overed = null;
		if (this.container){
			var cont = this.container.getCoordinates();
			var el = this.element.getCoordinates();
			if (this.position.element == 'absolute' && !['relative', 'absolute', 'fixed'].contains(this.position.container)){
				this.options.limit = {
					'x': [cont.left, cont.right - el.width],
					'y': [cont.top, cont.bottom - el.height]
				};
			} else {
				this.options.limit = {
					'y': [0, cont.height - el.height],
					'x': [0, cont.width - el.width]
				};
			}
		}
		this.element.setAttribute('id','dragged');
		this.element.style.zIndex = '1000';
		this.parent(event);
	},

	drag: function(event){
		this.parent(event);
		
		var drag_row = parseInt(parseInt(this.element.style.top)-parseInt(this.element.style.top)%80)/80;
		var drag_col = parseInt(parseInt(this.element.style.left)-parseInt(this.element.style.left)%70)/70;
		//var overed = this.out ? false : this.droppables[drag_row * 9 + drag_col];
		var overed = this.droppables[drag_row * 9 + drag_col];
		//$('consola').innerHTML = drag_row * 9 + drag_col;
		if (this.overed != overed){
			if (this.overed) this.overed.fireEvent('leave', [this.element, this]);
			this.overed = overed ? overed.fireEvent('over', [this.element, this]) : null;
		}
		return this;
	},

	checkAgainst: function(el){
		//el = el.getCoordinates(this.options.overflown);
		
		//var now = this.mouse.now;
		
		return (el.style.left==0&&el.style.top==0);
		
	},

	stop: function(){
		
		  
		this.element.style.top = parseInt(parseInt(this.element.style.top)-parseInt(this.element.style.top)%80) + 'px';
		this.element.style.left = parseInt(parseInt(this.element.style.left)-parseInt(this.element.style.left)%70) + 'px';
		
		this.element.removeAttribute('id');
		this.element.style.zIndex = '1';
		this.parent();
		
		this.droppables.each(function(item){
       item.style.backgroundColor = 'transparent';
      });
		return this;
	}

});

function gallery () {
var thumbs = $('thumbs');
if(!thumbs) {return false;}
var page = $('page');
var content = $('content');

content.removeChild(thumbs);
page.appendChild(thumbs);
thumbs.style.top = '39px'; 
thumbs.style.left = '50%'; 
thumbs.style.marginLeft = '-451px';
var droppable = new Array(54);
for(i=0; i<droppable.length; i++) {
		droppable[i] = document.createElement('div');
		droppable[i].className = 'droppable';
		var row = parseInt(i/9);
		var col = i%9;
		droppable[i].style.left = col * 70 + 'px';	
		droppable[i].style.top = row * 80 + 'px';
		droppable[i].className =  droppable[i].className + ' ' +  ('row'+(row+1));
		droppable[i].className =  droppable[i].className + ' ' +  ('col'+(col+1));
		//droppable[i].addClass('row'+(row+1));
		//droppable[i].addClass('col'+(col+1));
		thumbs.appendChild(droppable[i]);
   }
	
	
var initial_position = new Array();
initial_position['top'] = null;
initial_position['left'] = null;
var initial_row;
var initial_col;

var droppables = $$('#thumbs .droppable');
var container = $('thumbs');
var thumbs = $$('#thumbs a');
var container_coord = container.getCoordinates();
var container_left = container_coord.left;
var container_top = container_coord.top;
var handles = $$('span.handle');
var fake_lks = new Array();
var allow_drag = true;

for(i=0; i<thumbs.length; i++) {
	
	thumbs[i].style.left = Math.abs(container_left - thumbs[i].getCoordinates().left) + 'px';
	thumbs[i].style.top = 	Math.abs(container_top - thumbs[i].getCoordinates().top) + 'px';
	handles[i] = document.createElement('span');
	handles[i].className = 'handle';
	fake_lks[i] = document.createElement('span');
	fake_lks[i].className = 'fake_lk';
	thumbs[i].appendChild(handles[i]);
	thumbs[i].appendChild(fake_lks[i]);
	thumbs[i].onclick = function () {return false;}
	
}


var set_drag = new Array();

i = 0;

thumbs.each(function(drag){
							
	 set_drag[i] =  new Drag.Move2(drag, {
	'container': container, 
	'droppables': droppables,
	'handle': drag.getElements('span.handle').getLast(),
	
	onStart: function () {
		initial_position['top']  =  this.element.style.top;
		initial_position['left'] = this.element.style.left;
		initial_row = 'row' + (parseInt(parseInt(this.element.style.top)-parseInt(this.element.style.top)%80)/80 + 1);
		initial_col = 'col' + (parseInt(parseInt(this.element.style.left)-parseInt(this.element.style.left)%70)/70 + 1);
		
		// reset this placeholder 
		for(i=0; i<droppable.length; i++) {
				 
				  	 
				 if(droppable[i].hasClass(initial_row)&&droppable[i].hasClass(initial_col)) {
					   if(this.element.hasClass('width1')&&this.element.hasClass('height1')) {
							
							droppable[i].removeClass('full');
						   
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height1')) {
							
						   droppable[i].removeClass('full');
							droppable[i+1].removeClass('full');
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height2')) {
							
							droppable[i].removeClass('full');
							droppable[i+1].removeClass('full');
							droppable[i+9].removeClass('full');
							droppable[i+10].removeClass('full');
						   
						}
						
						
						
				 }
			}
		
		// reset this placeholder 
		 
		
		
		
	},
	
	
	onComplete: function () { 
	     var allow_drop = false;
	    
		
		   var this_row  = 'row' + (parseInt(parseInt(this.element.style.top)-parseInt(this.element.style.top)%80)/80 + 1);
			var this_col = 'col' + (parseInt(parseInt(this.element.style.left)-parseInt(this.element.style.left)%70)/70 + 1);
		   
			for(i=0; i<droppable.length; i++) {
				 
				  	 
				 if(droppable[i].hasClass(this_row)&&droppable[i].hasClass(this_col)&&!droppable[i].hasClass('full')) {
					   if(this.element.hasClass('width1')&&this.element.hasClass('height1')) {
							
							droppable[i].addClass('full');
						   allow_drop = true;
						}
						
						if(droppable[i+1]&&this.element.hasClass('width2')&&this.element.hasClass('height1')&&!droppable[i+1].hasClass('full')) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
						   allow_drop = true;
						}
						
						if(droppable[i+10]&&this.element.hasClass('width2')&&this.element.hasClass('height2')&&!droppable[i+1].hasClass('full')&&!droppable[i+9].hasClass('full')&&!droppable[i+10].hasClass('full')) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
							droppable[i+9].addClass('full');
							droppable[i+10].addClass('full');
						   allow_drop = true;
						}
						
						
						
				 }
			}
			
			if(allow_drop) {
			     for(i=0; i<droppable.length; i++) {
					 if(droppable[i].hasClass(initial_row)&&droppable[i].hasClass(initial_col)) {
							droppable[i].removeClass('full');
							if(this.element.hasClass('width2')&&droppable[i+1]) {droppable[i+1].removeClass('full');}
							if(this.element.hasClass('height2')&&droppable[i+10]) {
								droppable[i+9].removeClass('full');
								droppable[i+10].removeClass('full');
							 }
						 }
				  }
				  
				  
				  for(i=0; i<droppable.length; i++) {
				 
				  	 
				 if(droppable[i].hasClass(this_row)&&droppable[i].hasClass(this_col)) {
					   if(this.element.hasClass('width1')&&this.element.hasClass('height1')) {
							
							droppable[i].addClass('full');
						   allow_drop = true;
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height1')&&droppable[i+1]) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
						   allow_drop = true;
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height2')&&droppable[i+10]) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
							droppable[i+9].addClass('full');
							droppable[i+10].addClass('full');
						   allow_drop = true;
						}
						
						
						
				 }
			}
				 
			   // this.element.style.top = parseInt(parseInt(this.element.style.top)-parseInt(this.element.style.top)%80) + 'px';
		      // this.element.style.left = parseInt(parseInt(this.element.style.left)-parseInt(this.element.style.left)%70) + 'px';
				
			  } 
			 else 
			    {
		       this.element.style.top = initial_position['top'];
		       this.element.style.left = initial_position['left'];
				 for(i=0; i<droppable.length; i++) {
				 
				  	 
				 if(droppable[i].hasClass(initial_row)&&droppable[i].hasClass(initial_col)) {
					   if(this.element.hasClass('width1')&&this.element.hasClass('height1')) {
						
							droppable[i].addClass('full');
						   
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height1')) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
						  
						}
						
						if(this.element.hasClass('width2')&&this.element.hasClass('height2')&&droppable[i+10]) {
							
							droppable[i].addClass('full');
							droppable[i+1].addClass('full');
							droppable[i+9].addClass('full');
							droppable[i+10].addClass('full');
						   
						}
						
						
						
				 }
			}
			 }
		
		
	  } 
	});
	i++;
});




droppables.addEvent('over', function(){
	if(!this.hasClass('full'))	{
		
		
		if($('dragged').hasClass('width1')) {
	     this.setStyle('background-color', '#e0e2c3');
		}
		
		if($('dragged').hasClass('width2')&&$('dragged').hasClass('height1')) {
	    
		  var this_index;
		  for(i=0; i<droppable.length; i++) { 
		    if(droppable[i].className==this.className) {
				  this_index = i;
				 }
		  }
		 if(droppable[this_index+1]) {
		 if(!droppable[this_index+1].hasClass('full')&&parseInt(this_index/9)==parseInt((this_index+1)/9)) {
			this.setStyle('background-color', '#e0e2c3');
			droppable[this_index+1].setStyle('background-color', '#e0e2c3');
		 }
		 }
		  
		 
		}
		
		
		
		if($('dragged').hasClass('width2')&&$('dragged').hasClass('height2')) {
	    
		  var this_index;
		  for(i=0; i<droppable.length; i++) { 
		    if(droppable[i].className==this.className) {
				  this_index = i;
				 }
		  }
		 if(droppable[this_index+9]&&droppable[this_index+10]) { 
		 if(!droppable[this_index+1].hasClass('full')&&!droppable[this_index+9].hasClass('full')&&!droppable[this_index+10].hasClass('full')&parseInt(this_index/9)==parseInt((this_index+1)/9)) {
			this.setStyle('background-color', '#e0e2c3');
			droppable[this_index+1].setStyle('background-color', '#e0e2c3');
			droppable[this_index+9].setStyle('background-color', '#e0e2c3');
			droppable[this_index+10].setStyle('background-color', '#e0e2c3');
		 }
		 }
		  
		 
		}
		
	
	}
});
 
 
droppables.addEvent('leave', function(){
	
	for(i=0; i<droppable.length; i++) { 
		droppable[i].style.backgroundColor = 'transparent';
	}
	
});



droppables.addEvent('drop', function(){
	for(i=0; i<droppable.length; i++) { 
		droppable[i].style.backgroundColor = 'transparent';
	}
	
});

for(i=0; i<handles.length; i++) {

handles[i].setStyle('cursor', 'url(images/openhand.cur), move');
	


handles[i].addEvent('mousedown', function() {
	this.setStyle('cursor', 'url(images/closedhand.cur), move');
	
});
handles[i].addEvent('mouseup', function() {
	this.setStyle('cursor', 'url(images/openhand.cur), move');
	
});

}



















for(i=0; i<thumbs.length; i++) {
	var thumbs_top = parseInt(thumbs[i].style.top);
	var thumbs_left = parseInt(thumbs[i].style.left);
	var thumbs_width = thumbs[i].getCoordinates().width;
	var thumbs_height = thumbs[i].getCoordinates().height;
	thumbs[i].addClass('row' + (thumbs_top/80 + 1));
	thumbs[i].addClass('col' + (thumbs_left/70 + 1));
	thumbs[i].addClass('width' + (thumbs_width/70));
	thumbs[i].addClass('height' + (thumbs_height/80));
	
	for(x=0; x<droppable.length; x++) {
		/* detect x&y droppables */ 
		
		if(droppable[x].hasClass('row' + (thumbs_top/80 + 1))&&droppable[x].hasClass('col' + (thumbs_left/70 + 1))) 
		{ 
		   droppable[x].addClass('full');
			droppable[x+(thumbs_width/70-1)].addClass('full');
			if(thumbs_height/80==2)
			{
				
				droppable[x+9].addClass('full');
				droppable[x+10].addClass('full');
			}
			//droppable[x+(thumbs_height/80-1)].style.backgroundColor = 'red';
		}
		
		
		/* detect x&y droppables */ 
		
		/* detect width droppable */
		//thumbs_height/80
		/* detect width droppable */
		
	}
}

 // start  buid full image
 
 var full = document.createElement('div');
 full.setAttribute('id','full');
 full.style.top = '-5000px';
 var foto_wrapper =  document.createElement('div');
 foto_wrapper.setAttribute('id','foto_wrapper');
 var foto_full = document.createElement('img');
 foto_full.setAttribute('src','images/pix.gif');
 var caption = document.createElement('span');
 caption.setAttribute('id','caption');
 var strong = document.createElement('strong');
 strong.innerHTML = 'Casa Tania';
 var em = document.createElement('em');
 
 foto_wrapper.appendChild(foto_full);
 caption.appendChild(strong);
 caption.appendChild(em);
 full.appendChild(foto_wrapper);
 full.appendChild(caption);
 $('thumbs').appendChild(full);
 // end  buid full image

// start fake lks
for(i=0; i<fake_lks.length; i++) {
	fake_lks[i].onclick = function () {
		for(x=0; x<set_drag.length; x++) {set_drag[x].detach();}
		foto_full.setAttribute('src',this.parentNode.getAttribute('href'));
		em.innerHTML = this.parentNode.getAttribute('title');
		if(this.parentNode.hasClass('height1')&&this.parentNode.hasClass('width2')) {
		full.className = 'landscape';	
		}
		else {full.className = '';	}
		full.style.top = '50%';
		
	}
}
// end fake lks

 full.onclick = function () {
	 this.style.top = '-5000px';
	 foto_full.setAttribute('src','http://casa-tania.ro/images/pix.gif');
	 for(x=0; x<set_drag.length; x++) {set_drag[x].attach();}
	}

}

function input_focus () {
	var formular = $$('.formular').getLast();
	if(!formular) {return false;}
	var formular_inputs = formular.getElements('input.text');
	var formular_textarea = formular.getElements('textarea');
	formular_inputs = formular_inputs.concat(formular_textarea);
	for(i=0; i<formular_inputs.length; i++) {
		formular_inputs[i].onfocus = function () {
			this.parentNode.className = 'on';
		}
		formular_inputs[i].onblur = function () {
			this.parentNode.className = '';
		}
	}
	
	
}

/* function rezervari () {
	if(!$('formular_rezervari')) return false;

	var total = $$('select[name=single]').getProperty('value') * 120;
	total += $$('select[name=double]').getProperty('value') * 140;
	total += $$('select[name=apartment]').getProperty('value') * 190;
	
	$('total').setText(total);

	$$('#formular_rezervari select').addEvent('change', function() {
		var total = $$('select[name=single]').getProperty('value') * 120;
		total += $$('select[name=double]').getProperty('value') * 140;
		total += $$('select[name=apartment]').getProperty('value') * 190;
		$('total').setText(total);
	});
}
 */
function calendar_init () {
	if($('data1_wrapper')&&$('data2_wrapper')) {
		date_chooser_init();
		date_chooser_call();
	}
}

function locatie () {
	var locatie = $('locatie');
	if(!locatie) {return false;}
	var page = $('page');
	var map_wrapper =  document.createElement('div');
	map_wrapper.setAttribute('id','map_wrapper');
	
	var mapHolder = document.createElement('div');
	mapHolder.setAttribute('id','mapHolder');
	var map = document.createElement('img');
	map.setAttribute('src',locatie.getAttribute('href'));
	var close_map = document.createElement('span');
	close_map.setAttribute('id','close');
	map_wrapper.appendChild(mapHolder);
	map_wrapper.appendChild(close_map);
	mapHolder.appendChild(map);
	
	page.appendChild(map_wrapper);
	
	
	locatie.onclick = function () {
		map_wrapper.style.display = 'block';
		return false;
	}
	close_map.onclick = function () {
		map_wrapper.style.display = 'none';
	}
}

function total() {
	if($('total')) {
		
		var queryPath = siteRootVar + 'includes/xmlhttp/total.php';
		var req = new Ajax( queryPath, {
			update: $('total'),
			data: {'date1': $('data1').getProperty('value'), 'date2': $('data2').getProperty('value'), 'single': $$('select[name=single]').getProperty('value'), 'double': $$('select[name=double]').getProperty('value'), 'apartment': $$('select[name=apartment]').getProperty('value') },
			onRequest: function () {$('total').parentNode.className = 'loading';},
			onSuccess: function () {$('total').parentNode.className = '';}
		});

		if(req) req.request();
		
	}	
}

function desero_lk() {
	var desero = $('desero');
	if(!desero) {return false;}
	var desero_span = desero.getFirst();
	if(typeof document.body.style.maxHeight=="undefined") {
	desero.onmouseover = function () {
		desero_span.style.top = '-10px';
	}
	desero.onmouseout = function () {
		desero_span.style.top = '0';
	}
	}
	
}

window.addEvent('domready', function(){
 desero_lk();
 externalLinks();
 main_menu();
 gallery();
 input_focus();
 total();
 locatie();

/**
 *  form validation
 */
	function validate(field, filter) {
		if(!filter.test(field.getProperty('value')))
			field.getParent().getParent().addClass('error');
		else if( field.getParent().getParent().hasClass('error') )
			field.getParent().getParent().removeClass('error');
	}

	/* contact form */
	if($('message')) {
		var filter = /^[a-zäöü\ \-]{2,}$/i;
		if($('name').getProperty('value') != '' ) validate($('name'), filter);
		filter = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;
		if($('email').getProperty('value') != '' ) validate($('email'), filter);
		filter = /^[\+]*[0-9\ ]{3,}$/i;
		if($('phone').getProperty('value') != '' ) validate($('phone'), filter);
		filter = /^.{3,}$/i;
		if($('message').getProperty('value') != '' ) validate($('message'), filter);

		$('name').addEvent('keyup', function() { var filter = /^[a-zäöü\ \-]{2,}$/i; validate(this, filter); });
		$('email').addEvent('keyup', function() { var filter = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i; validate(this, filter);	});
		$('phone').addEvent('keyup', function() { var filter = /^[\+]*[0-9\ ]{3,}$/i; validate(this, filter); });
		$('message').addEvent('keyup', function() { var filter = /^.{3,}$/i; validate(this, filter); });
	}


/**
 *  total maker
 */
	if($('formular_rezervari')) {
		var filter = /^[a-zäöü\ \-]{2,}$/i;
		if($('name').getProperty('value') != '' ) validate($('name'), filter);
		filter = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;
		if($('email').getProperty('value') != '' ) validate($('email'), filter);
		filter = /^[\+]*[0-9\ ]{3,}$/i;
		if($('phone').getProperty('value') != '' ) validate($('phone'), filter);
		filter = /^.{3,}$/i;

		$('name').addEvent('keyup', function() { var filter = /^[a-zäöü\ \-]{2,}$/i; validate(this, filter); });
		$('email').addEvent('keyup', function() { var filter = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i; validate(this, filter);	});
		$('phone').addEvent('keyup', function() { var filter = /^[\+]*[0-9\ ]{3,}$/i; if(this.getProperty('value') ) validate(this, filter); });

		$$('#formular_rezervari select').addEvent('change', function() { total(); });
	}
});


addLoadEvent(calendar_init);






