/**
 * Name:          document.ready-Funktion
 * Beschreibung:  Wird sofort beim oeffnen einer Seite geladen und ausgefuehrt.
 */
$.ajaxSetup({
  jsonp: null,
  jsonpCallback: null
});

jQuery.cookie = function(name, value, options) {
            if (typeof value != 'undefined') { // name and value given, set cookie
                options = options || {};
                if (value === null) {
                    value = '';
                    options.expires = -1;
                }
                var expires = '';
                if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
                    var date;
                    if (typeof options.expires == 'number') {
                        date = new Date();
                        date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
                    } else {
                        date = options.expires;
                    }
                    expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
                }
                // CAUTION: Needed to parenthesize options.path and options.domain
                // in the following expressions, otherwise they evaluate to undefined
                // in the packed version for some reason...
                var path = options.path ? '; path=' + (options.path) : '';
                var domain = options.domain ? '; domain=' + (options.domain) : '';
                var secure = options.secure ? '; secure' : '';
                document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
            } else { // only name given, get cookie
                var cookieValue = null;
                if (document.cookie && document.cookie != '') {
                    var cookies = document.cookie.split(';');
                    for (var i = 0; i < cookies.length; i++) {
                        var cookie = jQuery.trim(cookies[i]);
                        // Does this cookie string begin with the name we want?
                        if (cookie.substring(0, name.length + 1) == (name + '=')) {
                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                            break;
                        }
                    }
                }
                return cookieValue;
            }
};

jQuery(function($){
	try{       
		$.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
            closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
            prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
            nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
            currentText: 'heute', currentStatus: '',
            monthNames: ['Januar','Februar','März','April','Mai','Juni',
            'Juli','August','September','Oktober','November','Dezember'],
            monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
            'Jul','Aug','Sep','Okt','Nov','Dez'],
            monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
            weekHeader: 'Wo', weekStatus: 'Woche des Monats',
            dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
            dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
            dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
            dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
            dateFormat: 'dd.mm.yy', firstDay: 1, 
            initStatus: 'Wähle ein Datum', isRTL: false};
    		$.datepicker.setDefaults($.datepicker.regional['de']);
	}catch(e){}
});

function setAnzeigeURL()
{
	var inputDate = (new Date($("#formpart_year").val(),$("#from_month").val(),$("#from_day").val()));
	var yearString = inputDate.getFullYear();
	yearString+= '-';
	if(inputDate.getMonth()<10)
	{
		yearString += '0';
	}
	yearString +=inputDate.getMonth()+'-';
	if(inputDate.getDate()<10)
	{
		yearString += '0';
	}
	yearString +=inputDate.getDate();
	$("#anzeigeButton").attr("href", "/seminare/kalender/"+yearString);
}

function lastnaviItem()
{
	//nav Top
	$("li.sub").last().addClass("last");
	
	$(".mnavi .sub ul").last().addClass("mirror");
	$(".shortSeminarInfo div").first().css('border-top', ' 1px solid #DEDEDA');
}

function siteSearchActivate()
{
	$(".searchfield form input.submitbtn").click(function ()
	{
		var valOfAutoComplete = $(".autocomplete").first().val();
		valOfAutoComplete = encodeURIComponent(valOfAutoComplete);
		$(".autocomplete").first().parents("form").attr("action", "/sitesearch?q=" + valOfAutoComplete);
	});
	
	$('.autocomplete').keydown(function (e)
	{
		if (e.keyCode == 13)
		{

			$(".searchfield form .submitbtn").click();

			return false;
		}
	});
}

function activateLeftNavi()
{
	//Activate Element in LeftNav
	var currentURL = location.pathname;
	$('.subnavi li a[href$="' + currentURL + '"]').addClass("active");
	
}

function breadCrumbActivate()
{
	//BreadCrumb Last Element Inactive
	//$(".breadcrumb").children().first().addClass("home");
	$(".breadcrumb").children().last().replaceWith("<span>" + $(".breadcrumb").children().last().html() + "</span>");
	$(".article ul li a").parents().parents().addClass("link");
	$(".abc_greybox").removeClass("link");
}

