/*
main.js 
Author: Sascha Meier \
LastChangedDate: 081212 \
LastChangedBy: maik.finsterbusch@ARITHNEA.de \

history:
081212			maik.finsterbusch@ARITHNEA.de
				schoener header, insert global object.

*/
var global	= new Object();
var __log	= function(){};
var __tmpFct	= function(){};

function addOnLoadStaceTrack(fct){
	if (window.addEventListener) {
	window.addEventListener("load", fct, true);
	} else if (window.attachEvent) {
	window.attachEvent("onload", fct);
	}
}

function onLoadFunctions(){
		__log_init();
		initPrint();
		initFontStepper();
		navHover();
		initHovers("ul","date");
		initHovers("ul","traveltypes");
		initHovers("ul","destinations");
		setAutoPadding();
}

addOnLoadStaceTrack(onLoadFunctions);

function __selectFix(){
	//IHTMLSelectElement.fix(document.getElementsByTagName('select'));
	// IEHTMLSelectElement.fix(document.getElementsByTagName('select'));
}

addOnLoadStaceTrack(__selectFix);

/*if (window.addEventListener) {
window.addEventListener("load", onLoadFunctions, true);
} else if (window.attachEvent) {
window.attachEvent("onload", onLoadFunctions);
}*/


// initialize print function
function initPrint() {
	// show print Link
	var print = document.getElementById("print");
	if (print) {
	  print.style.visibility = "visible";

	  // set print button events
	  print.href="javascript:window.print();"
	  }
}

// init a log
function __log_init(){
	global['__log'] = new Array();
	global['__log'].push('__log() Array initialized.');

	set=false;
	if(typeof(console) == 'object')
	{
		if(typeof(console.log) == 'function')
		{
			set=true;
			__log = function(t,l,s){
				console.log(__log_msg(t,l,s));
				global['__log'].push(__log_msg(t,l,s));
			};
		}
	}
	if(set==false){
		var bodyDom = document.getElementsByTagName('BODY').item(0);
		logDiv = document.createElement('div');
		logDiv.id = '__log';
		logDiv.style.display = 'none';
		bodyDom.appendChild(logDiv);
		__log = function(t,l,s){
			l = document.getElementById('__log');
			l.innerHTML = l.innerHTML+'\n'+__log_msg(t,l,s);
			global['__log'].push(__log_msg(t,l,s));
		};

	}
	__log('__log_init();');
	return;
}

function __log_msg(t,l,s){
		//#todo s considers tracestacks
		return getTimestamp()+' #'+__log_leveltransform(l)+' | '+t;
}
function __log_leveltransform(c){
		l = '';
		switch(c){
			case 1:
				l='warning';
			case 2:
				l='error';
			case 3:
				l='fatal';
			default:
			case 0:
				l='debug';
			break;

		}
	return l;
}
function getTimestamp(){
	return '';
}

/* show navi items (ie 6) */
navHover = function() {
var nav = document.getElementById("Navigation");
if (nav) {
var lis = document.getElementById("Navigation").getElementsByTagName("LI");
for (var i=0; i<lis.length; i++) {

/* find Submenuitems for all browsers except ie */
if (navigator.appName != "Microsoft Internet Explorer") {
if (lis[i].firstChild.parentNode.lastChild.tagName != "A") {
lis[i].firstChild.className+=" hasSub";
}
}
/* find Submenuitems for ie */
if (lis[i].lastChild.tagName == "UL") {
if (lis[i].firstChild.tagName == "A") {
lis[i].firstChild.className+=" hasSub";
}
}

lis[i].onmouseover=function() {
this.className=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className= "";
}
lis[i].onfocus=function() {
this.className=" iehover";
}
lis[i].onblur=function() {
this.className=this.className= "";
}
}
}
}



// initialize font stepper
function initFontStepper() {
// show font stepper
if (document.getElementById("fontStepper")) {
document.getElementById("fontStepper").style.visibility = "visible";

// set font stepper button events
document.getElementById("fontdec").href="javascript:fontStepper(-1, false);"
document.getElementById("fontinc").href="javascript:fontStepper(1, false);"

// get cookie value and set font stepper
/*var stepValue = parseInt(getCookieValue());
if (stepValue < 0) {
  stepValue = stepValue*(-1);
  for (var i=0; i<stepValue; i++) {
    fontStepper(-1, false);
  }
} else {
  for (var i=0; i<stepValue; i++) {
    fontStepper(1, false);
  }
}
*/
}
}


/*
function getCookieValue() {
value1 = "";
if(document.cookie)
{
value1 = document.cookie;
value1 = value1.slice(value1.indexOf("=")+1,value1.length);
}
return value1;
}
*/

