/////// MY WEB FACE CREATOR JS //////////


//////////////////////////// [ Last submitters ] ////////////////////////////
function ajaxFail(request)
{
	
}
function ajaxSucceed(request)
{
	var splitt = request.responseText.split("////Split123////");
	lastSubmittedFaces = splitt[0];
	var html = splitt[1];
	document.getElementById('lastSubmittersContent').innerHTML = html;
	lastFacesSlider = new Slider.slider('lastFacesDiv', null, 10, 450);
	//EVENTS.addEventListener(lastFacesSlider.dontScrollEvent, doneScrolling);
	proccessLastSubmitters();
}
var lastSubmitAjax = new AJAX.request('http://home.mywebface.com/faceApp/index.pl', AJAX.Method.POST, AJAX.Type.ASYNC, ajaxSucceed, ajaxFail, ajaxFail);

var lastFacesSlider = null;
function initLastSubmitters()
{
	if (window.location.search.indexOf("clearList=1") !== -1)
		lastSubmitAjax.start("action=getLastFaces&clearList=1");
	else
		lastSubmitAjax.start("action=getLastFaces");
}

function proccessLastSubmitters()
{
	lastSubmittersList = new Array();
	var lastSubmittersArray = lastSubmittedFaces.split(',');
	var l = lastSubmittersArray.length;
	for (var i=0;i<l;++i)
	{
		var _image = new lastImage(lastSubmittersArray[i]);
		
		// setting prev //
		if (i !== 0)
		{
			_image.prev = lastSubmittersList[lastSubmittersArray[i-1]];
			lastSubmittersList[lastSubmittersArray[i-1]].next = _image;
		}
	}
	
	// setting first and last next/prev pointers //
	lastSubmittersList[lastSubmittersArray[l-1]].next = lastSubmittersList[lastSubmittersArray[0]];
	lastSubmittersList[lastSubmittersArray[0]].prev = lastSubmittersList[lastSubmittersArray[l-1]];
	
	lastSubmittersPopup = new Popup.Popup('lastFacePopup' ,null, {type: Popup.PositionType.SCREEN_CENTER_MIDDLE}, true);		
}


var lastSubmittedFaces = "{delimiter}$lastSubmittedFaces{/delimiter}";
var lastSubmittersArray = null;
var lastSubmittersList = null;
var lastSubmittersPopup = null;
var lastSubmittersId = -1;

function lastImage(id)
{
	id = id || null;
	if (id === null) return;
	
	this.id = id;
	
	// image link //
	var dirName = General.getDirName(id, 3);
	this.imageLink = "http://ak.home.mywebface.com/faces/" + dirName + "/" + id + ".jpg";
	this.image = new Image();
	this.image.src = this.imageLink;
	
	lastSubmittersList[id] = this;
}
lastImage.prototype.id = 0;
lastImage.prototype.imageLink = '';
lastImage.prototype.next = '';
lastImage.prototype.prev = '';


function lastScroll(dir)
{
	if (dir === 'left')
		lastFacesSlider.move("left");
	else if (dir === 'right')
		lastFacesSlider.move("right");
}

function showFace(id)
{
	var div = General.$('faceApp');
	if (div !== null)
	{
		div.style.visibility = 'hidden';	
	}

	// saving last id //
	lastSubmittersId = id;
	
	// showing image //
	document.getElementById('lastFaceImage').src = lastSubmittersList[id].image.src;
	document.getElementById('lastFaceImage').width = lastSubmittersList[id].image.width > 300 ? 300 : lastSubmittersList[id].image.width;
	document.getElementById('lastFaceImage').height = lastSubmittersList[id].image.height > 400 ? 400 : lastSubmittersList[id].image.height;
	
	// sending stats //
	if (typeof(urchinTracker) !== 'undefined')
		urchinTracker('/GAS/slideBar');
	
	// showing popup (if needed) //
	lastSubmittersPopup.show();
}

function hideFace()
{
	var div = General.$('faceApp');
	if (div !== null)
	{
		div.style.visibility = 'visible';	
	}

	// hiding popup //
	lastSubmittersPopup.hide();
	
	// fixing appearance bug //
	/*
	document.getElementById('theapp').style.visibility = 'hidden';
	document.getElementById('theapp').style.visibility = 'visible';
	document.getElementById('theappAnchor').style.visibility = 'visible';
	document.getElementById('flashDiv').style.visibility = 'visible';
	*/
}

function lastSubmittersChange(direction)
{
	if (direction === -1)
	{
		showFace(lastSubmittersList[lastSubmittersId].prev.id);
	}
	else if (direction === 1)
	{
		showFace(lastSubmittersList[lastSubmittersId].next.id);
	}
}

//////////////////////////// [ POPUPS ] ////////////////////////////
function hideMWFflash()
{
	//if (General.browser === 'ie6' || General.browser === 'ie7' || General.browser === 'ie8')
	//{
		try
		{
			//var _obj = (navigator.userAgent.indexOf("Firefox") !== -1)? (General.getFlashMovieObject('faceApp')) : (document.getElementById('faceApp'));
			var _obj = document.getElementById('faceApp');
			if(_obj !== null)
			{
				_obj.style.width = "1px";
				_obj.style.height = "1px";
			}
		}
		catch(e)
		{
			alert('Exception: ' + e.message);	
		}
	//}
	//else
	//{
	//	var div = General.$('faceApp');
	//	if (div !== null)
	//	{
	//		div.style.visibility = 'hidden';	
	//	}
	//}
}

function showMWFflash()
{
	//~ if (General.browser === 'ie6' || General.browser === 'ie7' || General.browser === 'ie8')
	//~ {
		var _obj = document.getElementById('faceApp');
		if(_obj !== null)
		{		
			_obj.style.width = "780px";
			_obj.style.height = "560px";
		}	
	//~ }
	//~ else
	//~ {
		//~ var div = General.$('faceApp');
		//~ if (div !== null)
		//~ {
			//~ div.style.visibility = 'visible';
		//~ }
	//~ }	
}

//////////////////////////// [ POST SAVE ] ////////////////////////////
/// flash set state function ///
var isTimer = false;
var fbInvoker = '';
function setState(stateString)
{
	if (!isTimer)
	{
		isTimer = true;
		setTimeout(function(){setState(stateString)},100);
	}
	else
	{
		isTimer = false;
		var _e = General.getFlashMovieObject('faceApp');
		if (_e === null)
			return;

		_e.setState(stateString);
		//eval("_e.setState('"+stateString+"')");
	}
}


function addHideEventListener()
{
	if (PostSave.hideEvent === null)
	{
		setTimeout(addHideEventListener,500);
		return;
	}
	
	//// post save events ///
	EVENTS.addEventListener(PostSave.hideEvent, postSaveHideHandler);
}

function postSaveHideHandler(hideSource)
{
	if (hideSource === "x")
		setState("edit");
}

function userHasRegistered(theType, uid)
{
	var _obj = null;
	try
	{
		_obj = General.getFlashMovieObject('faceApp') || null;
	}
	catch(e)
	{
		alert('Unable to save your current face');
	}
	
	try
	{
		if (theType !== '')
		{
			if (_obj !== null)
			{
				_obj.register();
			}
		}
		else
		{
			if (_obj !== null)
			{
				_obj.logout();
			}
		}
	}
	catch(e)
	{}
}
