/* 

	Author: Greg Gawlik - Web Designers
	        http://www.webdesigners.pl/

	Popups scripts based on geniuine Pornel Idea
	Idea: Kornel Lesinski
	      http://pornel.net/pups/

*/


var popupAddWidth = 0;
var popupAddHeight = 0;

var popupsMaker = 
{
	makePopups: function() {

		var db = document.body;

		if (!db || !db.getElementsByTagName) { return false; }

		var as = db.getElementsByTagName('a');
		for(var i=0;i<as.length;i++)
		{
			if ((as[i].title).match(/\(([0-9]+)x([0-9]+)x([0-1]+)\)/))
			{
				as[i].onclick = this.click;
			}
		}
	},

	click: function()
	{

		try {
			if (this.pp_win && this.pp_win.close && !this.pp_win.closed) {this.pp_win.close(); this.pp_win=false;}
		}
		
	  	catch(e){}
		
		try {
			var title = this.getAttribute('title');

			var titleandsize = popupsMaker.title2size(title);
			var gpwidth = titleandsize[1] + popupAddWidth;
			var gpheight = titleandsize[2] + popupAddHeight;
			var gpscroll = titleandsize[3];

			if(gpscroll == 0)
			   var scrollbars = "no";
			else
			   var scrollbars = "yes";

			var winopts = "dependent=yes,toolbar=no,resizable=yes,scrollbars=" + scrollbars + ",width=" + gpwidth + ",height=" + gpheight;

			window.open(this.href,'_blank',winopts);
			return false;
		}
	  	catch(e){}

	  	return true;

	},

	title2size: function(str)
	{
		if (str)
		{
			var out = str.match(/\(([0-9]+)x([0-9]+)x([0-1]+)\)/);
			if (out) return new Array(str, parseInt(out[1]), parseInt(out[2]), parseInt(out[3]));
		}
		
		return new Array(str, 800, 800, 1);
	},


	initNow: function() {

		this.makePopups();
	}

};

var smartFields =
{	
	makeSmartFields: function () {

		var d = document;
		var a = sfArray;
		
		for (x in a)
		{
			var id = x;
			var value = a[x];
			var f = d.getElementById(id);
			
			if(!isNull(f))
			  {
				f.onblur = this.a_onblur;
				f.onfocus = this.a_onfocus;
			  }
		}
	},
	
	a_onblur: function() {
	
		if(this.value == "") { this.value = sfArray[this.id]; }
	},
	
	a_onfocus: function() {
		
		if(this.value == sfArray[this.id]) { this.value = ""; }
	},
	
	initNow: function() {

		if (!document.getElementById) { return false; }
		this.makeSmartFields();
	}
};

var manSelect = 
{
	makeManSelect: function	() {
		
		var d = document;
		var s = d.getElementById("manufacturers_select");
		var i = d.getElementById("manufacturers_input");
		
		if(isObject(s))
		   s.onchange = this.select_onchange;
		
		if(isObject(i))
		   i.onclick = this.select_onchange; 
	},
	select_onchange: function () {
		
		var d = document;
		var host = 'http://' + d.location.host + '/';
	
		manSelect.showManufacturer('manufacturers', host);
		return false;
	},
	showManufacturer: function(form_name, sbase) {
	
		var d = document;
		var f = d.forms[form_name];
		var sid = f.sid.value;
		
		if(f.manufacturer.options[f.manufacturer.selectedIndex].value != "")
		  {
			var url = sbase + f.manufacturer.options[f.manufacturer.selectedIndex].value;
		
			if(sid != "")
			   url = url + '?' + sid;
	
			d.location = url;
		  }
		return false;
	},
	initNow: function() {

		if (!document.getElementById) { return false; }
		this.makeManSelect();
	}
};

