/**  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * central jQuery init block & AddOns
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * @project		MST
 * @copyright	(C) 2010 Pinuts media+science GmbH * All Rights Reserved 
 * @cvd			pica$$o@pinuts.de
 * @since		jQuery 1.3.x
 * @version		$Id: $
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * BaseIdea 4 switchStylestyle: By Kelvin Luck ( http://www.kelvinluck.com/ )
 * Under an Attribution, Share Alike License
 * @notes  piPatched: all Cookie functions jQuerysed (C)pinuts.de
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Parts:
 *		- superfish 
 *		- jCookiefunktions 
 *		- jSwitchStylestyle
 *			- flavor 1: Enabler
 *			- flavor 2: BaseSizeSetter - SchriftMST
 *		- piBannerTabSwitch
 *		- piProductSwitch
 *		- FIONA-VE-Tools
 *		- TableColorizer
 *		- DownloadExtender
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

	
	// cookie functions http://www.quirksmode.org/js/cookies.html
	jQuery.fn.createCookie = function(name,value,days) {
		if (days)
		{
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	
	jQuery.fn.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++)
		{
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) {
					return c.substring(nameEQ.length,c.length);
			}
		}

		return null;
	}
	
	jQuery.fn.eraseCookie = function(name) {
		$(this).createCookie(name,"",-1);
	}
	
	/**
	 * Schriftvergroesseerung mit extra Files
	 * - gebunden an 'title' vom 'rel="alternate stylesheet"'
	 * @see CookieName: MSTstyle
	 */
	$.fn.switchStylestyle = function(styleName){

		$('link[rel*=style][title]').each(function(i) 
		{
			this.disabled = true;
			if (this.getAttribute('title') == styleName) this.disabled = false;
		});
		$(this).createCookie('MSTstyle', styleName, 365);
	}
	
		$.fn.pause = function(millis){
		  return this.each(function(){
				  var	iStart=new Date();
				  while(new Date()-iStart<millis);
				  //alert('Beep after:'+millis);
		  });
		};


/**
 * Schriftvergroesseerung in Stufen
 * - hier sind es 3
 * - gebunden an 'li class="AAA"'
 * - benutzt wird ein Sprite fuer alle Stati (90*24)
 * @see CookieName: MSTstyle
 */
var SchriftMST = {
	s_id:0,						//internal Brain 4 status
	s: [12, 13, 14 ],	//here the 3 Fontsizes in px - or better in em?
	
	/* 4the future oso */
	init: function() {
	},
	next: function() {

			this.s_id = (this.s_id<2	?	this.s_id+1	:	0);

			$('body').css('font-size', ''+this.s[this.s_id]+'px');
			$(this).createCookie('MSTstyle', this.s_id, 365);
			$('li.AAA').css({backgroundPosition: "-"+(this.s_id*30)+"px 0px" });
	},
	/* get the current Cookie and use it */
	get: function() {
		var c = $(this).readCookie('MSTstyle');

		//0 is valid!!
		c = (c != '' && (parseInt(c)<3 ? parseInt(c) : 0));

		this.s_id = c; //dort machen wir weiter
		$('body').css('font-size', ''+this.s[this.s_id]+'px');
		$('li.AAA').css({backgroundPosition: "-"+(this.s_id*30)+"px 0px" });
	},
	/* mouseover 4 the Icon */
	activ: function(wie) {
		$('li.AAA').css({backgroundPosition: "-"+(this.s_id*30)+"px -"+(wie*12)+"px" });
	}
}
	
/**
 * Homepage Bannerswitch
 *
 */
