String.prototype.stripslashes = function()
{
	return this.replace(/\\/g, '');
}

function _email(message)
{
	var s = document.getElementById('quoteContent').innerHTML;
	var a = document.getElementById('author').innerHTML;
	if (a.length > 0) // we have a quote to work with
	{
		var q = '"' + escape(s.substr(1, s.length-2)) + escape('"<br /> - ') + escape(a);
		document.location.href = 'mailto:?subject=A%20great%20quote%20from%20Quip&body=' + q + escape(' <br /><br /> (Get quotes on your iPhone at http://onetrip.org/quip)');
	}
}

function _prev()
{
	id = document.getElementById('prevId').value;
	if (id != 0)
		loadQuote(id);
}
function _next()
{
	id = document.getElementById('nextId').value;
	if (id <= lastId)
		loadQuote(id);
}

function dateDiff(date1, date2)
{
	return Math.floor((date1.getTime() - date2.getTime()) / (1000*60*60*24));
}

function makeTitleDate(date)
{
	var today = new Date();
	var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

	var result = months[date.getMonth()] + ' ' + date.getDate();
	if (date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth() && date.getDate() == today.getDate())
		result = 'Today, ' + result;
	return result;
}

// AJAXzor
var req;
var id;
var quote;
var author;

function loadQuote(id) {

	// loading state
	document.getElementById('title').innerHTML = 'Loading quote&thinsp;&hellip;';
	//document.getElementById('quoteContent').innerHTML = '<br /><br /><br /><br /><br />';
	//document.getElementById('author').innerHTML = '';
	document.getElementById('btnEmail').className += ' disabled ';

	req = false;

	args = 'id=' + id;

    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest && !(window.ActiveXObject))
    {
    	try
    	{
			req = new XMLHttpRequest();
        }
        catch(e)
        {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    }
    else if(window.ActiveXObject)
    {
       	try
       	{
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	}
      	catch(e)
      	{
        	try
        	{
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	}
        	catch(e)
        	{
          		req = false;
        	}
		}
    }
	if (req)
	{
		document.getElementById('title').innerHTML = makeTitleDate(new Date(startDate.getTime() + 1000*60*60*24*id));

		if (id > 1)
		{
			// there are previous quotes
			document.getElementById('prevId').value = parseInt(id - 1);
			document.getElementById('btnPrev').src =  imgPrev.src;
		}
		else
		{
			// no previous quotes
			document.getElementById('prevId').value = 0;
			document.getElementById('btnPrev').src = imgPrev1.src;
		}

		if (id < lastId)
		{
			// there are next quotes
			document.getElementById('nextId').value = (parseInt(id) + 1);
			document.getElementById('btnNext').src = imgNext.src;
		}
		else
		{
			// no next quotes
			document.getElementById('nextId').value = lastId;
			document.getElementById('btnNext').src = imgNext1.src;
		}

		// get data
		req.onreadystatechange = processReqChange;
		req.open("POST", 'quote.php', true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.send(args);
	}
}

function processReqChange()
{
    // only if req shows "loaded"
    if (req.readyState == 4)
    {
        // only if "OK"
        if (req.status == 200)
        {
			eval(req.responseText);

			// final output
			document.getElementById('quoteContent').innerHTML = '&ldquo;' + quote.stripslashes() + '&rdquo;';
			document.getElementById('author').innerHTML = author;

			document.getElementById('btnEmail').className = document.getElementById('btnEmail').className.replace(/ disabled /g, '');
        }
        else
        {
           document.getElementById('quoteContent').innerHTML = "Sorry, couldn't load the quote&thinsp;&hellip; Are you sure you're still online?";
           document.getElementById('author').innerHTML = "";
           document.getElementById('title').innerHTML = "Ooops&thinsp;&hellip;";
        }
    }
}