	var current="#search-byimage";
	var pickers = 0;
	var urlRequest = '';
	
	function show(id){	
		hide(current);
		$(id).animate({opacity: "show"}, "fast");	
		current = id;
	}

	function hide(id){
		$(id).hide();
	}

	
	function addColor(){		
		pickers++;
		$('#colorForm').append("<div title='"+LANG_COLOR_SECOND+"'id='picker"+pickers+"' style='float: left;'><div class='colorBox' id='colorpickerHolder"+pickers+"'> </div><a href='#' onClick='removePicker("+pickers+");';>X</a></div>");
		var id = '#colorpickerHolder'+pickers;
		$('#colorpickerHolder'+pickers).ColorPicker({
			onSubmit: function(hsb, hex, rgb) {
				$(id).css("background-color", hex);
				
			},			
			onChange: function(hsb, hex, rgb) {
				$(id).css("background-color", hex);				
			}
		});				
	}
	function removePicker(id){
		$('#colorpickerHolder'+id).remove();
		$('#picker'+id).remove();
	}
		
	function getColors(){
		ret = '';
		for(i = 0; i <= pickers; i++){						
			if (document.getElementById("colorpickerHolder"+i)) {
				id = "#colorpickerHolder"+i;						
				col = $(id).css('background-color');
				var color = new RGBColor(col);
				ret = ret + color.r + ','+color.g+','+color.b+',';				
			}
		}			
		return ret;		
	}
	
	
	
	function ajaxFileUpload()
	{
		$("#loading")
		.ajaxStart(function(){
			$(this).show();
		})
		.ajaxComplete(function(){
			$(this).hide();
		});

		$.ajaxFileUpload
		(
			{
				url:SITE + "ajax/doajaxfileupload.php",
				secureuri:false,
				fileElementId:'fileToUpload',
				dataType: 'json',
				success: function (data, status)
				{
					if(typeof(data.error) != 'undefined')
					{
						if(data.error != '')
						{
							alert(data.error);
						}else
						{
							$("#linkInput").val(data.link);
						}
					}
					$("#fileToUpload").val("");
				},
				error: function (data, status, e)
				{
					alert(e);
				}				
			}
		)
		
		return false;

	}
	
	function selectLi(id){
		unselectLi(selectedLi);
		selectedLi = id;
		//$(selectedLi).css("background-image", "#f8fbfc url(web/li-active.png) no-repeat bottom right;");
		//$(selectedLi).css("border-bottom", "solid 1px #d9d9d9");
		//$(selectedLi).css("border-right", "solid 1px #d9d9d9");
		//$(selectedLi).css("border-left", "solid 1px #d9d9d9");
		$(id).removeClass().addClass("liSelected");
	}
	
	function unselectLi(id){
		//$(selectedLi).css("border-bottom", "none");
		//$(selectedLi).css("border-right", "none");
		//$(selectedLi).css("border-left", "none");
		$(id).removeClass().addClass("liUnselected");
	}
	
	
	
	// goes to search page
	function send(){
		var type = 0;		
		if (searchBy == "color") {
			type = 2;
		} else if (searchBy == "copy") {
			type = 0;					
		} else if (searchBy == "similar") {
			type = 1;
		}
		amount = ROWS * COLS;
		urlRequest = SITE + "search.php";		
		urlRequest = urlRequest + "?stype=" + type;
		urlRequest = urlRequest + "&page=" + PAGE;
		urlRequest = urlRequest + "&amount=" + amount;
		urlRequest = urlRequest + "&dist=" + DIST;
		if (type == 2){
			urlRequest = urlRequest + "&colors=" + getColors();						
		} else {
			urlRequest = urlRequest + "&link=" + $("#linkInput").val();
			LINK	=	$("#linkInput").val();
		}			
		window.location = urlRequest;
		return true;	
	}	
	
	function initialize(){
		switch(REQ_TYPE) {
			case 0:
				show("#search-byimage");
				searchBy = "copy";
				selectedLi = "#li-copy";
				break;
			case 1:
				show("#search-byimage");
				searchBy = "similar";
				selectedLi = "#li-similar";
				break;
			case 2:	
				show("#search-bycolor");
				searchBy = "color";
				selectedLi = "#li-color";
				break;
			default:			
				show("#search-byimage");
				searchBy = "copy";
				selectedLi = "#li-copy";
		}
		if (REQ_LINK != ""){
			$("#linkInput").val(REQ_LINK);
		}
		initializeColors(REQ_COLORS);
		PAGE = REQ_PAGE;
	}
	
	function initializeColors(colors){
		if (colors.length < 1)
			return;
		var cArr = colors.split(",");
		var cSize= (cArr.length-1) / 3;
		if (cSize > 6){ 
			cSize = 6;
		}	
		if (cSize > pickers+1){
			while(pickers+1 < cSize) {
				addColor();
			}
		} else if (cSize < pickers+1) {
			while(cSize < pickers+1) {
				removePicker(pickers+1);
			}
		}
		
		for(i = 0; i <= pickers; i++){						
			if (document.getElementById("colorpickerHolder"+i)) {
				id = "#colorpickerHolder"+i;														
				c = toHex(cArr[3*i], cArr[3*i + 1], cArr[3*i + 2]);
				$(id).css('background-color', c);																
			}
		}			
	
	}
	
	function getSite(){
		var ret = location.href.substring(0, (location.href.indexOf("/", 7))+1);//"<?php echo $SITE; ?>";
		return ret;
	}
	
			
    function toHex(_r, _g, _b) {
		var r = _toHex(_r);
		var b = _toHex(_b);
		var g = _toHex(_g)
        if (r.length == 1) r = '0' + r;
        if (g.length == 1) g = '0' + g;
        if (b.length == 1) b = '0' + b;
		
        return '#'+ r + g + b;
    }
	
	function _toHex(num){
		var c = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
		var ret ='';		
		if (num == 0) 
			return '0';
		while (num>0){
			ret = c[num % 16] +ret;		 	
			num = (num - (num%16)) / 16;			
		}		
		
		return ret;		
	}
	
	
	function search(){
		urlRequest = SITE + "ajax/search.php";
		
		//urlRequest = SITE + "ajax/test.php";		
		urlRequest = urlRequest + "?stype=" + REQ_TYPE;
		urlRequest = urlRequest + "&page=" + REQ_PAGE;
		urlRequest = urlRequest + "&amount=" + REQ_AMOUNT;
		urlRequest = urlRequest + "&dist=" + DIST;
		
		if (REQ_TYPE == 2){
			urlRequest = urlRequest + "&colors=" + getColors();						
		} else {
			urlRequest = urlRequest + "&link=" + REQ_LINK;			
		}	
					
		/*
		$.get(	urlRequest,  
				"{key:value}",
				updateImageContainers,
				"json"
		);*/
		
		$.ajax( {
			url:		urlRequest,
			dataType:	"json",
			success:	updateImageContainers,
			timeout:	TIME_OUT,
			error:		searchError
		});
		$("#ajax-loader").show();
		/*$("#submit").attr("disabled", "true");						
		$("#result").hide();
		$("#result-search").hide();*/
		return true;				
	}
	
	
	function searchError(){
		hide("#ajax-loader");
		$("#result-msg").empty();		
		$("#result-msg").append("<center>"+LANG_TIMEOUT_ERROR+"</center>");		
	}
	
	function updateImageContainers(data){						
		hide("#ajax-loader");
		$("#images-container").show();		
		for(index =0; index < ROWS * COLS; index++) {
			$("#image-container"+index).empty();								
			$("#image-container"+index).css("opacity", 0.1);								
		}		
		urlRequest = SITE + "search.php";				
		urlRequest = urlRequest + "?stype=1";
		urlRequest = urlRequest + "&page=1";
		urlRequest = urlRequest + "&amount=" + REQ_AMOUNT;
		urlRequest = urlRequest + "&dist=" + DIST;					
		for(index = 0; index < data.info.total; index++){				
			var str="<a href = '"+data.image[index].link+"' target='_blank'> <img onError='imgError("+index+");' onLoad='imgShow("+index+");' src = 'inc/view.php?path="+data.image[index].link+"&t=1' class='thumb'></a>";									
			str = str + "<div><a target='_blank' href='"+data.image[index].authorPage+"'>"+data.image[index].author+" </a></div>";
			req = urlRequest + "&link=" +data.image[index].link;			
			str = str + "<div><a href='"+req+"'>похожее></a></div>";			
			//str="dd";			
			$("#image-container"+index).append(str);						
		}
		$("#result-msg").empty();
		//$("#result-message").append("<ul><li>"+data.info.result+", " + data.info.time +"sec.</li></ul>");
		$("#result-msg").append("<center>"+data.info.result +"</center>");		
		
	}


	function imgShow(index){						
		$("#image-container"+index).animate({opacity:"1"}, "slow");
		//$('img').parent().parent().animate({opacity:"1"}, "slow");
	}
	
	function imgError(index){
		var id = "#image-container"+index;
		$(id + " img:first").removeAttr("onError");
		$(id + " img:first").attr("src", SITE + "web/images/not-found.png");		
		$(id + " ul:first").empty();
		$(id + " ul:first").append("<li>"+LANG_LOAD_ERROR+"</li>");
		//$("#image-container"+index).animate({opacity:"1"}, "slow");
	}
	
	
	function getNext(){
		REQ_PAGE++;
		initialize()
		send();
	}
	
	function getPrev(){
		REQ_PAGE--;
		initialize()
		send();
	}
	
	
	function setDist(d) {
		DIST = d;
	}
	