function ie7Fix()
{
	if ($.browser.msie && parseInt(jQuery.browser.version) == 7)
	{

		/*$('.footer_wrapper').hide();*/
		var currentURL = location.pathname;
		if (location.pathname.length>1)
			$('.footer_wrapper').css('display',"none");
		else
			$('.footer_wrapper').css('margin-top',1300);
		$('.topcontent').css('padding-top',0);
		$('.iconcalendersmall').css('margin-top', 15);
		/* $('.headnavi').css('margin-top','48px!important'); */
		/* $('.header .searchfield').height(10); */
		$('.header .searchfield').css('float','left');
		$('.header .searchfield').css('clear','both');
		$('.servicenavi').css('padding-top',22);
	}
}

function initTable()
{
	$('tr').each(function ()
	{
		$(this).children("td").first().addClass("firstColumn");
		$(this).children("td").last().addClass("lastColumn");
	});

	//H2 br bug
	$("h2").next("br").remove();
	try{
	$("label").each(function(){
		$(".errorMsg").html($(".errorMsg").html().replace($(this).attr("for"), $(this).text()).replace("Validierungs-Fehler:", ""));
	});
	}catch(err)
	{

	}
}


function headLine1After()
{
	$("h1").first().next().addClass("afterH1");
	if($("i.afterH1").length>0)
	{
		$("h1").first().css("border-bottom", "0").css("padding-bottom","10px").css("margin-bottom","0px");
		$("i.afterH1").css("display","block").css("padding-bottom","10px").css("border-bottom", "1px solid #DEDEDA").css("margin-bottom", "30px").css("font-style","normal");
	}
	
}

function basketAccount()
{
	$.cookie("apex__userId", basket.user,  {path: '/'}  );
	$(".basket").html("Warenkorb("+basket.counter+")");
}


function cityEnable()
{
	if ($("#region")){
		var states;
		$.getJSON('/WebjsonHotelLocation', function(data){
			states = data.states;

			$.each(
				states, function() 
					{
						$('#region').append(
							$('<option></option>').val(this.state).html(this.state)
						);
					}
			);


			$("#city").attr('disabled', 'disabled');

			//on Change region
			$("#region").change(function(){
				$("#city").children().remove();
				$('#city').append(
					$('<option></option>').html("alle Veranstaltungsorte")
				);
				//disable city
				if($(this).val() == 'alle Regionen' || $(this).val() == 'alle Veranstaltungsorte')
				{
					$("#city").attr('disabled', 'disabled');
					if (!$.browser.opera) {
						$('span.optionfieldDropdownCity').html('alle Veranstaltungsorte');
						$('span.optionfieldDropdownCity').removeClass('activeDropdown');
					};
				}
				else
				{
					//find region
					$.each(states, function() {
						if(this.state == $("#region").val())
						{
							//populate Cities
							$.each(this.cities, function(){
								$('#city').append(
									$('<option></option>').val(this.city).html(this.city)
								);
							});
						}
					});
					$("#city").attr('disabled', '');
					if (!$.browser.opera) {
						$('span.optionfieldDropdownCity').addClass('activeDropdown');
					}
				}
			});
		});
	}
}

function footerSetRight()
{
	//Footer Service Nav
	var sep = $(".footer .separator");
	var service_navi = $(".footer .service_navi");
	$(".footerlist ul").last().append(sep).append(service_navi);
	
}


