var user_name= '';

onload = init;

/**
 * Initialize application - get parameter.
 */
function init() {
	var args = window.location.search.split('?hero=');
	if (args.length > 1) {
		user_name= args[1];
	}
	else {
		var file_name = window.location.pathname.split('/').pop();
		if (null != file_name && '' != file_name && 'index.html' != file_name){
			user_name= file_name;
		}
	}
	if ('' != user_name){
		form= document.getElementById('tellafriendForm');
		form['sender-name'].value = user_name;
	}

	var anker = window.location.href.split('#')[1];
	show(anker);
};

/**
 * Video is complete.
 */
function onVideoComplete() {
	show('tellafriend');
};

/**
 * Show page by ID.
 */
function show(id) {
	var i;
	var ids = ['videoclip', 'tellafriend', 'support', 'imprint'];
	var isValidId = false;
	for (i = 0; i < ids.length; i++) {
		if (ids[i] == id) {
			isValidId = true;
			break;
		}
	}
	if (!isValidId) id = ids[0];
	if (document.getElementById) {
		for (i = 0; i < ids.length; i++) {
			var div = document.getElementById(ids[i]);
			if (div) {
				div.style.display = (ids[i] == id) ? "block" : "none";
			}
		}
		if (id == ids[0]) showVideoClip(user_name, '');
	}
	return isValidId
};

/**
 * Show video clip.
 */
 function showVideoClip(hero_firstname, hero_lastname) {
	if ('' == hero_firstname) hero_firstname= 'Du';
	swfobject.embedSWF(
		'swf/stimmzettel.swf',
		'videoclip', '640', '360', '9.0.0', 'js/expressInstall.swf', {
			configuration: 'xml/stimmzettel.xml',
			firstname: hero_firstname, lastname: hero_lastname
		},
		{ bgcolor: '#ffffff', menu: 'false', allowscriptaccess: 'always' },
		{ name: 'videoclip', id: 'videoclip' }
	);
}

// --- here comes the data interface ---

var tellAFriendData = new sack();

/**
 * Submit tellafriend form data.
 */
function tellAFriend(form) {
	var sender = new User(
		form['sender-name'].value,
		form['sender-email'].value
	);
	var friends = [
		new User(
			form['friend-one-name'].value,
			form['friend-one-email'].value
		),
		new User(
			form['friend-two-name'].value,
			form['friend-two-email'].value
		),
		new User(
			form['friend-three-name'].value,
			form['friend-three-email'].value
		)
	];
	tellAFriendData.requestFile = 'tellafriend.api.php'
		+'?sn='+sender.name +'&se='+sender.email
		+'&fan='+friends[0].name +'&fae='+friends[0].email
		+'&fbn='+friends[1].name +'&fbe='+friends[1].email
		+'&fcn='+friends[2].name +'&fce='+friends[2].email
	;
	tellAFriendData.element = 'response-data';
	tellAFriendData.method = 'get';
	tellAFriendData.onLoading = dataLoading;
	tellAFriendData.onLoaded = dataLoaded;
	tellAFriendData.onInteractive = dataInteractive;
	tellAFriendData.onCompletion = dataCompleted;
	tellAFriendData.runAJAX();
	return false;
}

/**
 * Provides the user settings.
 */
function User(name, email) {
	this.name = name;
	this.email = email;
}

/**
 * The ajax functions.
 */
function setStatus(msg) {
	var str = (msg != '') ? '<p><small>'+ msg +'</small></p>' : '';
	var el = document.getElementById('data-status');
	if (el) el.innerHTML = str;
}
function dataLoading() {
	setStatus("sending data ...");
}
function dataLoaded() {
	setStatus("data sent ...");
}
function dataInteractive() {
	setStatus("receiving data ...");
}
function dataCompleted() {
	setStatus("");
	if (tellAFriendData.responseStatus) {
		var string = "Status Code: "+ tellAFriendData.responseStatus[0] +"\n"
			+"Status Message: "+ tellAFriendData.responseStatus[1] +"\n"
			+"URLString Sent: "+ tellAFriendData.URLString +"\n"
		;
	} else {
		var string = "URLString Sent: "+ tellAFriendData.URLString +"\n";
	}
	showResult();
}
function showResult() {
	var xml = tellAFriendData.responseXML;
	var errorCode = xml.getElementsByTagName('error')[0].getAttribute('code');
	var message = xml.getElementsByTagName('message')[0].firstChild.data;
	/* alert(
		'errorCode: '+ errorCode +"\n"+
		'message: '+ message
	); */
	alert(message);

	form= document.getElementById('tellafriendForm');
	form['friend-one-name'].value = form['friend-two-name'].value 
		= form['friend-three-name'].value = 'Name deines Freundes';
	form['friend-one-email'].value = form['friend-two-email'].value
		= form['friend-three-email'].value = 'E-Mail deines Freundes';

	setStatus('DANKE! ... ');
}
