/**
 * prevent errors in browsers that do not support console.
 */
if (typeof window.loadFirebugConsole == "undefined" || typeof window.console == 'undefined' ) {
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
  window.console = {};
  for (var i = 0; i < names.length; ++i) {
    window.console[names[i]] = function(){};
  }
}

/*
 * checks if 
 */
function unique(a)
{
   var r = new Array();
   o:for(var i = 0, n = a.length; i < n; i++) {
      for(var x = i + 1 ; x < n; x++)
      {
         if(a[x]==a[i]) continue o;
      }
      r[r.length] = a[i];
   }
   return r;
}

/**
 * function unparam
 * Get an Parameter Object from an url string.
 * @param p - eg. http://www.domain.tld/index.php?param1=1&param2=2&param3=3...
 * @return - returns an javascript object where each url parm is callable as object attrib.
 */
function unparam(p){
    var ret = {},
        seg = p.replace(/^.*\?/,'').split('&'),
        len = seg.length, i = 0, s;
    for (;i<len;i++) {
        if (!seg[i]) { continue; }
        s = seg[i].split('=');
        ret[s[0]] = s[1];
    }
    return ret
  }

/**
 * Formular Funktionen
 * Überprüft die Eingabe Felder in Mailform Plus 
 */

function chkFormular(formConfig) {
	var check_Fields = null;
	var check_Fields2 = null;
	var to_Check = null;
	var oItem = null;
	var andValues = formConfig["andValues"];
	check_Fields = andValues.split(",");

	var firstObject = null;
	var i = 0;
	var missItem = false;
	var missCounter = 0;
	/* Prüfe ODER Felder*/
	if (check_Fields2!=null){
		while ((check_Fields2[i]!=undefined)){
			to_Check=check_Fields2[i];
			//oItem = document.getElementsByName(to_Check)[0];
			oItem = $("[name=" + to_Check + "]");
			missItem = missItem | oItem.checked;
			i++;
		}
		if (missItem == 0){
			i = 0;
			while ((check_Fields2[i]!=undefined)){
				to_Check=check_Fields2[i];
				//oItem = document.getElementsByName(to_Check)[0];
				oItem = $("[name=" + to_Check + "]");
				//oItem.parentNode.setStyle({backgroundColor: formConfig["backgroundColor"]});
				oItem.parent().css("backgroundColor", formConfig["backgroundColor"]);
				if ( firstObject == null ){
					firstObject = oItem;
				}
				i++;
			}
		}
	}

	/* Prüfe UND Felder*/
	i=0;
	window.console["info"]("Starte �berpr�fung von Formular Feldern " + check_Fields.length );
	while ((check_Fields[i] != undefined)==true){
		//window.console["info"](check_Fields.length);
		to_Check = check_Fields[i];
		//oItem = document.getElementsByName(to_Check)[0];
		oItem = $("[name=" + to_Check + "]");

		if( oItem.attr('type')=="checkbox"){
			window.console["info"](oItem.attr('type')=="checkbox");
			if( oItem.attr('checked') == false ){
				oItem.parent().addClass('error');

				//oItem.observe('change', function() {
				//	chkFormular(formConfig);
				//});
				oItem.change( function(){
					chkFormular(formConfig);
				});
				if ( firstObject == null ){
					firstObject = oItem;
				}
				missCounter++;
			} else {
				oItem.parent().removeClass('error');
			}
		}else if( oItem.attr('type')=="radio"){
			aRadioObjects = document.getElementsByName( oItem.attr("name") );
			for ( var a=0; a < aRadioObjects.length; a++ ){
				if( $(aRadioObjects[0]).attr('checked') == false ){
					if ($(aRadioObjects[a]).attrname == oItem.attr('name')){
						$(aRadioObjects[a]).parent().addClass('error');
					}
					//window.console["info"](aRadioObjects.length + " - " + a + " " + typeof aRadioObjects[a] + " " + aRadioObjects[a].name);
					$(aRadioObjects[a]).change( function() {
						chkFormular(formConfig);
					});

					if ( firstObject == null ){
						firstObject = aRadioObjects[a];
					}
					missCounter++;
				} else {
					for ( var a=0; a < aRadioObjects.length; a++ ){
						if (aRadioObjects[a].name == oItem.name){
							aRadioObjects[a].parentNode.removeClass('error');
						}
					}
				}
			}
		}
		else {
			if (oItem.val() == ""){
				oItem.addClass('error');
				oItem.change( function() {
					chkFormular(formConfig);
				});

				if ( firstObject == null ){
					firstObject = oItem;
				}
				missCounter++;
			} else {
				oItem.removeClass('error');
			}
		}
		i++;
	}
	if ( missCounter >= 1 || missItem >= 1){
		firstObject.focus();
		return false;
  }else{
		return true;
  }
}