var piBannerTabSwitch = {
	iStageID: 0, //aktueller Stage
	iStageMax: 0,
	dia: false,
	diaspeed: 7000,
	init: function () {
		this.iStageMax = $('#tabs div.bannertabs').length - 1; //Anzahl der Stages, beginnt intern mit 0
		this.iStageID = 0
		this.diashow()
	},
	next: function() {
		// lies den aktuellen INdex aus, so kann sogar der user 
		// auf einen clicken _und_ mit [+/-] weiter
		this.iStageID = $('#tabs').tabs('option', 'selected');
		this.iStageMax = $('#tabs div.bannertabs').length - 1; //Anzahl der Stages, beginnt intern mit 0
		this.iStageID = this.iStageID+1
		if(this.iStageID > this.iStageMax) {
			this.iStageID = 0
		}
		$('#tabs').tabs('select', this.iStageID);
	},
	prev: function() {
		// lies den aktuellen INdex aus, so kann sogar der user 
		// auf einen clicken _und_ mit [+/-] weiter
		this.iStageID = $('#tabs').tabs('option', 'selected');
		this.iStageMax = $('#tabs div.bannertabs').length - 1; //Anzahl der Stages, beginnt intern mit 0
		this.iStageID = this.iStageID-1
		if(this.iStageID < 0) {
			this.iStageID = this.iStageMax
		}
		$('#tabs').tabs('select', this.iStageID);
	},
	diashow: function() {
		this.dia = setInterval(piBannerTabSwitch.next,this.diaspeed)
	},
	diaShowStop: function() {
		clearInterval(this.dia)
	}
};


