var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}

function URLDecode(psEncodeString){
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function set_visibility(){
	if(document.searchForm.type[1].checked==true){
		document.getElementById("return1").style.visibility ='hidden';
		document.getElementById("return2").style.visibility ='hidden';
		document.getElementById("return3").style.visibility ='hidden';
		document.getElementById("return4").style.visibility ='hidden';
		document.getElementById("return5").style.visibility ='hidden';
	}else{
		document.getElementById("return1").style.visibility ='visible';
		document.getElementById("return2").style.visibility ='visible';
		document.getElementById("return3").style.visibility ='visible';
		document.getElementById("return4").style.visibility ='visible';
		document.getElementById("return5").style.visibility ='visible';
	}
}

function set_visibility_tpl(script)
{
	if(document.searchForm.type[1].checked==true)
	{
		ret_date.style.visibility ='hidden';
	}
	else
	{
		document.getElementById("ret_date").style.visibility ='visible';
	}

	if(script==0)
	{
		if(document.searchForm2.type[1].checked==true)
		{
			ret_date2.style.visibility ='hidden';
		}
		else
		{
			document.getElementById("ret_date2").style.visibility ='visible';
		}
	}
}



function set_from()
{

	var frm = document.searchForm;
	var from = frm.from.value;
	var from_suggest = frm.from_suggest.value;
	if(from_suggest!="000")
	{
		searchForm.from.value=searchForm.from_suggest.value;
	}
	else
	{
		searchForm.from.value="";
	}
}

function set_to()
{
	var frm = document.searchForm;
	var to = frm.to.value;
	var to_suggest = frm.to_suggest.value;
	if(to_suggest!="000")
	{
		searchForm.to.value=searchForm.to_suggest.value;
	}
	else
	{
		searchForm.to.value="";
	}
}

function detectBrowser(noscript)
{
	var browserName=navigator.appName;
	if ((browserName!="Microsoft Internet Explorer")&&(browserName!="Opera"))
	{
		//alert(noscript);
		if(noscript==0)
		{
			//window.location="index.php?noscript=1";
		}
	}
}


function zoom(datei,breit,hoch) {
    zoom(datei,breit,hoch,"no","no");
}

function zoom(datei,breit,hoch,resizable,scrollbars) {
    big=window.open(datei,breit+"zoomed"+hoch,"width="+breit+",height="+hoch+", scrollbars="+scrollbars+",resizable="+resizable+",menubar=no,status=no,locationbar=no");
    big.focus();
}

function limitInput(input, maxInput) {
    if (input.value.length>maxInput){
        alert("Es k�nnen maximal "+maxInput+" Zeichen eingegeben werden!");
        input.value = input.value.substring(0,maxInput);
    } else {
        document.ratingform.output.value = maxInput - input.value.length;
    }
}

function popup(URL) {
day = new Date();
id = day.getTime();

left=(window.screen.width-400)/2;
at_top=(window.screen.height-300)/2;

eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=300,left = " + left + ",top = " + at_top + "');");
}

function popup_dim(URL,width,height) {
day = new Date();
id = day.getTime();

left=(window.screen.width-width)/2;
at_top=(window.screen.height-height)/2;

eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height + ",left = " + left + ",top = " + at_top + "');");
}

function popup_time(URL) {
page = window.open(URL, 'page', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=0,height=0');
setTimeout("page.close()",100);
}

function change_airport(target)
{
	switch(target)
	{
		case "to":
			window.opener.document.forms["searchForm"].to.value = document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text + " / " + document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value;
			add_option( window.opener.document.forms["searchForm"].to_suggest, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text );
			if( window.opener.document.forms["searchForm2"] )
			{
				window.opener.document.forms["searchForm2"].to.value = document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text + " / " + document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value;
				add_option( window.opener.document.forms["searchForm2"].to_suggest, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text );
			}
			break;
		case "from":
			window.opener.document.forms["searchForm"].from.value = document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text + " / " + document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value;
			add_option( window.opener.document.forms["searchForm"].from_suggest, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text );
			if( window.opener.document.forms["searchForm2"] )
			{
				window.opener.document.forms["searchForm2"].from.value = document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text + " / " + document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value;
				add_option( window.opener.document.forms["searchForm2"].from_suggest, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].value, document.forms["route_select"].airport_code.options[document.forms["route_select"].airport_code.selectedIndex].text );
			}
			break;
	}
	window.close();
	return false;
}