/* font stepper */
var spEmStepWidth 	= 0.125;	// increase/decrease font every step by spEmStepWidth
var spEmBasis 		= 1.125;		// font size of spArticleBody at startup
var spEmStep 		= -1;		// counter for current step (leave as 0)
var spEmMaxSteps 	= 2;		// maximum steps alowed

function fontStepper(spInc, spReset) {
// reset font size
if (spReset)
spEmStep = -1;
// inside allowed steps?
if (Math.abs(spEmStep + spInc) <= spEmMaxSteps) {
// increase/decrease spEmStep
spEmStep += spInc;
// set new font size for every tag inside "spEmStep"
spEmFontSize = spEmStep * spEmStepWidth + spEmBasis;
//get spArticleBody
spEmBody = document.getElementById('volume');
// set new fot size
spEmBody.style.fontSize = spEmFontSize + "em";
//spEmBody.style.lineHeight = spEmFontSize+0.54 + "em";
// save value in cookie
step = spEmStep+1;
document.cookie = 'spEmStep='+step+ ';path=/;';
}
}

/* Bookmark functionality */
function addBookmark() {
	if (window.navigator.appName == "Microsoft Internet Explorer") {
		window.external.addFavorite('http://www.derpartner.de','Derpart Travel Service');
	}
	else {
		window.external.addPanel('Derpart Travel Service', 'http://www.derpartner.de/', '');
	}
}

function insertTopImage(imageURL){
	var returnvalue	= false;
		if(imageURL !== ''){
			var imgPrefix	= '';
			var img	= document.createElement("img");
			var anchor	= document.createElement("a");
			img.setAttribute('src',imgPrefix+imageURL);
			img.setAttribute('alt','');
			anchor.appendChild(img);

			$('#tsrCnt').prepend(anchor);
			returnvalue	= true;
		}
		contentPaddingTop(true);
		__log('insertTopImage(\''+imageURL+'\') | anchor and img DOM element created. | returnvalue: '+returnvalue,0);
	return returnvalue;
}

function contentPaddingTop(setPadding){
		// std is, to toggle padding
		var value2set	= '0px';
		var cc	= $('#contentContainer');
		if(setPadding == null){
			// then toggle
			if(cc.css('padding-top') == '' || cc.css('padding-top') == '0px')
				value2set	= '45px';
			else
				value2set	= '0px';
		}
		if(setPadding == true){
			 value2set	= '45px';
		}
		if(setPadding == false){
			 value2set	= '0px';
		}

		cc.css('padding-top',value2set);
		__log('contentPaddingTop('+setPadding+') | set #contentContainer padding-top | value2set '+value2set,0);
	return value2set;
}

function setAutoPadding(){
		var setTo = true;
		var firstChild = $('#tsrCnt > *:first');
		if(typeof(firstChild) == 'object'){
			firstChild	= firstChild[0];
			if(typeof(firstChild) == 'object'){
				if(firstChild.tagName == 'A' || firstChild.tagName == 'IMG'){
					// there is a pic or a link to a pic, setPadding
					setTo = true;
				}
				else{
					setTo = false;
				}
			}
		}

		contentPaddingTop(setTo);
	return true;
}

function initHovers(tag,IdName) {
// set hover
var lis = document.getElementsByTagName(tag);
for (var i=0; i<lis.length; i++) {
if (lis[i].id == IdName) {
lis[i].onmouseover=function() {
this.className = this.id+"Hover";
}
lis[i].onmouseout=function() {
this.className = "";
}
} else if (!IdName) {
if (lis[i].className) {
lis[i].classNames = lis[i].className.split(" ");
if (lis[i].classNames.length > 0) {
lis[i].classes = "";
for (var z=0; z<lis[i].classNames.length; z++) {
lis[i].classes +=  " "+lis[i].classNames[z];
}

}



lis[i].onmouseover=function() {
this.className = this.classes+" "+this.classNames[0]+"Hover";
}
lis[i].onmouseout=function() {
this.className = this.classes;
}
lis[i].onfocus=function() {
this.className = this.classes+" "+this.classNames[0]+"Hover";
}
lis[i].onblur=function() {
this.className = this.classes;
}
}
}
}
}

function triggerSearch(url){
		window.location.href=url;
	return true;
}

$(function() {
		$.datepicker.regional['de'] = {
		closeText: 'schlie&szlig;en',
		prevText: '&#x3c;zur&uuml;ck',
		nextText: 'Vor&#x3e;',
		currentText: 'heute',
		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'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		weekHeader: 'Wo',
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
		$.datepicker.setDefaults($.datepicker.regional['de']);
		$( ".datepicker" ).datepicker( $.datepicker );
	});
