var spConfig = {
	
	'progressHtml': '<p style="margin: 5.5em 0 0 6em;">Progress ...</p>',
	'completeHtml': '<p style="margin: 5.5em 0 0 1.5em;text-align: center;">Page sent. Thank you.<br /><a href="javascript:void(0);" onclick="pshare.showProgress(false);">Close</a></p>',
	'errorInputMessage': 'Please enter data correctly'
	
}

function SharePage(){
	
	this.opened = 0;
	
}

SharePage.prototype.process = function(){
	
	if( this.opened == 0 ){ 
		
		if( !(div = $('_spContainer')) ){
			var div = $(document.createElement('div'));
			div.id = '_spContainer';
			document.body.appendChild(div);	
		}
		
		div.addClassName('spContainer');
		
		var url = '/templates/missionsociety/sharepage.php';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {'action' : 'load'},
			onSuccess: function( transport ){
				new Insertion.Bottom(div, transport.responseText);
			}
		});
		pos = this.findPos($('_aSharePage'));
		div.style.left = pos[0];
		div.style.top = (pos[1] - div.getHeight()) + 'px';		
		div.addClassName('visible');
		
		this.opened = 1;
		
	} else {
		
		if( (div = $('_spContainer')) ){ 
			div.remove();
			delete div;
		}
		this.opened = 0;
		
	}
	
	/*this.showProgress(true, spConfig.completeHtml);*/
	
}

SharePage.prototype.send = function(){
	
	if( (form = $('_spForm')) ){
		
		this.showProgress(true, spConfig.progressHtml);
		
		var parent = this; // emulate parent object for inner objects
		
		var url = '/templates/missionsociety/sharepage.php';
		form.action = url;
		form.location.value = window.location;
		form.title.value = document.title;
		
		form.request({
			method: 'post',
			parameters: {'action' : 'send'},
			onSuccess: function( transport ){
				switch( transport.responseText ){
					case 'VALIDATE_SUCCESS':						
						form.request({
							method: 'post',
							parameters: {'action' : 'mail'},
							onSuccess: function( transport ){
								parent.showProgress(false); // hide old process bar
								parent.showProgress(true, spConfig.completeHtml); // show complete process bar
								parent.process(); // remove process dialog
							}
						});
						break;
					default:
						parent.showProgress(false); // hide process dialog
						alert(spConfig.errorInputMessage); // alert error message						
						break;
				}
			}
		});	
	
	}
	
}

SharePage.prototype.showProgress = function( state, html ){
	
	if( state ){
	
		var div = $('_spContainer');
		var pdiv = $(document.createElement('div'));
		pdiv.id = '_spProgress';
		
		pdiv.setStyle({
			'width': div.getWidth(),
			'height': div.getHeight(),
			'position': 'absolute',
			'zIndex': 1000,
			'top': div.style.top,
			'left': div.style.left,
			'backgroundColor': '#dde9f5',
			'display': 'block'
		});
	
		if( html ) pdiv.innerHTML = html;
		
		document.body.appendChild(pdiv);
	
	} else {
		
		if( (pdiv = $('_spProgress')) ){
			pdiv.remove();
			delete pdiv;
		}
		
	}
	
}

SharePage.prototype.findPos = function( obj ){
	
	var curleft = curtop = 0;
	if( obj.offsetParent ){
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while( obj = obj.offsetParent ){
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft, curtop];
	
}

var pshare = new SharePage();