var smartMenu = 
{
	makeSmartMenu: function (list_id, prfx, url) {
		
		var d = document;
		var db = d.body;
		var opened_menu = 'false'; //GetCookie(list_id);
		
		//DOM browser compatibile checking
		if (!db || !db.getElementsByTagName || !d.getElementById) { return false; }
		
		var ul_obj = smartMenu.getMenu(list_id);
		
		if(ul_obj)
		  {
		  	//Getting all ul childs
			var uls_obj = smartMenu.getAllSubMenus(ul_obj);
			
			this.makeMenus(uls_obj, list_id, prfx);
			this.hideAll(uls_obj);
			
			if(isNull(url))
			   var dc = document.location;
			else
			   var dc = url;

			if(opened_menu == 'false' || isNull(opened_menu)) { this.openMenuUrl(list_id, dc, ul_obj); }
			else   					 						  { this.openMenu(list_id, opened_menu); }
		  }
	},
	makeMenus: function(uls_obj, list_id, prfx) {
		
		for(i=0; i<uls_obj.length; i++) {
			
			uls_obj[i].id = prfx + '_' + i;
				
			var parent_li = uls_obj[i].parentNode;
				
			if(isObject(parent_li))
			  {
				var parent_li_a = parent_li.getElementsByTagName('a')[0];
				
				parent_li_a.list_id = list_id;
				parent_li_a.onclick = this.switchMenu;
			  }
		}
	},
	hideAll: function(uls_obj) {
		
		isObject(uls_obj)
			for(i=0; i<uls_obj.length; i++)
				uls_obj[i].style.display = 'none';
	},
	showAll: function(uls_obj) {
		
		for(i=0; i<uls_obj.length; i++)
		   uls_obj[i].style.display = 'block';
	},
	getAllSubMenus: function(ul_obj) {
		
		var uls_obj = ul_obj.getElementsByTagName('ul');
		return uls_obj;
	},
	getCatUrl: function(url) {
		
		//Document location without pages
		var dc_str = new String(url);
		var dc_rgxp = new RegExp("\/page\/[0-9]+", "gi");
		var dc_val = dc_str.replace(dc_rgxp, '');
		return dc_val;
	},
	getMenu: function(ul_id) {
		
		var ul_obj = document.getElementById(ul_id);
		
		if(isObject(ul_obj))
		   return ul_obj;
		else
		   return false;
	},
	switchMenu: function () {
		
		var list_id = this.list_id;
		var parent_li = this.parentNode;
		var relate_ul = parent_li.getElementsByTagName('ul')[0];
		
		if(relate_ul.style.display == 'block')
		   smartMenu.closeTree(list_id, relate_ul);
		else
		   smartMenu.openTree(list_id, relate_ul);
		   
		var dc_val = smartMenu.getCatUrl(document.location);
		var hr_val = this.href;
		
		if(hr_val != dc_val)
		   return true;
		else
		   return false;
		
	},
	openMenu: function (list_id, ul_id) {
		
		var d = document;
		var ul_obj = d.getElementById(ul_id);
		
		this.openTree(list_id, ul_obj);
	},
	openMenuUrl: function (list_id, url, ul_obj) {

		var dc_val = smartMenu.getCatUrl(url);
		var as_obj = ul_obj.getElementsByTagName('a');
		
		for(i=0; i<as_obj.length; i++) {

			if(as_obj[i].href == dc_val) {

				var parent_li = as_obj[i].parentNode;
				var parent_ul = parent_li.parentNode;
				var relate_ul = parent_li.getElementsByTagName('ul')[0];
				
				if(isObject(relate_ul))
				   smartMenu.openTree(list_id, relate_ul);
				else
				   smartMenu.openTree(list_id, parent_ul);
				
				break;
			}
		}
	},
	openTree: function (list_id, ul_obj) {
		
		SetCookie(list_id, ul_obj.id, "", "/");
		
		smartMenu.hideAll(smartMenu.getAllSubMenus(smartMenu.getMenu(list_id)));
		this.openParent(list_id, ul_obj);
	},
	openParent: function (border, ul_obj) {
		
		if(ul_obj.id != border && isObject(ul_obj))
		  {
			ul_obj.style.display = 'block';
			var li_parent = ul_obj.parentNode;
			var ul_parent = li_parent.parentNode;
			
			this.openParent(border, ul_parent);
		  }
		
	},
	closeTree: function (list_id, ul_obj) {
		
		ul_obj.style.display = 'none';
		uls_obj = smartMenu.getAllSubMenus(ul_obj);
		
		var li_parent = ul_obj.parentNode;
		var ul_parent = li_parent.parentNode;
		
		if(ul_parent.id == list_id)
		   SetCookie(list_id, 'false', "", "/");
		else
		   SetCookie(list_id, ul_parent.id, "", "/");
		
		this.hideAll(uls_obj);
	},
	initNow: function(list_id, prfx, url) {
		
		this.makeSmartMenu(list_id, prfx, url);
	}
};