//run if ready ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$(function(){
		//alert('ready');

	//internal editing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	$("div#options").click(function() {

			//die BearbeitungsIcons extra behandel
			//alle span mit der referenz zu deren ids finden und diese dann verstecken/anzeigen
			$("#hiddenopt > * > div.nps_js_editmarker_anchor").each(function() {

					var s = $(this).attr('id');
					var myid = s.split("_anchor");
					if ($("#hiddenopt").css("display")=='none')
					{
						//der z-index muss an den Container angeglichen werden (see /webapps/GUI/NPS/themes/previewStyle.css)
						$("#"+myid[0]).css({zIndex: 999});

						$("#"+myid[0]).css({display:"block"});
						//$("#options span.icon").css({backgroundPosition:"0px 0px"});
					}
					else
					{
						$("#"+myid[0]).css({display:"none"});
						//$("#options span.icon").css({backgroundPosition:"0px -5px"});
					}
			});

			$("#hiddenopt").slideToggle(300);
	});
	$("#hiddenopt").click(function() {
			$("div#options").click();
	});
	//Homebanner
	$("div#optionshome").click(function() {

			//die BearbeitungsIcons extra behandel
			//alle span mit der referenz zu deren ids finden und diese dann verstecken/anzeigen
			$("#hiddenopthome > * > span.nps_js_editmarker_anchor").each(function() {

					var s = $(this).attr('id');
					var myid = s.split("_anchor");
					if ($("#hiddenopthome").css("display")=='none')
					{
						//der z-index muss an den Container angeglichen werden (see /webapps/GUI/NPS/themes/previewStyle.css)
						$("#"+myid[0]).css({zIndex: 999});

						$("#"+myid[0]).css({display:"block"});
						//$("#optionshome span.icon").css({backgroundPosition:"0px 0px"});
					}
					else
					{
						$("#"+myid[0]).css({display:"none"});
						//$("#optionshome span.icon").css({backgroundPosition:"0px -5px"});
					}
			});

			$("#hiddenopthome").slideToggle(300);
	});
	$("#hiddenopthome").click(function() {
			$("div#optionshome").click();
	});
	//Produktbanner
	$("div#optionsprod").click(function() {

			//die BearbeitungsIcons extra behandel
			//alle span mit der referenz zu deren ids finden und diese dann verstecken/anzeigen
			$("#hiddenoptprod > * > span.nps_js_editmarker_anchor").each(function() {

					var s = $(this).attr('id');
					var myid = s.split("_anchor");
					if ($("#hiddenoptprod").css("display")=='none')
					{
						//der z-index muss an den Container angeglichen werden (see /webapps/GUI/NPS/themes/previewStyle.css)
						$("#"+myid[0]).css({zIndex: 999});

						$("#"+myid[0]).css({display:"block"});
						//$("#optionsprod span.icon").css({backgroundPosition:"0px 0px"});
					}
					else
					{
						$("#"+myid[0]).css({display:"none"});
						//$("#optionsprod span.icon").css({backgroundPosition:"0px -5px"});
					}
			});

			$("#hiddenoptprod").slideToggle(300);
	});
	$("#hiddenoptprod").click(function() {
			$("div#optionsprod").click();
	});

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


		//supersleight
        if (
            $.browser.msie &&
            parseFloat($.browser.version) < 7
        ) {
            $('div#Page').supersleight();
        }


		
		//Tabellenzeilen einfaerben
		$('div#ContentContainer div.ContentCol table tr:nth-child(2n+1)').addClass("even");
		$('div#ContentContainer div.ContentCol table thead tr').removeClass("even");
		//$('div#ContentContainer div.ContentCol table tr:first-child').addClass("head");
		//Trennstrich nicht beim ersten Element
		$('ul.Sitetools li:first-child').attr({style: "background-image: none;"});
		$('div#Footer ul:first-child').attr({style: "border: 0px;"});
		//keine Trennlinie beim letzten Unterpunkt
		$('div#Navigation ul ul li:last-child').attr({style: "border: 0px;"});
		//Wenn Navigationspunkt Unterpunkte enthaelt, dann Pfeil nach unten
		$('div#Navigation li ul').parent().addClass("active open");
		//kein Padding oben bei Box mit Newsmeldungen
		$('div.LeftCol div.Box div.Content > div.News').parent().attr({style: "padding-top: 0px;"});
		//kein Abstand nach oben wenn Liste erstes Inhaltselement ist
		$('div.Content ul:first-child').attr({style: "margin-top: 0px;"});
		//abweichendes Padding oben bei erster Newsmeldung
		$('div.Content div.News:first').attr({style: "border: 0px;"});
		//abweichendes Padding unten bei letzter Newsmeldung
		$('div.Content div.News:last').attr({style: "padding-bottom: 0px;"});
		//Wenn Teaserbild letztes Element in box dann ohne Linie
		$('div.Box div.TeaserImg:last-child img').attr({style: "border: 0px;"});
		//obere Linie beim ersten Unterpunkt der Layernav
		$('div.TabNavigation ul ul li:first-child').attr({style: "border-top: 1px solid #c9c8c8;"});
		//wenn h2 nach h1 dann ohne padding-top
		$('h1+h2').addClass("Follow");
		//wenn h2 nach Date dann ohne padding-top
		$('span.Date+h2').attr({style: "padding-top: 0px;"});
		//Wenn Sitemappunkt Unterpunkte enthaelt, dann Pfeil nach unten
		$('ul.Sitemap li ul').parent().addClass("open");
		// letzter Produktteaser ohne Linie unten
		$('div#ContentContainer div.ContentCol div.productteaser:last').attr({style: "border: 0px;"});



		//PageTop
		$('#Totop').animate( { scrollTop: 0 }, 'slow' );

		//Downloads(u.a. Links) via CSS-Klasse mit Typ-Icon versehen: hier ist der Link innerhalb eines <li> und die class muss ins <li>
		$('ul.LinkList li > a[href$=pdf]').parent().addClass("PDF");
		$('ul.LinkList li > a[href$=xls]').parent().addClass("XLS");
		$('ul.LinkList li > a[href$=doc]').parent().addClass("DOC");
		$('ul.LinkList li > a[href$=jpg]').parent().addClass("PIC");
		$('ul.LinkList li > a[href$=gif]').parent().addClass("PIC");
		$('ul.LinkList li > a[href$=png]').parent().addClass("PIC");
		$('ul.LinkList li > a[href$=bmp]').parent().addClass("PIC");
		//new
		$('ul.LinkList li > a[href$=zip]').parent().addClass("ZIP");
		$('ul.LinkList li > a[href$=gz]').parent().addClass("ZIP");
		$('ul.LinkList li > a[href$=bz2]').parent().addClass("ZIP");
		//... und auch innerhalb der Tabellen
		$('div.Content table td > a[href$=pdf]').addClass("PDF");
		$('div.Content table td > a[href$=xls]').addClass("XLS");
		$('div.Content table td > a[href$=doc]').addClass("DOC");
		$('div.Content table td > a[href$=jpg]').addClass("PIC");
		$('div.Content table td > a[href$=gif]').addClass("PIC");
		$('div.Content table td > a[href$=png]').addClass("PIC");
		$('div.Content table td > a[href$=bmp]').addClass("PIC");
		$('div.Content table td > a[href$=zip]').addClass("ZIP");
		$('div.Content table td > a[href$=gz]').addClass("ZIP");
		$('div.Content table td > a[href$=bz2]').addClass("ZIP");


		//alle absoluten URIs im extra Fenster oeffnen
		$("a[href^='http']").click(function()
		  {
			this.target = "_blank";
		  });

		//Schriftgroessen: Variante mit extra Style-Files
		/*
		$('.styleswitch').click(function()
		{
			$(this).switchStylestyle(this.getAttribute("rel"));
			//addon: das css definiert den activen Zustand
			$(".styleswitch").removeClass('active');	//all OFF
			$(this).addClass('active');					//this ON
			return false;
		});
		var c = $(this).readCookie('style');
		if (c) $(this).switchStylestyle(c);
		*/
		//Schriftgroessen: Variante mit festen Größen
		//a) groesse setzen
		SchriftMST.get();
		//b) groesse aendern
		$('li.AAA').click(function() {
				SchriftMST.next();
		});
		//c) Mouseover
		$('li.AAA').mouseover(function() {
				SchriftMST.activ(1);
		});
		$('li.AAA').mouseout(function() {
				SchriftMST.activ(0);
		});
		
		
		//Layernavigation superfish: nicht in IE6
		if (!$.browser.msie || ($.browser.msie && (parseInt(jQuery.browser.version) != 6))	)
			$('ul.sf-menu').superfish();

		// Banner-Tabs
		$('#tabs').tabs({ fx: { opacity: 'toggle', duration:'normal'} });

		//hover states on the static widgets
		$('#dialog_link, ul#icons li').hover(
			function() { $(this).addClass('ui-state-hover'); }, 
			function() { $(this).removeClass('ui-state-hover'); }
		);

		//Tabsueberwachung fuer [<][>]
		//fuer JS/freihe version bleiben die schalter unsichtbar
		$('div.tabsw a').css('display','block');

if ($('#tabs div.bannertabs').length) {
		piBannerTabSwitch.init();
		$('#tabprev').click(function(){
		  	piBannerTabSwitch.prev();		  	  
		});
		$('#tabnext').click(function(){
		  	  piBannerTabSwitch.next();		  	  
		});
		// Wenn Maus die Bühne überfährt, dann Dia
		// Show anhalten
		$('#tabs').mouseenter(function(){
			piBannerTabSwitch.diaShowStop()
		})
		// Wenn die Maus die Bühne verlässt, dann Diashow
		// weiterlaufen lassen
		$('#tabs').mouseleave(function(){
			piBannerTabSwitch.diashow()
		})
}

/*		
		piProductSwitch.init();
		$('#tabprevProduct').click(function()
		  {
			  piProductSwitch.stSwitch(1);
		  });
		$('#tabnextProduct').click(function()
		  {
			  piProductSwitch.stSwitch(0);
		  });
*/

});
$(window).load(function () {
	//alert('load');
	$("div#options").click();
	$("div#optionshome").click();
	$("div#optionsprod").click();
	
});
