/**
 * Functions for Whitelabel Imedo
 *
 * @copyright 	copyright (c) 2008 by GMX GmbH
 * @author 		matthias krumm
 */



// Initialize Main-Object
var pomaImedo = new Object;


// Imagemap
pomaImedo.imgmap = {
	show: function(area) {
		var imOver = poma.dom.$id('imgmap-over');
		var imOverBl = poma.dom.$id('imgmap-over-bl');
		switch (area.id) {
			case 'schleswig-holstein':
				imOver.innerHTML = 'Schleswig-Holstein';
				imOver.style.left = '65px';
				imOver.style.top = '10px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '84px';
				imOverBl.style.top = '0px';
				break;
			case 'mecklenburg-vorpommern':
				imOver.innerHTML = 'Mecklenburg-Vorpommern';
				imOver.style.left = '120px';
				imOver.style.top = '28px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '141px';
				imOverBl.style.top = '20px';
				break;
			case 'hamburg':
				imOver.innerHTML = 'Hamburg';
				imOver.style.left = '100px';
				imOver.style.top = '55px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '116px';
				imOverBl.style.top = '57px';
				break;
			case 'bremen':
				imOver.innerHTML = 'Bremen';
				imOver.style.left = '65px';
				imOver.style.top = '75px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '80px';
				imOverBl.style.top = '80px';
				break;
			case 'niedersachsen':
				imOver.innerHTML = 'Niedersachsen';
				imOver.style.left = '75px';
				imOver.style.top = '80px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '28px';
				imOverBl.style.top = '47px';
				break;
			case 'brandenburg':
				imOver.innerHTML = 'Brandenburg';
				imOver.style.left = '200px';
				imOver.style.top = '110px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '166px';
				imOverBl.style.top = '69px';
				break;
			case 'berlin':
				imOver.innerHTML = 'Berlin';
				imOver.style.left = '205px';
				imOver.style.top = '100px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '212px';
				imOverBl.style.top = '106px';
				break;
			case 'nordrhein-westfalen':
				imOver.innerHTML = 'Nordrhein-Westfalen';
				imOver.style.left = '0px';
				imOver.style.top = '140px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '0px';
				imOverBl.style.top = '114px';
				break;
			case 'sachsen-anhalt':
				imOver.innerHTML = 'Sachsen-Anhalt';
				imOver.style.left = '125px';
				imOver.style.top = '115px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '140px';
				imOverBl.style.top = '89px';
				break;
			case 'rheinland-pfalz':
				imOver.innerHTML = 'Rheinland-Pfalz';
				imOver.style.left = '0px';
				imOver.style.top = '210px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '5px';
				imOverBl.style.top = '190px';
				break;
			case 'hessen':
				imOver.innerHTML = 'Hessen';
				imOver.style.left = '70px';
				imOver.style.top = '180px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '55px';
				imOverBl.style.top = '156px';
				break;
			case 'thueringen':
				imOver.innerHTML = 'Th&uuml;ringen';
				imOver.style.left = '125px';
				imOver.style.top = '170px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '119px';
				imOverBl.style.top = '157px';
				break;
			case 'sachsen':
				imOver.innerHTML = 'Sachsen';
				imOver.style.left = '200px';
				imOver.style.top = '155px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '181px';
				imOverBl.style.top = '155px';
				break;
			case 'saarland':
				imOver.innerHTML = 'Saarland';
				imOver.style.left = '5px';
				imOver.style.top = '250px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '10px';
				imOverBl.style.top = '251px';
				break;
			case 'baden-wuerttemberg':
				imOver.innerHTML = 'Baden-W&uuml;rttemberg';
				imOver.style.left = '35px';
				imOver.style.top = '280px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '43px';
				imOverBl.style.top = '245px';
				break;
			case 'bayern':
				imOver.innerHTML = 'Bayern';
				imOver.style.left = '155px';
				imOver.style.top = '265px';
				imOverBl.style.backgroundImage = 'url(//static.gmx.net/current/de/images/whitelabel/imedo/imgmap-bl-' + area.id + '-over.gif)';
				imOverBl.style.left = '91px';
				imOverBl.style.top = '209px';
				break;
			default:
				break;
		}
	},
	hide: function(area) {
		var imOver = poma.dom.$id('imgmap-over');
		imOver.style.left = '0px';
		imOver.style.top = '-1000px';
		imOver.innerHTML = '';
		var imOverBl = poma.dom.$id('imgmap-over-bl');
		imOverBl.style.left = '0px';
		imOverBl.style.top = '-1000px';
		imOverBl.style.backgroundImage = '';
	}
}