var FaqSwitcher = 
{
	makeFaqSwitcher: function (class_name) {
		
		var d = document;
		var db = d.body;
		
		//DOM browser compatibile checking
		if (!db || !db.getElementsByTagName || !d.getElementById) { return false; }
		
		var lists = getElementsByClassName(class_name);

		if(isObject(lists)) 
		  {
			
			for(var i = 0; i < lists.length; i++) {
				
				questions = lists[i].getElementsByTagName('dt');
				answers = lists[i].getElementsByTagName('dd');
				
				if(isObject(questions))
				  {
					for(var q = 0; q < questions.length; q++) {
						
						questions[q].title = 'Click to show answer';
						questions[q].className = 'clickable';
						questions[q].onmouseover = this.ElementMouseOver;
						questions[q].onmouseout = this.ElementMouseOut;
						questions[q].onclick = this.switchElement;
					}
				  }
				if(isObject(answers))
				  {
					for(var a = 0; a < answers.length; a++) {
						
						answers[a].className = 'hide';
					}
				  }
			}
		  }
	},
	ElementMouseOver: function () {
		
		this.style.textDecoration = 'none';
	},
	ElementMouseOut: function () {
		
		this.style.textDecoration = 'underline';
	},
	switchElement: function () {
		
		var next = this.nextSibling;
		
		while(next.nodeType != 1) next=next.nextSibling;
			next.className=((next.className=="hide") ? "show" : "hide");
			
		if(next.className == "show")
		  {
			this.title = 'Click to hide answer';
			this.className = 'clickable_active';
			this.onmouseover = FaqSwitcher.ElementMouseOut;
			this.onmouseout = FaqSwitcher.ElementMouseOver;
		  }
		else
		  {
			this.title = 'Click to show answer';
			this.className = 'clickable';
			this.onmouseover = FaqSwitcher.ElementMouseOver;
			this.onmouseout = FaqSwitcher.ElementMouseOut;
		  }
	},
	initNow: function (class_name) {
		
		this.makeFaqSwitcher(class_name);
	}
};


