/*
*/
jQuery.FontSizer = {
	defaultsize: 75,
	incrrate: 10,
	level: 0,
	min: -2, 
	max: 5,
	cookiename: 'wstw_font',

	Init : function() {
		var level = ($.cookie($.FontSizer.cookiename) != null) ? parseInt($.cookie($.FontSizer.cookiename)) : 0;
		$.FontSizer.SetFontSize(level);
	},

	Increase : function() {
		if(($.FontSizer.level) + 1 <= $.FontSizer.max) {
			$.FontSizer.SetFontSize(parseInt($.FontSizer.level) + 1);
		}
	},

	Reset : function() {
		$.FontSizer.SetFontSize(0);
	},

	Decrease : function() {
		if(($.FontSizer.level - 1) >= $.FontSizer.min) {
			$.FontSizer.SetFontSize(parseInt($.FontSizer.level) - 1);
		}
	},
	
	SetFontSize: function(level) {
		$.FontSizer.level = level;
		$.cookie($.FontSizer.cookiename, level, { expires: 14 } );
		var fontsize = parseInt( $.FontSizer.defaultsize + level*$.FontSizer.incrrate ) + "%";
		$("body").css( "fontSize", fontsize );
	}

};

/* get url params */
jQuery.fn.extend({
	getUrlParam: function(strParamName){
	  strParamName = escape(unescape(strParamName));
	  
	  var returnVal = new Array();
	  var qString = null;
	  
	  if ($(this).attr("nodeName")=="#document") {
		if (window.location.search.search(strParamName) > -1 ){
			qString = window.location.search.substr(1,window.location.search.length).split("&");
		}
	  } 
	  else if ($(this).attr("src")!="undefined") {
	  	var strHref = $(this).attr("src")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } 
	  else if ($(this).attr("href")!="undefined") {
	  	var strHref = $(this).attr("href")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } else {
	  	return null;
	  }

	  if (qString==null) return null;
	  
	  for (var i=0;i<qString.length; i++){
		if (escape(unescape(qString[i].split("=")[0])) == strParamName){
			var val = decodeURIComponent( qString[i].split("=")[1].replace(/\+/g,' ') );
			returnVal.push(val);
		}
	  }

	  if (returnVal.length==0) return null;
	  else if (returnVal.length==1) return returnVal[0];
	  else return returnVal;
	}
});

/*
Original:
 http://plugins.jquery.com/project/Cookie
 (//styles.wienerstadtwerke.at/mastertemplate/js/jquery/jquery.cookie.js)
*/
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') {
        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();
        }
        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 {
        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]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