function quickSearch()
{
	if($("#quicksearchButton"))
	{

		$("#quicksearchButton").click(function(e){
			var queryString ;
			queryString = '/seminarsearch?mode=search';
			queryString += '';
			queryString += '&fromDate=';
			queryString += $("#formpart_year").val();
			queryString += '-';
			if($("#from_month").val()<10)
			{
				queryString += '0';
			}
			queryString += $("#from_month").val();
			queryString += '-';
			if($("#from_day").val()<10)
			{
				queryString += '0';
			}
			queryString += $("#from_day").val();
			queryString += '&region=';
			if($("#region").val() != '' && $("#region").val()!= '- alle anzeigen -'&& $("#region").val()!= 'alle Regionen')
			{
				queryString += Url.encode($("#region").val());
			}
			queryString += '&city=';
			if($("#city").val() != '' && $("#city").val()!= '- alle anzeigen -'&& $("#city").val()!= 'alle Veranstaltungsorte')
			{
				queryString += Url.encode($("#city").val());
			}
			queryString += '&query=';
			if(queryText = $("#quickQuery").val().match("([A-Z]{2}) ([0-9]{3})"))
			{
				queryString += $("#quickQuery").val().replace(queryText[0], queryText[1]+queryText[2]);
			}
			else
			{
				queryString += Url.encode($("#quickQuery").val());
			}
			queryString+='&register=';
			if($("#fuehrung:checked").val())
			{
				queryString+= 'Fuehrung-';
			}
			if($("#persoenlichkeitsentwicklung:checked").val())
			{
				queryString+= 'Persoenlichkeitsentwicklung-';
			}
			if($("#Managementkompetenz:checked").val())
			{
				queryString+= 'Managementkompetenz-';
			}
			if($("#ausbildungenbtn:checked").val())
			{
				queryString+= 'Ausbildungen';
			}
			
			if(queryString.charAt(queryString.length-1) == '-')
			{
				queryString = queryString.substr(0, queryString.length-1);
			}
			
			queryString = queryString.replace(" ", "+");
			$("#quicksearchButton").parent().attr("action", queryString);
		});
		
		
		//Date populate
		/*
		var  todayDate = new Date();
		if($("#from_day"))
		{
			$("#from_day").children().each(function(){
				if($(this).val() ==  todayDate.getDate())
				{
					$(this).attr("selected", "selected");
				}
			});
		}
		if($("#from_month"))
		{
			$("#from_month").children().each(function(){
				if($(this).val() ==  todayDate.getMonth()+1)
				{
					$(this).attr("selected", "selected");
				}
			});
		}
		if($("#formpart_year"))
		{
			$("#formpart_year").children().each(function(){
				if($(this).val() ==  todayDate.getFullYear())
				{
					$(this).attr("selected", "selected");
				}
			});
		}
		*/
		
		
		
		$('#quickQuery').keydown(function(e){
				if (e.keyCode == 13) {
					
					$("#quicksearchButton").click();
					
					return false;
				}
			});
		
		if($("#anzeigeButton"))
		{
			$("#anzeigeButton").click(function(){ $("#quicksearchButton").click(); });
		}
	}
}

function complete()
{

	try{
function log( message ) {
                        $( "<div/>" ).text( message ).prependTo( "#log" );
                        $( "#log" ).attr( "scrollTop", 0 );
                    }
                    //console.log('test');
                    $(".autocomplete").autocomplete({
                    
                        source: function( request, response ) {
                            $.ajax({
                                url: "/WebGoogleAutocomplete",
                                data: {
                                    q: request.term
                                },
                                success: function( data ) {
                                
                                    response( $.map( data.complete, function( item ) {
                                        return {
                                            label: item.suggestion,
                                            value: item.suggestion
                                        }
                                    }));
                                }
                            });
                        },
                        minLength: 2,
                        //select: function( event, ui ) {
                        //    log( ui.item ?
                        //        "Selected: " + ui.item.label :
                        //        "Nothing selected, input was " + this.value);
                        //},
                        open: function() {
                            $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
                        },
                        close: function() {
                            $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
                        }
                    });

}catch(e){}
}

$(document).ready(function() 
{
	lastnaviItem();
	siteSearchActivate();
	activateLeftNavi();
	breadCrumbActivate();
	ie7Fix();
	initTable();
	headLine1After();
	basketAccount();
	cityEnable();
	footerSetRight();
	quickSearch();
	complete();
});
