$(function() {
	//--- HOLE DEFAULT ENGINE AUS COOKIE 

	if($.cookie("custom-engine") == null || $.cookie("custom-engine") == "system"){
		$("#engine_0").css("opacity","1.0");
		$("#input_hidden").val(0);
	}
        else if($.cookie("custom-engine") == "last"){
		$("#engine_" + $.cookie("last-engine")).css("opacity","1.0");
		$("#input_hidden").val($.cookie("last-engine"));
	}
	else if($.cookie("custom-engine") == "user"){
		$("#engine_" + $.cookie("user-defined-engine")).css("opacity","1.0");
		$("#input_hidden").val($.cookie("user-defined-engine"));
	}
	else{
		$("#engine_0").css("opacity","1.0");
		$("#input_hidden").val(0);
	}

	
	//--- ENDE
	var q = $.parseQuery();

	if(typeof(q.s) != 'undefined'){
			
		if($.browser.safari == true){
			$("#input_search").val(UTF8.decode(q.s));
		}
		else{
			$("#input_search").val(q.s);
		}
	}
	if(typeof(q.f) != 'undefined'){
		fastsearch = 1;
		executeSearchPost();	
	}
	else{
	if(typeof(q.i) != 'undefined'){
	var php = "blank.php";
	if(q.i != ''){
		php = "internal/" + q.i + ".php";
	}
	$("#input_search").val(q.i + " " + q.s);
	$.get(php, {q: q.s}, function(data){
		$("#internal").html(data);
 	});
	}	
	if($.browser.mozilla===true || $.browser.safari === true){
		$("#input_search").corner();
		$("#img_logo").corner();
		$("#search_button").corner();
		$("#options").corner();
		$("#options_field").corner();
		$("#impressum_body").corner();
		$("#impressum_button").corner();
		$("#multiple-switch").corner();
		$("#fastsearch-switch").corner();
		$("#sortable-1 div.engine").corner();
		$("#keywords").corner();
		$("#keywords_button").corner();
		$("#internal").corner();
	}
	$("all").show();
	$("#notify").hide();
	$("#options_field").hide();
        $("#impressum_body").hide();
        $("#keywords").hide();
	$("#wallpaper").css("opacity","0.4");

	// Fuelle Keyword List
	var keywordlisthtml = "";
	keywordlisthtml += "<table><tr><th>Engine</th><th>Keyword</th></tr>";
	
	for(var i=0;i<engines.length;i++){
		keywordlisthtml += "<tr><td>" + engines[i]["name"] + "</td><td>" + engines[i]['hotname'] + "</td></tr>";
	}
	keywordlisthtml += "</table>";
	$("#keywords").append(keywordlisthtml);
		
	// Fuelle Engines

	for(var i = 0;i<engines.length;i++){
		$("#trademarks").append("<p>" + engines[i]["impressum"] + "</p>");
	}
	
	if($.cookie("custom-rows") == null || $.cookie("custom-rows") == "no"){
	for(var i = 0;i<engines.length;i++){
		if(engines[i]["drow"] == 0){
			appendEngine(i,"#sortable-1");
		}
		if(engines[i]["drow"] == 1){
			appendEngine(i,"#sortable-2");
		}
	}
	}
	else{
		var vengines = 0;
		for(var i=0;i<engines.length;i++){
			if(engines[i]["hidden"] != 1){
				vengines++;
			}	
		}
		if($.cookie("custom-row1") != null && $.cookie("custom-row2") != null){
		var row1 = new Array();
		var row2 = new Array();
		var all = new Array();
		
		row1 = strToArray($.cookie("custom-row1"),",");	
		row2 = strToArray($.cookie("custom-row2"),",");	
		all = row1.concat(row2);
		    if(row1 != null){	
			for(var i = 0; i<row1.length;i++){	
				appendEngine(row1[i],"#sortable-1");
			}
		    }
		    if(row2 != null){	
			for(var i = 0; i<row2.length;i++){	
				appendEngine(row2[i],"#sortable-2");
			}
		    }
		if(all.length > vengines ){
			var msg = '<p class="notify_header">Neue Suchmaschine(n) verf&uuml;gbar!</p>';	
			for(var i = all.length; i<engines.length;i++){	
				if(engines[i]['hidden'] != 1){
				appendEngine(i,"#sortable-2");
				msg += '<p class="notify_item">- ' + engines[i]["name"] + '(FastSearch: "' + engines[i]['hotname'] + '")</p>';
				}
			}
			$("#notify").html(msg);
			$("#notify").fadeIn();
		}
		
		}
		else{
			$.cookie("custom-rows","no",{expires: 3000});
			alert("Cookie error!\nPlease relode page.");
		}
		
	}
	//--- ENDE
	//--- DESIGN
	$("#input_search").focus();
	if(q.q != ""){
		$("#input_search").val(q.q);
	}	
	$("div.engine").css("opacity","0.4");
	$("div.engine").css("cursor","pointer");

	$("#sortable-1, #sortable-2").sortable({ 
			connectWith: '.sortables',
			delay: 150,
			placeholder: 'engine placeholder'

	 }).disableSelection();

	//-- ENDE
	//--- LADE COOKIES
	/*
	if($.cookie("last-engine") != null && $.cookie("custom-default-engine") == "no"){
		$("#engine_0").css("opacity","1.0");
		$("#input_hidden").val(0);
	}
	else{
		$("#engine_" + $.cookie("last-engine")).css("opacity","1.0");
		$("#input_hidden").val($.cookie("last-engine"));
	}
	*/


			if($.cookie("show-all") == null){
				$.cookie("show-all","no",{expires: 3000});
                        	$("#sortable-2").hide();
			}
			else{
				if($.cookie("show-all") == "yes"){
					$("#sortable-2").show();
					$("#more").html("weniger &laquo;");
					
				}
				if($.cookie("show-all") == "no"){
					$("#sortable-2").hide();
					$("#more").html("mehr &raquo;");
				}
			}
	
		if($.cookie("multiple") == "1"){
			multiple = 1;
			//$("#multiple-switch").html(multiple);
			$("#multiple-switch").css("background-color",innercolor);
			$("#multiple-switch").css("border","1px solid " + bordercolor);
			$("#multiple-switch").css("color",textcolor);
			$("#multiple-switch").css("opacity","0.5");
			$.cookie("multiple","1",{expire: 3000});
			var arr = new Array();
			arr = strToArray($.cookie("multiple-engines"),";");
			for(var i = 0;i<arr.length;i++){
				$("#multiple_input_hidden").val(arr.join(";"));
				$("#engine_" + arr[i]).css("opacity","1.0");
    			}
			
		}
		else{
			multiple = 0;
			$("div.engine").css("opacity","0.4");
			$("#engine_" + $("#input_hidden").val()).css("opacity","1.0");
			$("#multiple-switch").css("background-color","white");
			$("#multiple-switch").css("border","1px solid #AAAAAA");
			$("#multiple-switch").css("color","#808080");
			$("#multiple-switch").css("opacity","0.8");
			$.cookie("multiple","0",{expire: 3000});
		}	
                if($.cookie("fastsearch") == "1"){
                        fastsearch = 1;
                        //$("#fastsearch-switch").html(fastsearch);
                        $("#fastsearch-switch").css("background-color",innercolor);
                        $("#fastsearch-switch").css("border","1px solid " + bordercolor);
                        $("#fastsearch-switch").css("color",textcolor);
                        $("#fastsearch-switch").css("opacity","0.5");
                        $.cookie("fastsearch","1",{expire: 3000});
                }
                else{
                        fastsearch = 0;
                        $("div.engine").css("opacity","0.4");
                        $("#engine_" + $("#input_hidden").val()).css("opacity","1.0");
                        $("#fastsearch-switch").css("background-color","white");
                        $("#fastsearch-switch").css("border","1px solid #AAAAAA");
                        $("#fastsearch-switch").css("color","#808080");
                        $("#fastsearch-switch").css("opacity","0.8");
                        $.cookie("fastsearch","0",{expire: 3000});
                }
	//--- ENDE
	
	//--- REGISTRIERE EVENTS
	$("#sortable-1,#sortable-2").bind('sortupdate', function(event, ui) {
		var row1 = $("#sortable-1").sortable('toArray');
		var row2 = $("#sortable-2").sortable('toArray');
		var result1 = new Array();
		var result2 = new Array();
		for(var i = 0;i<row1.length;i++){
			result1.push(getEngineId(row1[i]));	
		}
		for(var i = 0;i<row2.length;i++){
			result2.push(getEngineId(row2[i]));	
		}
		$.cookie("custom-rows","yes",{expires: 3000});
		$.cookie("custom-row1",result1,{expires: 3000});
		$.cookie("custom-row2",result2,{expires: 3000});
		
	});
	$("#notify").click(function(){
		var row1 = $("#sortable-1").sortable('toArray');
		var row2 = $("#sortable-2").sortable('toArray');
		var result1 = new Array();
		var result2 = new Array();
		for(var i = 0;i<row1.length;i++){
			result1.push(getEngineId(row1[i]));	
		}
		for(var i = 0;i<row2.length;i++){
			result2.push(getEngineId(row2[i]));	
		}
		$.cookie("custom-rows","yes",{expires: 3000});
		$.cookie("custom-row1",result1,{expires: 3000});
		$.cookie("custom-row2",result2,{expires: 3000});
		$("#notify").fadeOut();	

	});
	
	$("div.engine").click(function(ev){
		$.cookie("last-engine",getEngineId($(this).attr("id")),{expires: 3000});
		if(multiple == 0){
			$("div.engine").css("opacity","0.4");
			$(this).css("opacity","1.0");
			$("#input_hidden").val(getEngineId($(this).attr("id")));
			setDirectLink();
		}
		else{
			var mul_engs = new Array();
			if($(this).css("opacity") == "1"){
				$(this).css("opacity","0.4");
			}
			else{
				$(this).css("opacity","1.0");
			}
			$("div.engine").each(function(){
				if($(this).css("opacity") == "1"){
					mul_engs.push(getEngineId($(this).attr("id")));
				}
			});
			$("#multiple_input_hidden").val(mul_engs.join(";"));
			$.cookie("multiple-engines",mul_engs.join(";"),{expire: 3000});
			setDirectLink();
		}
		$("#input_search").focus();
	});

	$("#more").click(function(){
		if($("#sortable-2").is(":visible")){
			$("#more").html("mehr &raquo;");	
			$("#more").fadeIn();
			$.cookie("show-all","no",{expires: 3000});
		}
		else{
			$("#more").html("weniger &laquo;");	
			$("#more").hide();
			$("#more").fadeIn();
			$.cookie("show-all","yes",{expires: 3000});
		}
		$("#sortable-2").toggle(250);
	});
        
	$("#options").click(function(){
	        $(this).next("#options_field").toggle("slow");
        });

	$("#opt_reset").click(function(){
		$.cookie("custom-rows","no",{expires: 3000});
		$("#options_field").hide("slow");
	});
	$("#cookie_system").click(function(){
		$.cookie("custom-engine","system",{expires: 3000});
		$("#options_field").hide("slow");
	});
	$("#cookie_last").click(function(){
		$.cookie("custom-engine","last",{expires: 3000});
		$("#options_field").hide("slow");
	});
	$("#cookie_user").click(function(){
		$.cookie("custom-engine","user",{expires: 3000});
		$.cookie("user-defined-engine",$("#input_hidden").val(),{expires: 3000});
		$("#options_field").hide("slow");
	});
	$("#multiple-switch").click(function(){
		if(multiple == 0){
			multiple = 1;
			//$("#multiple-switch").html(multiple);
			$("#multiple-switch").css("background-color",bordercolor);
			$("#multiple-switch").css("border","1px solid " + innercolor);
			$("#multiple-switch").css("color",textcolor);
			$("#multiple-switch").css("opacity","0.5");
			$.cookie("multiple","1",{expire: 3000});
			
		}
		else{
			multiple = 0;
			$("div.engine").css("opacity","0.4");
			$("#engine_" + $("#input_hidden").val()).css("opacity","1.0");
			$("#multiple-switch").css("background-color","white");
			$("#multiple-switch").css("border","1px solid #AAAAAA");
			$("#multiple-switch").css("color","#808080");
			$("#multiple-switch").css("opacity","0.8");
			$.cookie("multiple","0",{expire: 3000});
		}	
	});

        $("#fastsearch-switch").click(function(){
                if(fastsearch == 0){
                        fastsearch = 1;
                        //$("#fastsearch-switch").html(fastsearch);
                        $("#fastsearch-switch").css("background-color",bordercolor);
                        $("#fastsearch-switch").css("border","1px solid " + innercolor);
                        $("#fastsearch-switch").css("color",textcolor);
                        $("#fastsearch-switch").css("opacity","0.5");
                        $.cookie("fastsearch","1",{expire: 3000});

                }
                else{
                        fastsearch = 0;
                        $("div.engine").css("opacity","0.4");
                        $("#engine_" + $("#input_hidden").val()).css("opacity","1.0");
                        $("#fastsearch-switch").css("background-color","white");
                        $("#fastsearch-switch").css("border","1px solid #AAAAAA");
                        $("#fastsearch-switch").css("color","#808080");
                        $("#fastsearch-switch").css("opacity","0.8");
                        $.cookie("fastsearch","0",{expire: 3000});
                }
        });

        $("#keywords_button").click(function(){
                if($("#keywords").is(":visible")){
                        $("#keywords").fadeOut();
                        $("#keywords_button").css("background-color","white");
                        $("#keywords_button").css("border","1px solid #AAAAAA");
                        $("#keywords_button").css("color","#808080");
                        $("#keywords_button").css("opacity","0.8");
                }
                else{
                        $("#keywords").fadeIn();
                        $("#keywords_button").css("background-color",bordercolor);
                        $("#keywords_button").css("border","1px solid " + innercolor);
                        $("#keywords_button").css("color",textcolor);
                        $("#keywords_button").css("opacity","0.5");
                }
        });

	$("#impressum_button").click(function(){
		if($("#impressum_body").is(":visible")){
			$("#impressum_body").fadeOut();
			$("#impressum_button").css("background-color","white");
			$("#impressum_button").css("border","1px solid #AAAAAA");
			$("#impressum_button").css("color","#808080");
			$("#impressum_button").css("opacity","0.8");

			
			//$("#impressum_button").css("color","#808080");
		}
		else{
			$("#impressum_body").fadeIn();
			$("#impressum_button").css("background-color",bordercolor);
			$("#impressum_button").css("border","1px solid " + innercolor);
			$("#impressum_button").css("color",textcolor);
			$("#impressum_button").css("opacity","0.5");
			//$("#impressum_button").css("color","white");
		}
	});

	if(typeof(q.m) != 'undefined'){
		multiple = 1;	
			$("#multiple-switch").css("background-color",bordercolor);
			$("#multiple-switch").css("border","1px solid " + innercolor);
			$("#multiple-switch").css("color",textcolor);
			$("#multiple-switch").css("opacity","0.5");
	}
	if(typeof(q.e) != 'undefined'){
		if(typeof(q.m) == 'undefined'){
			$("div.engine").css("opacity","0.4");
			$("#engine_" + q.e).css("opacity","1.0");
			$("#input_hidden").val(q.e);
		}
		else{
			var arr = new Array();
			arr = strToArray(q.e,";");
			for(var i = 0;i<arr.length;i++){
				$("#multiple_input_hidden").val(arr.join(";"));
				$("#engine_" + arr[i]).css("opacity","1.0");
    			}
			
		}
	}
	if(typeof(q.go) != 'undefined'){
		executeSearchPost();	
	}
	}

	//--- ENDE

	
});
function utf8_encode( s )
{
  return unescape( encodeURIComponent( s ) );
}
function utf8_decode( s )
{
  return decodeURIComponent( s );
}
function toggleMultiple(){
		if(multiple == 0){
			multiple = 1;
			//$("#multiple-switch").html(multiple);
			$("#multiple-switch").css("background-color",bordercolor);
			$("#multiple-switch").css("border","1px solid " + innercolor);
			$("#multiple-switch").css("color",textcolor);
			$("#multiple-switch").css("opacity","0.5");
			$.cookie("multiple","1",{expire: 3000});
			
		}
		else{
			multiple = 0;
			$("div.engine").css("opacity","0.4");
			$("#engine_" + $("#input_hidden").val()).css("opacity","1.0");
			$("#multiple-switch").css("background-color","white");
			$("#multiple-switch").css("border","1px solid #AAAAAA");
			$("#multiple-switch").css("color","#808080");
			$("#multiple-switch").css("opacity","0.8");
			$.cookie("multiple","0",{expire: 3000});
		}	
}