/**
 *  jQuery Part
 *  
 *  Work on some Content in the Webpage
 *  
 ****************************************/
$(document).ready(function(){

	/*
	 *  ajax suche
	 ********************/
	//$('#searchform input[name="tx_indexedsearch[sword]"]').liveSearch({url: '/spezial/indexwords.html?type=99&sword=' + $(this).val(), subPart:'#swords', minChars: 4 });
	//$('#searchform input[name="tx_indexedsearch[sword]"]').liveSearch({url: '/index.php?type=99&sword=' + $(this).val(), subPart:'#swords', minChars: 4,	duration: 200, typeDelay: 800, leftposadd: -20 });

	/*
	 *  Sliding Box Funktion
	 ***************************/
	/* content-selecter von ID auf CLASS wegen der validierung geaendert */
	$('.infoBoxHeadContainer .toggleBtn a').click( function(){ $('div.' + $(this).attr('id') ).slideToggle(); return false; } );
	//$('.headOpen .toggleBtn a').click( function(){ $('div.' + this.attr('id') ).slideToggle(); return false; } );
	//$('.infoBoxHeadContainer .headOpen .toggleBtn a').click( function(){ $('div#' + this.id ).slideToggle(); return false; } );

	/*
	 *  suchleiste eingabe
	 *****************************/
	
	$('form#searchform input.suchfeld').focusin( function(){ if ( this.value == '' || this.value == 'Suchbegriff eingeben' ){ this.value = '';} });
	$('form#searchform input.suchfeld').focusout( function(){ if( this.value == '' ){ this.value = 'Suchbegriff eingeben'; } });

	/* 
	 * Quicklinks eingabe 
	 *****************************/
	$("#quicklink").focusin(function(){	if( $(this).val()=="Quicklink eingeben" ){ $(this).val(""); }});
	$("#quicklink").focusout(function(){ if( $(this).val()=="" ){ $(this).val("Quicklink eingeben"); }});

	//$('#jquery-live-search').load('/spezial/suchergebnisse/?no_cache=1&type=98&tx_indexedsearch[sword]=ster .tx-indexedsearch .tx-indexedsearch-res')
	//$('#tx-indexedsearch-searchbox-sword').liveSearch({url: '/ajax/search.php?q='});

	/*
	 * IE6 Spezifische anpassungen 
	 ********************************/
	if($.browser.msie == true && $.browser.version.substring(0, 1) == "6" ){
		$("#siteNaviLeft LI").hover( function(){
			$(this).addClass('sfhover');
		},
		function(){
			$(this).removeClass('sfhover');
		});
	}

	/*
	 * Fancy Zoom Integration
	 * für alle Bilder im Backend welche 
	 * dass Klick Vergerößern aktiviert haben.
	 *********************************************/
	$.fn.fancyzoom.defaultsOptions.imgDir='/fileadmin/templates/_shared/gfx/jquery/ressources/';
	$("a[target=thePicture]").removeAttr("onclick");
	$("a[target=thePicture]").addClass("fancyzoom");
	$("a[target=thePicture]").attr("href", function(){
			newTarget = "/" + unparam($(this).attr("href")).file;
			return decodeURIComponent(newTarget.replace(/\+/g,  " "));
		}
	);
	$(".fancyzoom").fancyzoom({Speed:400,showoverlay:false});

});