var ShortcutsSwitcher = 
{
	makeShortcutsSwitcher: function (id) {
		
		var d = document;
		var db = d.body;
		
		//DOM browser compatibile checking
		if (!db || !db.getElementsByTagName || !d.getElementById) { return false; }
		
		var element = d.getElementById(id);

		if(isObject(element)) 
		  {
		  	var links = element.getElementsByTagName('a');
		  	
		  	if(isObject(links))
		  	  {
		  		for(var i = 0; i < links.length; i++) {
		  			
		  			var link = links[i];
		  			var parent = link.parentNode;
		  			
		  			if(parent.className == 'title')
		  			  {
		  				if(link.parentNode.parentNode.parentNode.className == 'rollup')
		  				  {
		  					link.title = 'Click to rolldown and see details';
		  				  }
		  				else
		  				  {
		  					link.title = 'Click to read more';
		  				  }
		  			  	
		  			  	link.id_element = id;
		  				link.onclick = this.SwitchShortcut;
		  			  }
		  		}
		  	  }
		  }
		
	},
	HideAllShortcuts: function(id) {
		
		var d = document;
		var element = d.getElementById(id);
		
		if(isObject(element)) 
		  {
			var list_elements = element.getElementsByTagName('li');
			
			if(isObject(list_elements))
			  {
				for(var i = 0; i < list_elements.length; i++) {
					
					list_elements[i].className = 'rollup';
					
					var links = list_elements[i].getElementsByTagName('a');
				  	if(isObject(links))
				  	  {
				  		for(var a = 0; a < links.length; a++) {
				  			
				  			var link = links[a];
				  			var parent = link.parentNode;
				  			
				  			if(parent.className == 'title')
				  			  {
				  			  	link.title = 'Click to rolldown and see details';
				  			  }
				  		}
				  	  }
				}
			  }
		  }
	},
	SwitchShortcut: function () {
		
		var parent_li = this.parentNode.parentNode.parentNode;
		
		if(parent_li.className == 'rollup')
		  {
		  	ShortcutsSwitcher.HideAllShortcuts(this.id_element);
			parent_li.className = 'rolldown';
			this.title = 'Click to read more';
			return false;
		  }
		else
		  {
			return true;
		  }
	},
	initNow: function (id) {
		
		this.makeShortcutsSwitcher(id);
	}
};

