$(document).ready(function() {
	$("#bikes").change(search);
	$("#model").keyup(search);
	$("#countrycode").change(search);
	$("#zip").keyup(search);
	$("#circuit").change(search);
	$("#type").change(search);
	$("#state").change(search);
	$("#mileage_min").change(search);
	$("#mileage_max").change(search);
	$("#performance_min").change(search);
	$("#performance_max").change(search);
	$("#price_min").change(search);
	$("#price_max").change(search);
	$("#registration_min").change(search);
	$("#registration_max").change(search);
	$("#cubiccapacities").change(search);
	$("#vat_reclaimable").click(search);
	$("#account").change(search);
	$("#q").keyup(ItemSearch);
	$("#itemgroup").change(ItemSearch);
	$("#itembrand").change(ItemSearch);
	$("#itemcountrycode").change(ItemSearch);
	$("#itemzip").keyup(ItemSearch);
	$("#itemcircuit").change(ItemSearch);
  $("#itemtype").change(ItemSearch);
	$("#itemaccount").change(ItemSearch);
	$("#itemstate").change(ItemSearch)
});

function utf8_encode(string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
    var start, end;
 
    start = end = 0;
    for (var n = 0; n < string.length; n++) {
 
        var c = string.charCodeAt(n);
        var enc = null;
 
        if (c < 128) {
            end++;
        }
        else if((c > 127) && (c < 2048)) {
            enc = String.fromCharCode((c >> 6) | 192) + String.fromCharCode((c & 63) | 128);
        }
        else {
            enc = String.fromCharCode((c >> 12) | 224) + String.fromCharCode(((c >> 6) & 63) | 128) + String.fromCharCode((c & 63) | 128);
        }
        if (enc != null)
        {
            if (end > start)
            {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
 
    }
    if (end > start)
    {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}

function base64_encode (data) {
       
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];
 
    if (!data) {
        return data;
    }
 
    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);
 
        bits = o1<<16 | o2<<8 | o3;
 
        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;
 
        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }
 
    return enc;
}

function GetObject(){
document.getElementById;
return document.getElementById("BigImage")
}

function urlencode(str) {
return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function ShowImage(imagename){
	newHTML = '<div id="Image">';
	newHTML = newHTML + '<img src="' + imagename + '">';
	newHTML = newHTML + '</div>';
	GetObject().innerHTML = newHTML;
	document.getElementById("BigImage");
}

function search()
{
var params = {
	bikes: document.getElementById("bikes").value,
	model: document.getElementById("model").value,
	countrycode: document.getElementById("countrycode").value,
	zip: document.getElementById("zip").value,
	circuit: document.getElementById("circuit").value,
	type: document.getElementById("type").value,
	state: document.getElementById("state").value,
	regmin: document.getElementById("registration_min").value,
	regmax: document.getElementById("registration_max").value,
	milmin: document.getElementById("mileage_min").value,
	milmax: document.getElementById("mileage_max").value,
	perfmin: document.getElementById("performance_min").value,
	perfmax: document.getElementById("performance_max").value,
	pmin: document.getElementById("price_min").value,
	pmax: document.getElementById("price_max").value,
	cubiccapacities: document.getElementById("cubiccapacities").value,
	vat_reclaimable: document.getElementById("vat_reclaimable").checked,
	account: document.getElementById("account").value,
	sort: 'DESC',
	field: 'ADS_ADS.CREATED'
	};

//	$("#result").html('<div id="ajax_busy"><img src="../../images/ajax-loader1.gif"></div>');	


	$(document).ajaxStart(function()
	{ 
		//$('#ajax_busy').show();
		//$("#ajax_error").remove();
		$("#ajax_ok").remove();
	}).ajaxStop(function()
	{ 
		//$('#ajax_busy').hide();
	});

	$.ajax({
		type: "POST",
		url: "./search-bikes",
		data: params,
		success: function(result)
		{
			$("#resultcount").html(result);
			$(".resultbox").html('<div class="resultbox"><a class="signup-button" id="signup_submit" href="http://www.motorradmarkt.de/suchen/search-bikes'
				+ '/f/'	+ params['field']
				+ '/s/'	+ params['sort']
				+ '/cc/'	+ params['countrycode']
				+ '/bike/' + params['bikes']
				+ '/model/' + base64_encode(params['model'])
				+ '/state/' + params['state']
				+ '/type/' + params['type']
				+ '/zip/' + params['zip']
				+ '/circuit/' + params['circuit']
				+ '/regmin/' + params['regmin']
				+ '/regmax/' + params['regmax']
				+ '/milmin/' + params['milmin']
				+ '/milmax/' + params['milmax']
				+ '/pmin/' + params['pmin']
				+ '/pmax/' + params['pmax']
				+ '/cubiccapacities/' + params['cubiccapacities']
				+ '/vat_reclaimable/' + params['vat_reclaimable']
				+ '/account/' + params['account']
				+ '">Fahrzeuge jetzt anzeigen</a></div>');
			
			if (result != '0')
			{
				$(".resultlink").show();
				$(".resulttext").show();
				$(".resultbox").show();
			}
			else
			{
				$(".resultbox").hide();
				$(".resulttext").hide();
				$("#resultcount").html('ich habe leider keine Anzeigen gefunden');
			}
		}

	});
}

function ItemSearch()
{
var params = {
	itembrand: document.getElementById("itembrand").value,
	q: document.getElementById("q").value,
	itemcountrycode: document.getElementById("itemcountrycode").value,
	itemzip: document.getElementById("itemzip").value,
	itemcircuit: document.getElementById("itemcircuit").value,
	itemtype: document.getElementById("itemtype").value,
	itemstate: document.getElementById("itemstate").value,
	itemgroup: document.getElementById("itemgroup").value,
  itemaccount: document.getElementById("itemaccount").value,
	sort: 'DESC',
	field: 'ADS_ADS.CREATED'
	};

//	$("#result").html('<div id="ajax_busy"><img src="../../images/ajax-loader1.gif"></div>');	

	$(document).ajaxStart(function()
	{ 
		//$('#ajax_busy').show();
		//$("#ajax_error").remove();
		$("#ajax_ok").remove();
	}).ajaxStop(function()
	{ 
		//$('#ajax_busy').hide();
	});

	$.ajax({
		type: "POST",
		url: "./search-items",
		data: params,
		success: function(result)
		{
			$("#resultcount").html(result);
			$(".resultbox").html('<div class="resultbox"><a class="signup-button" id="signup_submit" href="http://www.motorradmarkt.de/suchen/search-items'
				+ '/f/'	+ params['field']
				+ '/s/'	+ params['sort']
				+ '/cc/'	+ params['itemcountrycode']
				+ '/group/'	+ params['itemgroup']
				+ '/brand/' + params['itembrand']
				+ '/q/' + base64_encode(params['q'])
				+ '/state/' + params['itemstate']
				+ '/type/' + params['itemtype']
				+ '/zip/' + params['itemzip']
				+ '/circuit/' + params['itemcircuit']
				+ '/account/' + params['itemaccount']
				+ '">Treffer jetzt anzeigen</a></div>');
			
			if (result != '0')
			{
				$(".resultlink").show();
				$(".resulttext").show();
				$(".resultbox").show();
			}
			else
			{
				$(".resultbox").hide();
				$(".resulttext").hide();
				$("#resultcount").html('ich habe leider keine Anzeigen gefunden');
			}
		}

	});
}

