// JavaScript Document

var Contact = Class.create({
	
	initialize : function () {
			
			this.options = { height:300, width:400 };
			this.options = Object.extend(this.options,arguments[0]||{});
		},
	
	open : function () {
			this.overlay = new S2.UI.Overlay();
			//overlay.setStyles({position:'absolute',opacity:'.8',backgroundColor:'#8EC864'});
			//overlay.element.setStyles({position:'absolute',opacity:'.6',backgroundColor:'#0065A5'});
			this.box = new Element('div',{id:'form-contact'}).setStyle({width:this.options.width+'px',overflow:'auto',position:'absolute'});
			
			if ( Prototype.Browser.IE )
				this.box.setStyle({backgroundColor:'#C5D7E8',backgroundImage:'/img/bg_contact.jpg'});
			
			var form = '<table><tr><th>Name :</th><td><input id="contact-name" type="text"></td></tr>'
					  +'<tr><th>Email :</th><td><input id="contact-email" type="text"></td></tr>'
					  +'<tr><th>Message :</th><td><textarea id="contact-message"></textarea></td></tr>'
					  +'<tr><th>&nbsp;</th><td><button id="contact-send">Send</button><button id="contact-close">Close</button></td></tr>'
					  +'</table>';
			this.box.insert( form );
			
			this.position();
			
			$(document.body).insert(this.overlay);
			$(document.body).insert(this.box);
			
			Event.observe(window,'scroll',this.position.bind(this));
			Event.observe(window,'resize',this.position.bind(this));
			
			$('contact-send').observe('click',this.send.bind(this));
			$('contact-close').observe('click',this.close.bind(this));
			
			this.overlay.toElement().observe('click',this.close.bind(this));
			
		},
	
	position : function () {
			if ( !this.box ) return;
			
			var vp = document.viewport.getDimensions();
			var s = document.viewport.getScrollOffsets();
			var t = (s.top+150)+'px';
			var l = (((vp.width-this.options.width)/2)+s.left)+'px';
			if ( !arguments[0] )
				this.box.setStyle({top:t,left:l});
			else
				this.box.morph('top:'+t+';left:'+l+';',{duration:.5});
		},
	
	close : function () {
			$(document.body).removeChild( this.box );
			this.overlay.destroy();
			this.box = null;
			this.overlay = null;
			
		},
	
	send : function () {
			var p = '?f=contact&name='+$('contact-name').value+'&email='+$('contact-email').value+'&message='+$('contact-message').value;
			new Ajax.Request('/js/ajax.php',
							 { parameters:p
							 , onComplete:function(r){
								 var j = r.getHeader('X-JSON');
								 this.box.update( r.responseText );
								 
								$('contact-close').observe('click',this.close.bind(this));
								$('contact-send').observe('click',this.send.bind(this));
								 }.bind(this)});
		}

});

Event.observe( window, 'load', function() {
	
	var con = new Contact();
	var c=$$('.contact'), i=c.length;
	while( i-- )
		c[i].observe('click',con.open.bind(con)).setStyle({cursor:'pointer'}).removeAttribute('href');
	
});