var films = 
{
	makeMovieSwitcher: function () {
		
		//Setting global variables
		var d = document;
		var db = d.body;
		
		//DOM browser compatibile checking
		if(!db || !db.getElementsByTagName || !d.getElementById) 
		  { return false; }
		
		//Getting movies list
		var list = d.getElementById('films_set_list');
		
		//If movie list existed
		if(isObject(list))
		  {
		  	films.films_list_present = true;
		  	
		  	//Getting movie list elements
			var list_points = list.getElementsByTagName('li');
			
			//Reference list ovject and list elements objects
			films.list = list;
			films.list_points = list_points;
			
			//Making a list elements
			films.makeFilmsList();
			
			//Parsing current document url
			var url_parts = parseURL(String(d.location));
			var anchor = url_parts['anchor'];
			
			//If anchor found
			if(!isNull(anchor))
			  {
				var heading_obj = films.findMovieFromAnchor(anchor);
			  }
			
			//Switching movie from anchor or opening first element of the list	
			if(isObject(heading_obj))
			   films.switchMovie(heading_obj);
			else
			   films.switchMovie(films.list_points[0].firstChild);
		  }
	},
	
	makeFilmsList: function() {
		
		//Getting list elements
		var list_points = films.list_points;
		
		//If list existed
		if(isObject(list_points))
		  {
			for(var i = 0; i < list_points.length; i++) {
				
				var lp = list_points[i];
				
				//Setting class name
				if(lp.className != "rollup")
				   lp.className = "rollup";
				
				//Getting a heading element
				var heading = lp.firstChild;
				heading.onclick = films.switchMovie;
				heading.style.textDecoration = 'underline';
				heading.onmouseover = films.ElementMouseOver;
				heading.onmouseout = films.ElementMouseOut;
			}
		  }
	},
	
	makeFilmsMenu: function() {
		
		//Setting global variables
		var d = document;
		var db = d.body;
		
		//DOM browser compatibile checking
		if(!db || !db.getElementsByTagName || !d.getElementById) 
		  { return false; }
		
		//Getting movies list
		var list = d.getElementById('menu_movies');
		
		//Making switchable submenu films list for gallery
		if(isObject(list) && films.films_list_present == true)
		  {
			var links = list.getElementsByTagName('a');
			
			if(isObject(links))
			  {
				for(i=0; i<links.length; i++) {
										
					links[i].onclick = function() {
						
						var url_parts = parseURL(this.href);
						var anchor = url_parts['anchor'];
						var heading_obj = films.findMovieFromAnchor(anchor);
						
						if(isObject(heading_obj))
						   films.switchMovie(heading_obj);
					}
				}
			  }
		  }
	},
	
	findMovieFromAnchor: function (anchor) {
		
		var d = document;
		var movie_id = 'movie_' + anchor;			
		var movie_el = d.getElementById(movie_id);
						
		if(isObject(movie_el))
		{
		   var lp = movie_el.parentNode;
		   var lpfc = lp.firstChild;
		   var lpfcnn = lpfc.nodeName;
		   
		   if(isObject(lp) && isObject(lpfc) && (lpfcnn == "H5"))
		   	   return lp.firstChild;
		}
		
		return false;

	},
	
	switchMovie: function (headingElement) {
		
		//Getting last showed movie
		if(!isNull(films.actual_movie))
		   films.removeMovie(films.actual_movie);
		
		//Making movie list / hidding opened elements
		films.makeFilmsList();
		
		//Getting a reference to element
		if(this.nodeName)	var that = this;
		else				var that = headingElement;
		
		//Making element life
		that.style.textDecoration = 'none';
		that.onmouseout = function() {};
		that.onmouseover = function() {};
		that.onclick = function() {};
		
		//Getting list point parent element
		var lp = that.parentNode
		
		//Showing element
		lp.className="rolldown";
		
		//Searching in list point elements for movie id
		var lp_el = that;
		while(lp_el) {
			
			if(lp_el.nodeName == "P" && !isNull(lp_el.id))
			  {
				var movie_to_load = lp_el.id;
				break;
			  }
			
			//Reaching next element
			lp_el = lp_el.nextSibling;
		}
		
		//Attaching movie
		films.attachMovie(movies[movie_to_load], movie_to_load);
	},
	
	attachMovie: function(movie_file, object_id) {
		
		var d = document;

		flashmovie_object_id = "flash_" + object_id;
		films.flashmovie_object_id = flashmovie_object_id;
		films.actual_movie = flashmovie_object_id;
		
		var player_config = "{videoFile: '" + movie_file + "', initialScale: 'orig', videoHeight: '250', " +
							" controlBarBackgroundColor: '0x1ec0eb', " + 
							" controlsOverVideo: 'ease', showMenu: false, showStopButton: true, " +
							" autoBuffering: false, autoRewind: true, loop: false, autoPlay: false}";
		
		var sofm = new SWFObject("flash/FlowPlayer.swf", flashmovie_object_id, "320", "250", "9", "#ffffff", true);
		sofm.addParam("allowScriptAccess", 	"always");
		sofm.addParam("allowFullScreen", 	"true");
		sofm.addParam("quality", 			"high");
		sofm.addParam("wmode", 				"transparent");
		sofm.addVariable("config", 			player_config); 
		var result = sofm.write(object_id);
		
		if(result)
		  {
			var m_obj = d.getElementById(object_id);
			m_obj.className = "movie_player";
		  }
	},
	removeMovie: function(flashmovie_object_id) {
		
		var d = document;
		var flashmovie_object = d.getElementById(flashmovie_object_id);
		
		if(isObject(flashmovie_object))
		   flashmovie_object.parentNode.removeChild(flashmovie_object);
	},
	
	ElementMouseOver: function () {
		
		this.style.textDecoration = 'none';
	},
	ElementMouseOut: function () {
		
		this.style.textDecoration = 'underline';
	},
	
	initNow: function() {

		this.makeMovieSwitcher();
		
	},
	
	initFilmsMenu: function() {
		
		this.makeFilmsMenu();
	},
	
	initLoad: function()
	{
		var oldOnload = window.onload;
		var that = this;
		window.onload = function()
		{
			if (oldOnload) try{oldOnload();}catch(e){}
			that.initNow();
		}
	}
};


/* Functions */