// Form
pomaImedo.form = {
	validate: function() {
		var field1 = poma.dom.$id('query');
		var field2 = poma.dom.$id('location');
		var field3 = poma.dom.$id('name');
		if ( field2.value == '' || field2.value.indexOf('z.B.') == 0 || (field1.value.indexOf('z.B.') == 0 && field2.value.indexOf('z.B.') == 0 && field3.value.indexOf('z.B.') == 0) ) {
			return false;
		}
	}
}


// Popup-Gadget
pomaImedo.pg = {
	init: function() {
		this.numberOfLi = 12; // number of <li>-elements per column/<ul>
		this.pgId = 'popup-gadget'; // id of main-<div>
		this.pgDiv = poma.dom.$id(this.pgId); // main-<div>
		this.body = poma.dom.$id('pg-body'); // body-<div>
		this.input = poma.dom.$id('query'); // <input>-element to write into
		this.list = 0; // this is just a default-value, which is getting overwritten by the show()-function
		this.page = 0;
	},

	// obj = <a>-element that invokes this function; list = which list should be shown (0 = Fachgebiete, 1 = Krankheiten)
	show: function(obj,list) {
		this.list = list;
		this.page = 0;
		if (poma.dom.$id('pg-headline')) poma.dom.$id('pg-headline').innerHTML = this.data['list-' + list]['head'];
		this.createContent(this.page);
		this.pgDiv.style.top = poma.dom.getPos(obj)[1] - 330 + 'px'; // left-value is set by Partner-Stylesheet
		this.handleSelects(true);

		this.pgDiv.onmouseout = function() {
			pomaImedo.pg.setTimer();
		}
		this.pgDiv.onmouseover = function() {
			pomaImedo.pg.clearTimer();
		}
	},

	hide: function() {
		if (this.pgDiv) this.pgDiv.style.top = '-2000px';
		this.handleSelects();
	},

	write: function(text) {
		if (this.input) this.input.value = text;
		this.hide();
	},

	// Handle all select-fields in IE6
	handleSelects: function(hide) {
		if (poma.useragent.isIe('6')) {
			var vis = (hide) ? 'hidden' : 'visible';
			if (poma.dom.$tag('select')) {
				var el;
				for (var i=0; i<poma.dom.$tag('select').length; i++) {
					el = poma.dom.$tag('select')[i];
					if (el) el.style.visibility = vis;
				}
			}
		}
	},

	left: function() {
		var p;
		if (this.page <= 0) return;
		p = this.page - (this.numberOfLi * 2);
		this.createContent(p);
	},

	right: function() {
		var p = this.page + (this.numberOfLi * 2);
		if (p >= this.data['list-' + this.list]['list'].length) return;
		this.createContent(p);
	},

	// Timer
	setTimer: function() {
		this.timer = window.setTimeout(function() {
			pomaImedo.pg.hide();
			if (this.timer != null) {
				pomaImedo.pg.clearTimer();
			}
		}, 1000);
	},

	clearTimer: function() {
		if (this.timer != null) {
			window.clearTimeout(this.timer);
			this.timer = null;
		}
	},

	// Create Content, which is the child of <div id="body">
	createContent: function(page) {
		this.page = page;
		var list = this.list;
		var data = this.data;
		var cntUl = [];
		var cntLi1 = [];
		var cntLi2 = [];
		var parent = this.body;

		// first, delete all children
		if (parent.firstChild) {
			while(parent.firstChild) parent.removeChild(parent.firstChild);
		}

		// create all <li>-elements of first/left <ul>/column
		for (var i = page; i < page + this.numberOfLi; i++) {
			if (data['list-' + list]['list'][i]) {
				if (data['list-' + list]['list'][i].length <= 2) { // a max length of 2 characters means, that it is a list-head
					cntLi1[i] = {
						'li': {
							'class': 'list-head',
							'#text': data['list-' + list]['list'][i]
						}
					};
				} else {
					cntLi1[i] = {
						'li': {
							'children': [
								{
									'a': {
										'#text': unescape(data['list-' + list]['list'][i]),
										'href': 'javascript:pomaImedo.pg.write(\'' + unescape(data['list-' + list]['list'][i]) + '\');'
									}
								}
							]
						}
					};
				}
			} else {
				break;
			}
		};
		// create all <li>-elements of second/right <ul>/column
		page = page + this.numberOfLi;
		for (var i = page; i < page + this.numberOfLi; i++) {
			if (data['list-' + list]['list'][i]) {
				if (data['list-' + list]['list'][i].length <= 2) { // a max length of 2 characters means, that it is a list-head
					cntLi2[i] = {
						'li': {
							'class': 'list-head',
							'#text': data['list-' + list]['list'][i]
						}
					};
				} else {
					cntLi2[i] = {
						'li': {
							'children': [
								{
									'a': {
										'#text': unescape(data['list-' + list]['list'][i]),
										'href': 'javascript:pomaImedo.pg.write(\'' + unescape(data['list-' + list]['list'][i]) + '\');'
									}
								}
							]
						}
					};
				}
			} else {
				break;
			}
		};

		cntUl[0] = {
			'ul': {
				'children': cntLi1
			}
		};

		cntUl[1] = {
			'ul': {
				'class': 'g-last',
				'children': cntLi2
			}
		};

		poma.dom.appendTags(this.body, cntUl);
	},

	// Complete data-set
	data: {
		// please convert all Umlaute: ü %FC, ä %E4, ö %F6, Ü %DC, Ä %C4, Ö %D6, ß %DF
		'list-0': {
			'head': 'Fachgebiete',
			'list': ['Allgemeinmedizin', 'An%E4sthesiologie', 'Augenheilkunde', 'Gyn%E4kologie', 'Hals-Nasen-Ohren', 'Hautkrankheiten', 'Innere Medizin', 'Kinder-/Jugendmedizin', 'Kinder-/Jugendpsychatrie', 'Mund-Kiefer-Gesicht', 'Neurochirurgie', 'Neurologie', 'Nuklearmedizin', 'Orthop%E4die', 'Psychiatrie', 'Psychosomatische Medizin', 'Psychotherapie', 'Radiologie', 'Strahlentherapie', 'Urologie', 'Zahnmedizin']
		},
		'list-1': {
			'head': 'H&auml;ufige Krankheiten',
			'list': [
					'A', 'ADHS', 'Adipositas', '%C4ngste', 'AIDS', 'Akne', 'Alkoholabh%E4ngigkeit', 'Allergie', 'Altersflecken', 'Alzheimer', 'Angina Pectoris', 'Arthritis', 'Arthrose', 'Aterienverkalkung', 'Asthma',
					'B', 'Bandscheibenvorfall', 'Bindehautentz%FCndung', 'Bipolare Affektive St%F6rung', 'Bl%E4hungen', 'Blasenentz%FCndung', 'Bluthochdruck', 'Bronchitis', 'Brustkrebs',
					'C', 'Chlamydien', 'Chronischer Schmerz', 'Colitis Ulcerosa',
					'D', 'Darmkrebs', 'Darmpolypen', 'Demenz', 'Depression', 'Diabetes', 'Down-Syndrom', 'Dreimonatskolik', 'Dreitagefieber', 'Drogenabh%E4nigkeit', 'Durchfall',
					'E', 'Ekzem','Endometriose', 'Epilepsie', 'Erk%E4ltung', 'Ess-Brech-Sucht', 'Essst%F6rung',
					'F', 'Fadenw%FCrmer', 'Fettleber', 'Fieber', 'FSME', 'Fu%DFpilz',
					'G', 'Gallensteine', 'Geb%E4rmutterzysten', 'Gehirnersch%FCtterung', 'Geschlechtskrankheit', 'Gicht', 'Grauer/Gr%FCner Star', 'Grippe', 'G%FCrtelrose',
					'H', 'H%E4morrhoiden', 'Harninkontinenz', 'Harnwegsinfektion', 'Hausstauballergie', 'Hautkrankheiten', 'Hepatitis', 'Herpes', 'Herz-Kreislauf', 'Heuschnupfen', 'HIV', 'Husten', 'Hyperaktivit%E4t',
					'I', 'Immunkrankheiten', 'Impotenz', 'Infektion', 'Influenza', 'Inkontinenz', 'Ischiasbeschwerden',
					'K', 'Karies', 'Kinderkrankheiten', 'Knochenbruch', 'Knochenschwund', 'Knorpel-/Gelenkverletzung', 'Kopfschmerzen', 'Krampfadern', 'Krebs', 'Kreuzschmerzen', 'Kropf',
					'L', 'Laktoseintoleranz', 'L%E4use', 'Lebensmittelallergie', 'Leberzirrhose', 'Leistenbruch', 'Lippenherpes', 'Lungenentz%FCndung',
					'M', 'Magen-Darm-Grippe', 'Magenschmerzen', 'Magersucht', 'Malignes Melanom', 'Mandelentz%FCndung', 'Masern', 'Menstruationsbeschwerden', 'Mittelohrentz%FCndung', 'Migr%E4ne', 'Morbus Crohn', 'Mumps',
					'N', 'Nackenschmerzen', 'N%E4chtliches Wasserlassen', 'Nagelpilz', 'Nahrungsmittelallergie', 'Nebenh%F6hlenentz%FCndung', 'Nesselsucht', 'Neurodermitis', 'Neurose',
					'O', 'Oberarmbruch', 'Oberschenkelhalsbruch', '%D6dem', 'Ohnmacht', 'Ohrenschmerzen', 'Ohrger%E4usche', 'Osteoporose',
					'P', 'Panikattacken', 'Parkinson', 'Pilzinfektion', 'Polypen', 'Pr%E4menstruelles Syndrom', 'Prellung', 'Prostatavergr%F6%DFerung', 'Pseudo-Krupp',
					'R', 'Raucherhusten', 'Reizblase', 'Reizdarm', 'Rheuma', 'R%F6teln', 'R%FCckenschmerzen',
					'S', 'Salmonellen', 'Scharlach', 'Schilddr%FCsenerkrankungen', 'Schlafst%F6rung', 'Schlaganfall', 'Schleudertrauma', 'Schl%FCsselbeinbruch', 'Schuppenflechte', 'Sehnenverletzung', 'Sodbrennen', 'Sucht',
					'T', 'Tennisarm', 'Tinnitus', 'Tumor',
					'U', '%DCbergewicht', 'Unterleibsschmerzen',
					'V', 'Verstopfung',
					'W', 'Wachstumsst%F6rung', 'Warzen', 'Windpocken', 'Wurzelentz%FCndung',
					'Z', 'Zahnfleischentz%FCndung', 'Zahnschmerzen', 'Zeckenbiss', 'Zerrung', 'Ziegenpeter', 'Z%F6liakie', 'Zuckerkrankheit',
					]
		}
	}
}


