// JavaScript Document

var text_input_default_text = "keywords";
var more_options_text = "+";
var less_options_text = "&#8212;";

var gallery_url = "http://repper.studioludens.com/gallery.html";


// global search object
//var searchObject;

function doSearch(){
	
	var tags = $('#keyword_search_input').val();
    var color = getColorPickerValue(1);
	
	var size = $('#size_select').attr('value');	
	var order = $('#order_select').attr('value');
	
	
	if( order == "random" && color == "undefined" && tags == "" && size == "" )
		order = "";
	
	if( order == "random" && ( color != "undefined" || tags != "" || size != "" ) )
		order = "recent";
	
	
    searchObject = { t: (tags ? tags : ''), c1: ( (color != 'undefined') ? color : ''), o: order, s: size };	
	
	var url = gallery_url;
	url += "?";
	
	var firstElement = true;
	for (var prop in searchObject) {
		if( searchObject[prop].toString() != "") {
			
			if(firstElement)
				firstElement = false;
			else
				url += "&";
				
			url += prop.toString() + "=" + searchObject[prop].toString();
		}
	}
	
	window.location =  url;
}

function doResetSearch(){
	window.location = gallery_url;
}
	

$('#search_box').ready( function() {
	
    
	// hide more options box
	$('#more_options_box').hide();
	// hide secondary color picker
	$('#secondary_color_pickers').hide();
	
	// set event listeners for color pickers
	setColorPickerEvents();
	
	
	// more options toggle
	$('#more_options_toggle').html( more_options_text );
	$('#more_options_toggle').attr("title", "more/less options");
	
	$('#more_options_toggle').click( 
		function() {
			if( $(this).text().toString() == more_options_text ) {
				$(this).html( less_options_text );
				$('#more_options_box').slideDown("normal");
				$('#secondary_color_pickers').fadeIn("normal");
			}
			else {
				$(this).html( more_options_text );
				$('#more_options_box').slideUp("normal");
				$('#secondary_color_pickers').fadeOut("normal");
			}
		}
	);
	
    $('#search_button').click(function(){
		
		doSearch();
    });
	
	 $('#reset_button').click(function(){
		
		doResetSearch();
    });
	
	$('#order_select').change( function() {
		
		doSearch();
	} );
		
    
	$('#keyword_search_input').keypress( function(e){
        // when the user presses enter on the search box
        if(e.which == 13){
            doSearch();
        }
    });
    
    $('#keyword_search_input').toggleVal();
	   
	
	// tooltips
	$("#more_options_toggle, .secondary-option, .selected-color-container, #keyword_search_input").tooltip(
		{ 
			track: true, 
			delay: 0, 
			showURL: false, 
			showBody: " - ", 
			fade: 250,
			bottom: 0,
			left: 10
		}
	);
	
	// toggle buttons
	$('.toggle-button').hover(
		function() { 
			if( ! $(this).hasClass("toggle-button-selected") )
				$(this).addClass("toggle-button-hover");
		},
		function() { 
				$(this).removeClass("toggle-button-hover");
		}
	);
	
	$('.toggle-button').click(
		function() { 
			if( $(this).hasClass("toggle-button-selected") ) {
				$(this).removeClass("toggle-button-selected");
			}
			else {
				$(this).siblings().removeClass("toggle-button-selected");
				$(this).addClass("toggle-button-selected");
			}
		}
	);
} );

function getColorPickerValue( color_picker_no ) {
				
	var primary_color = $('#color_picker_' + color_picker_no + ' .selected-color' ).css("background-color");

	if( primary_color.substring(0,4) == "rgba" )
		return "undefined";
	else if( primary_color.substring(0,3) == "rgb" )
		return cssToHex( primary_color );
	else
		return "undefined";
}

function getUrlParameter(name)
{ 
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
var regexS = "[\\?&]"+name+"=([^&#]*)"; 
var regex = new RegExp( regexS ); 
var results = regex.exec( window.location.href ); 
if( results == null )    return ""; 
else return results[1];
}