function get_domain()
{
	montage=window.location.href.split("/");
	return montage[2];
}

function get_selected_airport(select_name)
{
	switch(select_name)
	{
		case "from":
			return document.forms["searchForm"].from_suggest.value;
			break;
		case "to":
			return document.forms["searchForm"].to_suggest.value;
			break;
	}
}

function add_option(html_option_element, option_value, option_text)
{
	if( html_option_element.type == "select-one" )
	{
		if ( html_option_element.innerHTML.indexOf( option_text ) < 0 )
		{
			var added_option = window.opener.document.createElement( "option" );
			added_option.value = option_value;
			added_option.text = option_text;

			html_option_element.options.add( added_option );
		}
	}

	html_option_element.value = option_value;
}

function set_idealo_search_params_from_cookie()
{

	//alert(document.forms["searchForm"].js_error_flag.value);
	if ( !document.forms["searchForm"].js_error_flag )
	{
		return;
	}

	if(document.cookie && document.forms["searchForm"].js_error_flag.value==0)
	{
		var cookies=document.cookie.split(';');
		for (var i=0; i<cookies.length; i++)
		{



			var varName=(cookies[i].split('=')[0]);
			var varValue=(cookies[i].split('=')[1]);

			//	alert("varValue"+varValue);

			while (varName.charAt(0)==' ')
				varName=varName.substr(1,varName.length);

			if (varName=="idealo_search_params")
			{
				var params=varValue.split('%7C');

				//alert("varName==idealo_search_params");
				if( params.length >= 8 )
				{


					var ln = params[3].length;


					var mn = params[3].substring(0,ln-4);


					var today = new Date();
					var cookie_date = new Date(params[4], mn * 1 - 1, params[2]);





					if( today.getTime() > cookie_date.getTime() )
					{
						return;
					}
				}

				var from_airport = params[8];
				var to_airport = params[9];



				for (var j=0; j<params.length; j++)
				{
					//alert(j+"="+params[j]);

					switch(j)
					{

						/*
						case 0:
							document.forms["searchForm"].from.value = URLDecode( from_airport ) + " / " + params[0];
							break;
						case 1:
							document.forms["searchForm"].to.value = URLDecode( to_airport ) + " / " + params[1];
							break;

						case 0:
							document.forms["searchForm"].from.value = URLDecode( params[0]);
							break;
						case 1:
							document.forms["searchForm"].to.value = URLDecode( params[1]);
							break;
						*/


						case 0:
							document.forms["searchForm"].from.value = URLDecode(Url.decode( params[0]));
							break;
						case 1:
							document.forms["searchForm"].to.value =URLDecode ( Url.decode( params[1])) ;
							break;

						case 2:
							document.forms["searchForm"].go_day.value=params[2];
							break;
						case 3:
							params[3]=Math.ceil(params[3]);
							document.forms["searchForm"].go_month.value=params[3];
							break;
						case 4:
						//	document.forms["searchForm"].go_year.value=params[4];
							break;
						case 5:
							document.forms["searchForm"].ret_day.value=params[5];
							break;
						case 6:
							document.forms["searchForm"].ret_month.value=params[6];
							break;
						case 7:
						//	document.forms["searchForm"].ret_year.value=params[7];
							break;
					}
				}

		//		document.forms["searchForm"].from_suggest.value = params[0];
		//		document.forms["searchForm"].to_suggest.value = params[1];
			}
		}
	}
}