// Bookmark-Function
pomaImedo.bookmark = function(url, title) {
	var ua = navigator.userAgent.toLowerCase();
	var bookmarkCode = {
		ie: function() { window.external.AddFavorite(url, title); },
		konq: function() { alert(unescape('Sie m%FCssen STRG + B dr%FCcken, um diese Seite zu Ihren Lesezeichen hinzuzuf%FCgen.')); },
		opera: function() {  },
		safari: function() { (ua.indexOf('mac') != -1) ? alert(unescape('Sie m%FCssen Apfel + D dr%FCcken, um diese Seite zu Ihren Lesezeichen hinzuzuf%FCgen.')) : alert(unescape('Sie m%FCssen STRG + D dr%FCcken, um diese Seite zu Ihren Lesezeichen hinzuzuf%FCgen.')); },
		misc: function() { alert(unescape('Sie k%F6nnen diese Seite leider nur manuell zu Ihren Favoriten hinzuf%FCgen. Bitte lesen Sie dazu die Hilfe Ihres Browsers.')); }
	};
	var browser = (window.external && (!document.createTextNode || (typeof(window.external.AddFavorite) == 'unknown'))) ? 'ie' : (ua.indexOf('konqueror') != -1) ? 'konq' : (window.opera) ? 'opera' : (window.home || (ua.indexOf('webkit') != -1 || !window.print || (ua.indexOf('mac') != -1))) ? 'safari' : 'misc';
	bookmarkCode[browser]();
}