function strToArray(strInput, strDelimiter){
 var result = new Array();
 if(strInput != null){
 if(strInput.indexOf(strDelimiter) != -1){
 	result = strInput.split(strDelimiter);
	return result;
 }
 else{
	if(strInput != ""){
		result[0] = strInput;
		return result;
	}
	else{
		return new Array;
	}
	
 }  
 }

}
function appendEngine(id,div){
	if(engines[id]["hidden"] != 1){
	$('<div id="engine_' + id + '" class="engine"><img title="' + engines[id]["name"] + " - (FastSearch: &quot;" + engines[id]["hotname"] + "&quot;)"  +'" alt="' + engines[id]["name"]  +'" src="' + engines[id]["image"]  +'" /></div>').appendTo(div);
	}	
}

function getEngineId(input){
	var exp = /engine_(\d+)/;
	exp.exec(input);
	return(RegExp.$1);
}
function executeSearchPost(){
	if(fastsearch == 1){
		var query = $("#input_search").val();
		//alert(getHotName(query) + ": " + cutHotName(query));
		var engineId = getEngineIdByHotName(getHotName(query));
		if(engineId == -1){	
			executeSingleSearchPostDirectly($("#input_hidden").val(),query);
		}
		else{
			executeSingleSearchPostDirectly(engineId,cutHotName(query));
		}
	}
	else{
		if(multiple == 0){
			executeSingleSearchPost();
		}
		else{
			executeMultipleSearchPost();
		}
	}
}

