var aFields = new Array();
aFields[0] = 'leave_a_review_title';
aFields[1] = 'leave_a_review_review';
aFields[2] = 'leave_a_review_name';
aFields[3] = 'leave_a_review_email';

var aValues = new Array();
aValues[0] = 'Review Title';
aValues[1] = 'Review';
aValues[2] = 'Your Name (Optional)';
aValues[3] = 'Your Email (Optional)';

if( !Array.indexOf )
{
    Array.prototype.indexOf = function(obj)
    {
        for(var i = 0; i < this.length; ++i)
        {
            if( this[i] == obj )
            {
                return i;
            }
        }
            
        return -1;
    }
}

function doOnload()
{
    for(i = 0; i < aFields.length; ++i)
    {
        fillValue(aFields[i]);
    }

    starRating();

    Recaptcha.create('6LdCaAQAAAAAALR6pWFySEQXkA723-wRNpHmdEJj',
    'leave_a_review_captcha', {
       theme: 'red',
       callback: displayForm(false)
    });
    
    displayForm(false);
    
    if ( document.images )
    {
      oEmpty     = new Image(15, 15); 
      oEmpty.src = 'images/stars/empty.gif'; 

      oFull     = new Image(15, 15); 
      oFull.src = 'images/stars/full.gif'; 
    }

}

function displayForm(bDisplay)
{
    if ( bDisplay ) 
    {
        $('#leave_a_review_form').slideDown();
        $('#legend').html('<a href="#" onclick="displayForm(false); return false;" class="topbarlink">Close<\/a>');
    }
    else
    {
        $('#leave_a_review_form').slideUp();
        $('#legend').html('<a href="#" onclick="displayForm(true); return false;" class="topbarlink">Leave A Review<\/a>');
    }   
}

function emptyValue(sElement)
{
    var iIndex = aFields.indexOf(sElement);
                        
    if ( $('#' + sElement).val() == aValues[iIndex] )
    {
        $('#' + sElement).val('').removeClass('default').addClass('completing');
    }
}

function fillValue(sElement)
{
    var iIndex = aFields.indexOf(sElement);
    var sValue = $('#' + sElement).val();
    
    if ( sValue.length == 0 || sValue == aValues[iIndex] )
    {   
        $('#' + sElement).val(aValues[iIndex]).addClass('completing').addClass('default');
    }
}

function starRating(iNumber)
{
    var iRating = $('#leave_a_review_rating').val();
    
    if ( !iNumber )
    {
        if ( iRating.length == 0 )
        {
            iNumber = 0;
        }        
        else
        {
            iNumber = parseInt(iRating);
        }
    }
    else
    {
        if ( iNumber > 0 && iRating == iNumber )
        {
            iNumber--;
        } 
    }
    $('#leave_a_review_rating').val(iNumber); 
 
    var sComment = '';
    switch(iNumber)
    {
        case 1:
            sComment = 'Hated it';
            break;
        case 2:
            sComment = 'Disliked it';
            break;
        case 3:
            sComment = 'It was OK';
            break;
        case 4:
            sComment = 'Liked it';
            break;
        case 5:
            sComment = 'Loved it';
            break;
    } 
    $('#leave_a_review_rating_comment').html(sComment);
 
    var sHtml = '';
    for(var i = 1; i <= iNumber; ++i)
    {
        sHtml += '<a href="#" onclick="starRating(' + i + '); return false;"><img src="images/stars/full.gif" border="0" /><\/a>';
    }
    
    var iLeft = 5 - iNumber;
    for(var i = 1; i <= iLeft; ++i)
    {
        sHtml += '<a href="#" onclick="starRating(' + (i + iNumber) + '); return false;"><img src="images/stars/empty.gif" border="0" /><\/a>';
    }
    
    $('#leave_a_review_rating_stars').html(sHtml);
}

function postForm(sCity, sCountry) 
{   
    var aInputs = new Array('leave_a_review_title', 
                            'leave_a_review_rating', 
                            'leave_a_review_review', 
                            'leave_a_review_name', 
                            'leave_a_review_email', 
                            'leave_a_review_newsletter',
                            'leave_a_review_submit'
                            );
    var aData = new Array();
    var iKey  = 0;
    for(var i = 0; i < aInputs.length; ++i)
    { 
        if ( $('#' + aInputs[i]).attr('id') == 'leave_a_review_newsletter' )
        {
            if ( $('#' + aInputs[i]).attr('checked') == true )
            {
                aData[iKey] = $('#' + aInputs[i]).attr('name') + '=on'; 
                ++iKey;
            }
        }
        else
        {
            aData[iKey] = $('#' + aInputs[i]).attr('name') + '=' + $('#' + aInputs[i]).val();
            ++iKey;
        }
    }

    aData[iKey]   = 'city=' + sCity;
    aData[++iKey] = 'country=' + sCountry;
    aData[++iKey] = 'recaptcha_challenge_field=' + Recaptcha.get_challenge();
    aData[++iKey] = 'recaptcha_response_field=' + Recaptcha.get_response();

    $.ajax({
       type: 'POST',
       url: 'includes/php/process.php',
       data: aData.join('&'),
       success: function(sResponse){
           handleResponse(sResponse);
       }
     });
}

function handleResponse(sResponse) 
{
    if ( sResponse == '' )
    {
        $('#leave_a_review_messages').html('<img src="images/icons/success.png" alt="Success" /> Thank you for your review').addClass('success'); 
		
		$('#leave_a_review_messages').fadeIn('slow', function() {
            $('#leave_a_review_messages').fadeOut('slow', function() {
			    $('#leave_a_review').slideUp();      	
			});
        });             
    }
    else
    {
        $('#leave_a_review_messages').html('<img src="images/icons/warning.png" alt="Warning" /> ' + sResponse).addClass('warning');
          
		if ( sResponse == 'Please ensure you have entered a valid C.A.P.T.C.H.A.' )
		{
		 	Recaptcha.reload();     
		} 
		
		$('#leave_a_review_messages').fadeIn();
        $('#leave_a_review_messages').fadeOut();
    }
}

window.onload = doOnload;
