/* select.js
 * 
 * This script allows the user to select attributes and conduct a search through AJAX.
 * It requires jQuery.
 * 
 * version 1.00
 *
 * (c) Copyright 2009 The Perfect Watch. All Rights Reserved. 
 */

BASE_URL = 'http://www.theperfectwatch.com/';
FIND_PATH = 'engine/find.php';

function setAttribute(attr, setTo) {
    $('#parameter-'+attr).val(setTo);
}

function update(attributeArray) {
    // use: update([['gender','m']])
    $.each(attributeArray, function() {
            setAttribute(this[0], this[1]);
        });
    
    parameters = $('#parameters').serialize();
    parameters = parameters.replace(/\+/g, '%20'); // necessary...?
    
    $('#results').innerHTML = '';
    $('#results').slideUp(10);
    
	$.ajax({
	    type: "GET",
	    url: BASE_URL+FIND_PATH,
	    data: parameters,
	    dataType: 'html',
	    success: function(transport) {
	        showResult(transport);
	    },
	    error: function(transport) {
	        catchFailure();
	    }
	});
}

function catchFailure() {
    // do nothing for now
}

function showResult(transport) {
    REPLACE_LOCK = true;
    if(transport.substring(0,16)=='<!-- success -->') {
        // a successful output always starts with '<!-- success -->'
        $('#results')[0].innerHTML = transport;
        $('#results').slideDown(2000);
    } else {
        $('#results')[0].innerHTML = '<h2>Sorry, an error occured. Try a different selection.</h2>';
        $('#results').slideDown(200);
    }
}

function selectGender(type) {
    update([['gender', type]]);
    if(type=='m') {
        $('#selectMens').addClass('selected');
        $('#selectWomens').removeClass('selected');
        $('#selectMens').blur();
    } else if(type=='w'){
        $('#selectWomens').addClass('selected');
        $('#selectMens').removeClass('selected');
        $('#selectWomens').blur();
    } else if(type==''){
        $('#selectMens').removeClass('selected');
        $('#selectWomens').removeClass('selected');
        $('#selectNoGender').blur();
    }
    return false;
}

function selectPrice(min, max, id) {
    update([['minPrice', min], ['maxPrice', max]]);
    $('#selectPrice1').removeClass('selected');
    $('#selectPrice2').removeClass('selected');
    $('#selectPrice3').removeClass('selected');
    $('#selectPrice4').removeClass('selected');
    if(id!='none') {
        $('#selectPrice'+id).addClass('selected');
        $('#selectPrice'+id).blur();
    }
    $('#selectNoPrice').blur();
    return false;
}

function toggleFeature(feature) {
    selector = $('#selectFeature-'+feature);
    if(selector.hasClass('selected')) {
        update([[feature, '']]);
        selector.removeClass('selected');
    } else {
        update([[feature, '1']]);
        selector.addClass('selected');
    }
    selector.blur();
    return false;
}

/* Initialization Functions */

function initializeSelector() {
}

setTimeout(function() {	
        initializeSelector();
    }, 100);