﻿/*
*Zentraler Ajax-Aufruf, asynchron!
*dataType = return datatyp, NOT the contenttyp!
*requestData = list of request params e.g.: {param1 : "value1", param2 : "value2"}
*callBack = fnc which is called after request succeeded.
*/
function DoAjaxRequest(dataType, requestData, callBack)
{
	$.ajax(
      {
      	url: "/Ajax.ashx",
      	dataType: dataType,
      	data: requestData,
      	success: callBack
      });
}
function EnrichElementEvents()
{
	/*löscht input feld der Suche*/
	ClearSearchInput();
	/*bereitet aktuelle, oder empfangene E-Cards für das Drucken vor*/
	EcardPrintPopup();
	/*versteckt text mit class 'isHiddenContentContainer'*/
	HiddenInContent();
	/**/
	AllOrSingle();
	/**/
	if (Context.Layout == 'Layout6') {
	  /*Highlight Item in MainNavigation*/
	  MainNavRegisterHighlight();

    /*Vorfüllen von Input-Feldern*/
	  PreFillInputFieldText();
	  //$("select").filter(':not(.jqexclude)').generateLayout6SelectBoxes();
  }	 
}

function PreFillInputFieldText()
{
  var forms = $('form'), $form,$field,text;
  forms.each(function (i, form)
  {
    $form = $(form);
    var fields = $form.find('input[type=text], textarea')
    .each(function (k, field)
    {
      $field = $(field);
      if (!$field.hasClass('jqexclude'))
      {

        $field.data('prefilledtext', $field.attr('id') == 'searchInput' ? Context.Text.searchinputtext : Context.Text.forminputtext);
        if($field.val() == "")
            $field.val($field.data('prefilledtext') );
        $field.focus(function ()
          {
            if ($(this).val() == $(this).data('prefilledtext'))
              $(this).val('');
          })
          .blur(function ()
          {
            if ($(this).val() == '')
              $(this).val($(this).data('prefilledtext'));
          });
      }
    });
    $form.submit(function ()
    {
      fields.each(function (f, field)
      {
        if ($(field).val() == Context.Text.forminputtext || $(field).val() == Context.Text.searchinputtext)
          $(field).val('');
      });
    });
  });
 

}

function HiddenInContent()
{
	$('.isHiddenContentContainer', Context.Body).toggle(
    function (e)
    {
    	e.preventDefault();
    	$(this).prev('div')
      .toggle('blind')
      .end()
      .text($(this).data('readless'));
    },
    function (e)
    {
    	e.preventDefault();
    	$(this).prev('div')
      .toggle('blind')
      .end()
      .text($(this).data('readmore'));
    }
  )
  .show()
  .css('cursor', 'pointer')
  .prev().hide();
}

function ClearSearchInput()
{
	$('#searchInput', Context.Body).click(function (e)
	{
		$(this).val('');
	});
}
/*bereitet aktuelle, oder empfangene E-Cards für das Drucken vor*/
function EcardPrintPopup()
{
	$('form[name="ecard"]', Context.Body).find('a.printEcard').click(function (e)
	{
		var param,
      form = $(this).closest('form'),
      url = $(this).attr('href'),
      print = '&print=true';
		step = form.find('input[name="step"]');
		if (form.has('input[name="id"]').length)
		{
			param = form.serialize() + print;
		}
		else if (form.has('input[name="step"][value="3"]').length)
		{
			step.val('2');
			param = form.serialize() + print;
		}
		window.open(url + '?' + param, "_blank", "toolbar=no,location=no,scrollbars=auto,resizable=no,width=550,height=560,top=100,left=200");
		step.val('3');
		e.preventDefault();
	});
}

/*
*AutoCompletion, 
*inputID = id of the input element which is extended with autocompletion functionality
*/
function AutoCompletion(inputID, language)
{
	$(function ()
	{
		$("#" + inputID).autocomplete(
    {
    	source: function (request, response)
    	{
    		DoAjaxRequest("jsonp",
        { action: "AutoCompletion", hasin: request.term, lang: language },
        function (data)
        {
        	response(data);
        });
    	},
    	select: function (event, ui)
    	{
    		$("#" + inputID).val(ui.item.Value.Label);
    		return false;
    	},
    	minLength: 3
    })
    .data("autocomplete")._renderItem = function (ul, item)
    {
    	ul.css({ 'font-size': '0.8em' });
    	var label = item.Value.Label;
    	var term = item.Value.Term;
    	var labelWithMarkedTerm = label;
    	var pattern = new RegExp("(" + term + ")", "i");
    	var match = pattern.exec(label);
    	if (match.length > 0)
    		labelWithMarkedTerm = label.replace(pattern, '<span style="font-weight:normal">' + match[0] + '</span>');
    	return $('<li></li>')
        .data('item.autocomplete', item)
        .append('<a style="border-style:none;" >' + labelWithMarkedTerm + '</a>')
        .appendTo(ul);

    };
	});
}
 
function AllOrSingle()
{
  var checkboxesAreas = $(".allorsingle");
  $.each(checkboxesAreas, function (index, container)
  {
    var checkboxes = $(container).find('input[type=checkbox]'), checkAll = checkboxes.filter('.allorsingleall');
    checkboxes.click(function (e)
    {
      var checkActive = $(this);
      if (checkActive.is(checkAll))
      {
        checkboxes.attr('checked', checkActive.is(':checked'));
      }
      else
      {
        var notall = checkboxes.not(checkAll), allAreChecked = notall.filter(':checked').length == notall.length;
        checkAll.attr('checked', allAreChecked);
      }
    });
  });
}

// *** MainNavigation: Highlight while navigation ***
function MainNavRegisterHighlight() {
  $("#header .mainnavpos .mainnav ul li ul").mouseenter(function (evt) {
    $(evt.target).parent().children().children("a").addClass("hover");
  });

  $("#header .mainnavpos .mainnav ul li ul").mouseleave(function (evt) {
    $(evt.target).parent().children().children("a").removeClass("hover");
    $(evt.target).parent().parent().children().children("a").removeClass("hover");
  });
}

function createTimeInput()
{
  var date=new Date(); 
  var dd=date.getDate(); 
  var mm=date.getMonth() + 1; 
  var yy=date.getYear() % 100; 
  var HH=date.getHours(); 
  var MM=date.getMinutes(); 
  if(dd<10)dd="0"+dd;
 if(mm<10)mm="0"+mm;
 if(yy<10)yy="0"+yy;
 if(HH<10)HH="0"+HH;
 if(MM<10)MM="0"+MM;
 document.write("<input class='jqexclude' type='text' size='3' maxlength='2' name='Stunde' value='" + HH + "'/>:<input class='jqexclude' type='text' size='3' maxlength='2' name='Minute' value='" + MM + "'/>");
 document.write("</td></tr><tr><td colspan='5'> </td></tr>");
 document.write("<tr><td colspan='4'> </td><td class='ContentText'>Datum</td></tr><tr><td colspan='4'> </td><td class='ContentText'>");
 document.write("<input class='jqexclude' type='text' size='3' maxlength='2' name='Tag' value='" + dd + "'/>.<input class='jqexclude' type='text' size='3' maxlength='2' name='Monat' value='" + mm + "'/>.<input class='jqexclude' type='text' size='3' maxlength='2' name='Jahr' value='" + yy + "'/>");  
}