function getHotName(query){
	var arr = query.split(" ");
	return arr[0];
}
function cutHotName(query){
	var arr = query.split(" ");
 	arr.shift();
	return arr.join(" ");
	
}

function getEngineIdByHotName(hotname){
	var i = 0;
	for(i=0;i<engines.length;i++){
		if(engines[i]['hotname'] == hotname){
			return(i);
		}
	}
	return -1;

}

function executeSingleSearchPost(){
	if($("#input_search").val() != ""){
		var e = $("#input_hidden").val();
		var uri = engines[e]["uri"] + engines[e]["encoding"]($("#input_search").val());
		location.href = uri;
	}
}
function executeSingleSearchPostDirectly(engineid,query){
		var uri = engines[engineid]["uri"] + engines[engineid]["encoding"](query);
		location.href = uri;
}
function executeSingleNewWindowSearchPost(){
	if($("#input_search").val() != ""){
		var e = $("#input_hidden").val();
		var uri = engines[e]["uri"] + engines[e]["encoding"]($("#input_search").val());
		window.open(uri); 
	}
}
function executeMultipleSearchPost(){
	if($("#input_search").val() != ""){
		var arr = new Array();
		arr = strToArray($("#multiple_input_hidden").val(),";");
		for(var i = 0;i<arr.length;i++){
			var uri = engines[arr[i]]["uri"] + engines[arr[i]]["encoding"]($("#input_search").val());
			window.open(uri); 
    		}
	}
}

function setDirectLink(){
	var arr = new Array();
	if(multiple == "1"){
		arr.push("m");
		arr.push("e=" + $("#multiple_input_hidden").val());
	}
	else{
		arr.push("e=" + $("#input_hidden").val());
	}
	if($("#input_search").val() != ""){
		arr.push("q=" + $("#input_search").val());
	}
	$("#direkt-link").attr("href",my_url + arr.join("&"));
	
}