/* 
Original: 
 http://www.htmldog.com/articles/suckerfish/dropdowns/
*/
function sfHover ( objID )
{
	var sfEls = document.getElementById( objID ).getElementsByTagName( "LI" );
	for (var i=0; i<sfEls.length; i++)
	{
		/*if ( !browser.isMac && ( browser.isIE55 || browser.isIE6x ))*/
		if ( true )
		{
			sfEls[i].onmouseover = function()
			{
				this.className+=" sfhover";
				var ieUL = this.getElementsByTagName( "UL" )[0];
				if ( ieUL )
				{
					var ieMat = document.createElement( "IFRAME" );
					ieMat.src = "javascript:false";
					ieMat.style.width = ieUL.offsetWidth + "px";
					ieMat.style.height = ieUL.offsetHeight + "px";
					ieMat.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
					ieUL.insertBefore( ieMat, ieUL.firstChild );
					ieMat.style.zIndex = "-1";
				}
			}
			sfEls[i].onmouseout = function()
			{
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
				var ieUL = this.getElementsByTagName('ul')[0];
				if (ieUL)
				{
					//ieUL.removeChild( ieUL.firstChild );
				}
			}
		}
		else
		{
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}

/*
param1: linktext
param2: linktitle
*/
function writePrintLink () 
{
	var ltxt = (writePrintLink.arguments[0]) ? writePrintLink.arguments[0] : ""; 
	var ltitle = (writePrintLink.arguments[1]) ? writePrintLink.arguments[1] : "";
	document.write("<a href=\"Javascript: window.print()\" title=\""+ltitle+"\" class=\"printlink\"><span class=\"ltext\">"+ltxt+"</span></a>");
}

/*
param1: 1. A (klein) - Title 
param2: 2. A (nornmal) - Title
param3: 3. A (gross) - Title
*/
function write3A () 
{
	var title1 = (write3A.arguments[0]) ? write3A.arguments[0] : "";
	var title2 = (write3A.arguments[1]) ? write3A.arguments[1] : "";
	var title3 = (write3A.arguments[2]) ? write3A.arguments[2] : "";
	document.write("<span class=\"aaa\">");
	document.write("<a href=\"Javascript: $.FontSizer.Decrease();\" title=\""+title1+"\" class=\"small\">A</a>");
	document.write("<a href=\"Javascript: $.FontSizer.Reset();\" title=\""+title2+"\" class=\"normal\">A</a>");
	document.write("<a href=\"Javascript: $.FontSizer.Increase();\" title=\""+title3+"\" class=\"large\">A</a>");
	document.write("</span>");
	document.write("<span class=\"separator\"> | </span>");
}

function jump2url ( url )
{
	var params = url.split("|")
	if (eval(params[1])) 
		window.open( params[0] );
	else 
		document.location.href = params[0];
}

function showhide(id) {
    obj = document.getElementsByTagName("div");
    if ( (obj[id].style.display == 'none') || (obj[id].style.display == '') ) {
		obj[id].style.display = 'block';
    }
    else {
		obj[id].style.display = 'none';
    }
	return false;
}

function write2input(id,txt) {
	if ( $(id).length > 0 ) $(id).val(txt);
}

function selectradio(name,val) {
	$("input[@name='"+name+"']").attr("checked","");
	$("input[@name='"+name+"'][@value='"+val+"']").attr("checked","checked");
}

function closeTT() {
	$("#cluetip-close").click();
	return false;
}

function vorcheckback(vor_s, vor_o, vor_t, wo) {
	if ( vor_s ) $("#form_fahrplanauskunft input[@id=f_"+wo+"_stadt]").val(vor_s);
	if ( vor_o ) $("#form_fahrplanauskunft input[@id=f_"+wo+"]").val(vor_o);
	if ( vor_t ) $("#form_fahrplanauskunft input[@name=f_"+wo+"_typ][value='"+vor_t+"']").attr("checked","checked");
}

function vorcheck(objid, typ, iurl) {
	var rurl = (vorcheck.arguments[3]) ? vorcheck.arguments[3] : iurl;
	var vor_s = $("#form_fahrplanauskunft input[@id=f_"+typ+"_stadt]").val();
	var vor_o = $("#form_fahrplanauskunft input[@id=f_"+typ+"]").val();
	var vor_t = $("#form_fahrplanauskunft input[@name=f_"+typ+"_typ]:checked").val();
	var isrc = iurl + "?" + "s=" + vor_s + "&o=" + vor_o + "&t=" + vor_t + "&rurl=" + rurl + "&wo=" + typ;
	$("#"+objid+" iframe").attr("src", isrc) ;
}

/* Hier kommen Funktionen & Funktionalitäten, die ausgeführt werden, sobald DOM geladen ist */
$(document).ready(function() {
	
	/* fontsizer initialisieren */
	$.FontSizer.Init();

	/* für den IE6: die dropdown initialisieren */
	if ( $.browser.msie && (parseInt($.browser.version) < 7) && $("#menu-01").length )
	{
		sfHover( 'menu-01' );
	}
	
	/* Dimensions-Plugin laden (für weitere plugins) */
	$.ajax({
		type: "GET", 
		url: "//styles.wienerstadtwerke.at/mastertemplate/js/jquery/jquery.dimensions.js",
		success: function(){},
		dataType: "script",
		cache: true
	});

	/* datepicker laden und initialisieren */
	if ( $('input.date').length > 0 )
	{
		$.ajax({
			type: "GET",
			url: "//styles.wienerstadtwerke.at/mastertemplate/js/jquery/ui.datepicker.js",
			success: function(){
				$('input.date').attachDatepicker($.extend($.datepicker.regional[$('html').attr('lang')]));
			},
			dataType: "script",
			cache: true
		});
	}

	/* cluetip (tooltips) laden und initialisieren */
	if ( ( $('.tooltip').length > 0 ) || ( $('.tooltipIframe').length > 0 ) )
	{
		$.ajax({
			type: "GET",
			url: "//styles.wienerstadtwerke.at/mastertemplate/js/jquery/jquery.cluetip.min.cu.js",
			success: function(){
				$('.tooltip').cluetip({local:true, tracking:true, dropShadow: false});
				$('.tooltipIframe').cluetip(
					{
						local:true, cluetipClass: 'ttIframe', dropShadow: false, sticky: true, closePosition: 'top', 
						closeText: '<img src="//styles.wienerstadtwerke.at/mastertemplate/css/img/schliessen_icon.gif"" alt="" />', 
						width: '750', iheight: '550', arrows: true,  activation: 'click'
					}
				);
			},
			dataType: "script",
			cache: true
		});
	}

});

