//common.js
function _e(el) { return document.getElementById(el); }

jQuery(document).ready(function($){
  $('.tooltipToggleOuter a').toggle(function(){
    $(this).after('<div class="tooltipTarget"></div>');

    var key = ($(this).attr('id'));

    if (typeof(tooltips[key]) != 'undefined'){
      $(this).next('.tooltipTarget').html(tooltips[key]);
    }

    return false;
  },function(){
    $(this).next('.tooltipTarget').remove();

    return false;
  });
});
//ajax.js
// JScript File
//var ajaxCallback = null;


function ajax_get(url, callback)
{
	if (window.XMLHttpRequest)
	{
    var http = new XMLHttpRequest();
	}
	else
	{
		if (window.ActiveXObject)
		{
      var http = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
	}

	http.open("GET", url, true);
	
	http.onreadystatechange = function() {
		if(http.readyState == 4)
		{
			if(http.status == 200)
			{
				if(callback)
					callback(http.responseText);
				//TODO: test in IE6
			}
			else
			{
				if(callback)
					callback(null);
			}
		}
	};
	http.send(null);	
}

function ajax_post(url, params, successCallback, errorCallback, cbparam)
{
	if (window.XMLHttpRequest)
	{
    var http = new XMLHttpRequest();
	}
	else
	{
		if (window.ActiveXObject)
		{
      var http = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
	}

	http.open("POST", url, true);
	
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	
	http.onreadystatechange = function() {
		if(http.readyState == 4)
		{
			if(http.status == 200)
			{
				if(successCallback)
				  successCallback(http.responseText, cbparam);
			}
			else
			{
				if(errorCallback)
				  errorCallback(cbparam);
			}
		}
	};
	http.send(params);
}
//menu.js
function closeProject(idx, curopen, menuid)
{
	// If the project is currently open, then confirm that the user wants to save changes and close
	if(curopen)
	{
		// TODO: Confirm
		_e('destinput').value = 'closeproject';
		if(_e('design_form') != null)
			_e('design_form').submit();
		else if(_e('addphotos_form') != null)
			_e('addphotos_form').submit();
		else if(_e('updateform') != null)	// For finish page
		{
			buildImagePositions();
			_e('updateform').submit();
		}
	}
	// Otherwise, just make an ajax request to close the project and remove it from the menu
	else
	{
		var li = _e(menuid);
		li.parentNode.removeChild(li);
		ajax_get('closeproject?idx='+idx, null);
	}
}
//slideshow.js
function _e(x) { return document.getElementById(x); }
var slideShowCurIdx = 0;
var slideShowPaused = false;
var slideShowPicList = null;
var slideShowTextId = null;
var slideShowPauseId = null;
var slideShowPlayId = null;
var slideShowTimeout = null;
var slideShowUpdateTime = 0;
function createSlideShow(piclist, leftid, pauseid, playid, rightid, textid, updateTime)
{
	slideShowPicList = piclist;
	slideShowTextId = textid;
	slideShowPauseId = pauseid;
	slideShowPlayId = playid;
	slideShowUpdateTime = updateTime ? updateTime : 0;
	updateVisibleSlide();
	updateVisibleButtons();
	
	_e(leftid).onmouseup = function() {
		slideShowCurIdx--;
		if(slideShowCurIdx < 0)
			slideShowCurIdx = slideShowPicList.length - 1;
		updateVisibleSlide();
		if(slideShowTimeout)
			clearTimeout(slideShowTimeout);
		if(!slideShowPaused && updateTime > 0)
			slideShowTimeout = setTimeout("timerNextSlide()", updateTime);
	}
	_e(pauseid).onmouseup = function() {
		slideShowPaused = true;
		updateVisibleButtons();
		if(slideShowTimeout)
		{
			clearTimeout(slideShowTimeout);
			slideShowTimeout = null
		}
	}
	_e(playid).onmouseup = function() {
		slideShowPaused = false;
		updateVisibleButtons();
		if(slideShowTimeout)
			clearTimeout(slideShowTimeout);
		slideShowTimeout = setTimeout("timerNextSlide()", updateTime);
	}
	_e(rightid).onmouseup = function() {
		slideShowCurIdx++;
		if(slideShowCurIdx >= slideShowPicList.length)
			slideShowCurIdx = 0;
		updateVisibleSlide();
		if(slideShowTimeout)
			clearTimeout(slideShowTimeout);
		if(!slideShowPaused && updateTime > 0)
			slideShowTimeout = setTimeout("timerNextSlide()", updateTime);
	}
	
	if(updateTime > 0)
		slideShowTimeout = setTimeout("timerNextSlide()", updateTime);
}

function timerNextSlide()
{
	slideShowCurIdx++;
	if(slideShowCurIdx >= slideShowPicList.length)
		slideShowCurIdx = 0;
	updateVisibleSlide();
	if(slideShowTimeout)
		clearTimeout(slideShowTimeout);
	slideShowTimeout = setTimeout("timerNextSlide()", slideShowUpdateTime);
}

function updateVisibleSlide()
{
	for(var i=0;i<slideShowPicList.length;i++)
		_e(slideShowPicList[i]).style.display = (i == slideShowCurIdx) ? 'block' : 'none';
	_e(slideShowTextId).innerHTML = (slideShowCurIdx+1) + ' of ' + slideShowPicList.length;
}

function updateVisibleButtons()
{
	_e(slideShowPlayId).style.display = (slideShowUpdateTime == 0) ? 'none' : (slideShowPaused ? 'inline' : 'none');
	_e(slideShowPauseId).style.display = (slideShowUpdateTime == 0) ? 'none' : (slideShowPaused ? 'none' : 'inline');
}