function getElementsByClassName(cn){
  var arr = new Array(); 
  var els = document.getElementsByTagName("*");
  var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");
  for (var i = 0; i < els.length; i++ ){
    if (exp.test(els[i].className)){
      arr.push(els[i]);
    }
  }
  return arr;
}

function isNull(a) {
    return typeof a == 'object' && !a;
}
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}
function isFunction(a) {
    return typeof a == 'function';
}
function getCookieVal (offset) {

	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {

	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {

		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;

	}
	return null;
}
function SetCookie (name, value, expires, path, domain, secure) {

    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") + 
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}
function DeleteCookie (name) {

	var exp = new Date();
	exp.setTime (exp.getTime() - 1);  // This cookie is history
	var cval = GetCookie (name);
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

function initNow(url) {

	films.initFilmsMenu();
	smartMenu.initNow('menu_dental_treatment', 'mdt', url);
	smartMenu.initNow('menu_tour_services', 'mts', url);
	smartMenu.initNow('menu_about_us', 'mau', url);
	smartMenu.initNow('menu_news_and_events', 'mnae', url);
	smartMenu.initNow('menu_gallery', 'mg', url);
	smartMenu.initNow('menu_contact_us', 'mcu', url);
	initLytebox();
	popupsMaker.initNow();
	//smartFields.initNow();
	//manSelect.initNow();
}

function parseURL(url_str) {
	
	var urlParts = new Array();

	if (url_str) {
		var pos, lastPos;

		// Parse protocol part
		pos = url_str.indexOf('://');
		if (pos != -1) {
			urlParts['protocol'] = url_str.substring(0, pos);
			lastPos = pos + 3;
		}

		// Find port or path start
		for (var i=lastPos; i<url_str.length; i++) {
			var chr = url_str.charAt(i);

			if (chr == ':')
				break;

			if (chr == '/')
				break;
		}
		pos = i;

		// Get host
		urlParts['host'] = url_str.substring(lastPos, pos);

		// Get port
		urlParts['port'] = "";
		lastPos = pos;
		if (url_str.charAt(pos) == ':') {
			pos = url_str.indexOf('/', lastPos);
			urlParts['port'] = url_str.substring(lastPos+1, pos);
		}

		// Get path
		lastPos = pos;
		pos = url_str.indexOf('?', lastPos);

		if (pos == -1)
			pos = url_str.indexOf('#', lastPos);

		if (pos == -1)
			pos = url_str.length;

		urlParts['path'] = url_str.substring(lastPos, pos);

		// Get query
		lastPos = pos;
		if (url_str.charAt(pos) == '?') {
			pos = url_str.indexOf('#');
			pos = (pos == -1) ? url_str.length : pos;
			urlParts['query'] = url_str.substring(lastPos+1, pos);
		}

		// Get anchor
		lastPos = pos;
		if (url_str.charAt(pos) == '#') {
			pos = url_str.length;
			urlParts['anchor'] = url_str.substring(lastPos+1, pos);
		}
	}

	return urlParts;
};

var sfArray = new Array();
sfArray["search_input"] = "...";
sfArray["search_phase"] = "...";

var movies = new Array();
movies["movie_krakow_and_clinic_in_bbc"] 	= "/movies/krakow_and_clinic_in_bbc.flv";
movies["movie_krakow_promo"] 				= "/movies/krakow_promo.flv";
movies["movie_1_implant"] 					= "/movies/implants_1_implant.flv";
movies["movie_2_implants"] 					= "/movies/implants_2_implants.flv";
movies["movie_8_implants"] 					= "/movies/implants_8_implants.flv";
movies["movie_14_implants"] 				= "/movies/implants_14_implants.flv";
movies["movie_2_implants_1_beam"] 			= "/movies/implants_2_implants_1_beam.flv";
movies["movie_4_implants_3_beams"] 			= "/movies/implants_4_implants_3_beams.flv";
movies["movie_4_implants_locators"] 		= "/movies/implants_4_implants_locators.flv";
