/** i-Press Ajax Library: Module Tools
*
* @author Piotr Pielach
* @version 1.0.2 / 2008-11-09 / 2010-04-29
* @copyright Wszelkie prawa zastrzeżone. Rozpowszechnianie bez pozwolenia zabronione.
*/

var DOM = (document.createElement && document.getElementsByTagName);
var OP = (navigator.userAgent.indexOf('Opera') != -1) ? true : false;
var IE = (navigator.userAgent.indexOf('MSIE') != -1 && !OP) ? true : false;
var FX = (navigator.userAgent.indexOf('Firefox') != -1 && !OP) ? true : false;
if (FX) {
	match = navigator.userAgent.match('Firefox\/(.*)');
	if (match && match.length > 1)
		var FXV = parseInt(match[1]);
}


var Tools = function() {
	var name = 'i-Press Ajax Library';
	var toStart = function(){};
};
Tools.prototype.addEvent = function(el,event,myFunc) {
	if (el.addEventListener) {
		el.addEventListener (event,myFunc,false);
	} else if (el.attachEvent) {
		el.attachEvent ('on'+event,myFunc);
	}
}
Tools.prototype.getElementsByClassName = function(className,node) {
	node = node || document;
	var arr = new Array();
	var tags = node.getElementsByTagName("*");
	var exp = new RegExp("^(.* )?"+className+"( .*)?$", "g");
	for (var i = 0; i < tags.length; i++){
		if (exp.test(tags[i].className)){
			arr.push(tags[i]);
		}
	}
	return arr;
}
Tools.prototype.addExternalCSS = function (file,media){
	var link = document.createElement("link");
	link.setAttribute("type","text/css");
	link.setAttribute("rel","stylesheet");
	link.setAttribute("href",file);
	link.setAttribute("media",media);
	document.getElementsByTagName("head")[0].appendChild(link);
};
Tools.prototype.moveNodes = function (sourceNode,targetNode,newWrapperTagName) {
	if (!DOM) return;
	var nodeRecipient = (targetNode) ? targetNode:document.createElement(newWrapperTagName);
	while (sourceNode.childNodes.length)
		nodeRecipient.appendChild(sourceNode.childNodes[0]);	
	if (newWrapperTagName)
		sourceNode.appendChild(nodeRecipient);
};
Tools.prototype.listToTable = function(idName) {
	if (!DOM) return;
	
	var menu = document.getElementById(idName);
	var menu_li = menu.getElementsByTagName('li');
	var table = document.createElement('table');
	var table_tbody = document.createElement('tbody');
	var table_row = document.createElement('tr');
	
	for (var i=0; i<menu_li.length; i++){
		var table_cell = document.createElement('td');
		moveNodes(menu_li[i],table_cell,'');
		table_row.appendChild(table_cell);
	}
	table_tbody.appendChild(table_row);
	table.appendChild(table_tbody);
	table.id = "IE";
	menu.insertBefore(table,menu.getElementsByTagName('ul')[0]);
	menu.removeChild(menu.getElementsByTagName('ul')[0]);
};
Tools.prototype.divToTable = function(idName) {
	if (!DOM) return;
	if (!document.getElementById('home')) return;
	
	var div = document.getElementById(idName);
	var div_rows = div.childNodes;
	var table = document.createElement('table');
	var table_tbody = document.createElement('tbody');
	
	for (var i=0; i<div_rows.length; i++){
		var table_row = document.createElement('tr');
		if (div_rows[i].className == 'row') {
			div_cols = div_rows[i].childNodes;
			for (var j=0;j<div_cols.length;j++) {
				if (div_cols[j].nodeType == 1) {
					var table_cell = document.createElement('td');
					var id = div_cols[j].getAttribute('id');
					this.moveNodes(div_cols[j],table_cell,'');
					table_cell.id = id;
					table_row.appendChild(table_cell);
				}
			}
			table_tbody.appendChild(table_row);
		}
	}
	table.appendChild(table_tbody);
	table.id = idName;
	div.parentNode.insertBefore(table,div);
	div.parentNode.removeChild(div);
};
Tools.prototype.startIfDOMReady = function() { //IE only
	var self = this;
	document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
	var contentloadtag = document.getElementById("contentloadtag");
	contentloadtag.onreadystatechange = function() {
		if (this.readyState=="complete")
			self.toStart();
	}
};
Tools.prototype.footip = function() {
	var sups = document.getElementsByTagName('sup');
	for (var i = 0;i < sups.length;i++) {
		if (sups[i].className == 'footnote') {
			this.addEvent(sups[i],'mouseover',function(e) {
				if (IE) {
					if (window.event.srcElement.attributes[0].name == 'href')
						var ahref = window.event.srcElement.attributes[0].value;
					var dx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
					var dy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
				} else {
					if (e.target.attributes[0].name == 'href')
						var ahref = e.target.attributes[0].value;
					var dx = e.pageX;
					var dy = e.pageY;
				}
				if (ahref) {
					if (ahref.length > 1) ahref = ahref.substring(1,ahref.length);
					var fnt = document.getElementById(ahref);
					var p = document.createElement('p');
					p.id = 'tooltip';
					p.innerHTML = fnt.innerHTML;
					p.style.top = (dy - 10) + "px";
					p.style.left = (dx + 20) + "px";
					p.style.display = "block";
					document.getElementsByTagName('body')[0].appendChild(p);
				}
			});
			this.addEvent(sups[i],'mouseout',function() {
				var tip = document.getElementById('tooltip');
				if (tip) {
					tip.parentNode.removeChild(tip);
				}
			});
		}
	}
}
Tools.prototype.printme = function() {
	var prn = document.getElementById('print');
	if (prn) {
		prn.style.display = 'block';
		prn.style.cursor = 'pointer';
		this.addEvent(prn,'click',function() {
			window.print();
			return false;
		});
	}
}
Tools.prototype.menuTop = function() {
	var uls = document.getElementById("Menu").getElementsByTagName("ul");
	for (var i=0; i<uls.length; i++) {
		if (uls[i].className == 'menu-sub') {
			uls[i].className += ' menu-sub-fx';
		}
	}
}
Tools.prototype.menuHover = function() {//IE
	var mEls = document.getElementById("navigation").getElementsByTagName("li");
	for (var i=0; i<mEls.length; i++) {
		mEls[i].onmouseover=function() {
			this.className+=" menuHover";
		}
		mEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" menuHover\\b"), "");
		}
	}
}
Tools.prototype.gmLoad = function(which,scale,divid) {//Google maps
	if (GBrowserIsCompatible()) {
		if (!divid) divid = "map";
		if (!scale) scale = 17;
		var map = new GMap2(document.getElementById(divid));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());//do wyłączenia
		if (which == 'biuro')
			map.setCenter(new GLatLng(50.06781424108347, 19.96389627456665), scale);
		else
			map.setCenter(new GLatLng(50.069811322341515, 19.982028007507324), scale);
			
        function createMarker(point, msg) {
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(msg);
          });
          return marker;
        }
		function createSpecialMarker(point, msg) {
			var marker = new GMarker(point, {draggable: true});
			var icon = marker.getIcon();
			icon.image = "http://www.google.com/mapfiles/markerS.png";
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(msg);
			});
			return marker;
		}		
		if (which == 'biuro') {
			//Biuro
			var point = new GLatLng(50.06781424108347, 19.96389627456665);
			var msg = "<p>Biuro <strong>Merite Corporate</strong><br/>ul. Zaleskiego 18/2<br/>tel/fax 12 412 03 88</p>";
			map.addOverlay(createMarker(point, msg));
		} else if (which == 'snova') {
			//Stella Nova
			var point = new GLatLng(50.069811322341515, 19.982028007507324);
			var msg = "<p>Inwestycja <strong>Stella Nova</strong></p>";
			map.addOverlay(createMarker(point, msg));
		} else if (which == 'przedszkola') {
			//Przedszkola
			var point = new GLatLng(50.06134037156476, 19.963252544403076);
			var msg = "<p>Przedszkole nr 17</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.07249692119223, 19.967951774597168);
			var msg = "<p>Przedszkole nr 3</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.07146401635589, 19.960527420043945);
			var msg = "<p>Przedszkole nr 15</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.056973459784984, 19.955592155456543);
			var msg = "<p>Przedszkole Integracyjne Montessori</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.057855139613174, 19.957480430603027);
			var msg = "<p>Przedszkole nr 7</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.07242806156195, 20.011510848999023);
			var msg = "<p>Przedszkole Sióstr Franciszkanek od św. Klary</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.06072048716025, 19.964261054992676);
			var msg = "<p>Przedszkole „Pod Gwiasdkami”</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.058819458373655, 19.98138427734375);
			var msg = "<p>Przedszkole nr 79</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.056174423445796, 19.95769500732422);
			var msg = "<p>Przedszkole Samorządowe nr 80</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.06154699791961, 19.976685047149658);
			var msg = "<p>Przedszkole Samorządowe nr 124</p>";
			map.addOverlay(createMarker(point, msg));
		
			var point = new GLatLng(50.07189095305235, 19.963059425354004);
			var msg = "<p>Przedszkole nr 139</p>";
			map.addOverlay(createMarker(point, msg));
			
			//Stella Nova
			var point = new GLatLng(50.069811322341515, 19.982028007507324);
			var msg = "<p>Inwestycja <strong>Stella Nova</strong></p>";
			map.addOverlay(createSpecialMarker(point, msg));
		} else if (which == 'szkoly') {
			//Szkoły
			var point = new GLatLng(50.06335149692603, 19.96541976928711);
			var msg = "<p>Szkoła Podstawowa nr 38</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07386032151005, 19.98415231704712);
			var msg = "<p>Szkoła Podstawowa nr 114</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07468660586678, 19.977564811706543);
			var msg = "<p>Szkoła Podstawowa nr 45</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.062232302292344, 19.978825449943542);
			var msg = "<p>Gimnazjum nr 7</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07969909242274, 19.985675811767578);
			var msg = "<p>Gimnazjum nr 11</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.071932269305144, 19.96567726135254);
			var msg = "<p>Gimnazjum nr 5</p>";
			map.addOverlay(createMarker(point, msg));
			
			//Stella Nova
			var point = new GLatLng(50.069811322341515, 19.982028007507324);
			var msg = "<p>Inwestycja <strong>Stella Nova</strong></p>";
			map.addOverlay(createSpecialMarker(point, msg));
		} else if (which == 'apteki') {
			//Szkoły
			var point = new GLatLng(50.05888833754346, 19.97614860534668);
			var msg = "<p>Apteka Ewa Pyż</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.05913630173595, 19.962158203125);
			var msg = "<p>Apteka Inter-Ap</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07264841203073, 19.957587718963623);
			var msg = "<p>Apteka Kolejowa</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.0666297260147, 19.962737560272217);
			var msg = "<p>Apteka Zofia Fidos</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.05751073535863, 19.964046478271484);
			var msg = "<p>Apteka</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.0696460498075, 19.965505599975586);
			var msg = "<p>Apteka</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07266218390141, 19.969303607940674);
			var msg = "<p>Apteka</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07628404858239, 19.98089075088501);
			var msg = "<p>Apteka</p>";
			map.addOverlay(createMarker(point, msg));
			
			//Stella Nova
			var point = new GLatLng(50.069811322341515, 19.982028007507324);
			var msg = "<p>Inwestycja <strong>Stella Nova</strong></p>";
			map.addOverlay(createSpecialMarker(point, msg));
		} else if (which == 'rozrywka') {
			var point = new GLatLng(50.066726141125585, 19.94593620300293);
			var msg = "<p>Galeria Krakowska</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.053391468872704, 19.95537757873535);
			var msg = "<p>Galeria Kazimierz</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.06446722189228, 19.983959197998047);
			var msg = "<p>CH Plaza</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07669717165747, 20.016403198242188);
			var msg = "<p>CH Carrefour Czyżyny</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.06397134733338, 20.000267028808594);
			var msg = "<p>CH M1</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.05306081007687, 19.955720901489258);
			var msg = "<p>Cinema City</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.065018187612175, 19.98490333557129);
			var msg = "<p>Cinema City</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.05421810589397, 19.95563507080078);
			var msg = "<p>Pure Health and Fitness</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.06673991469702, 19.968552589416504);
			var msg = "<p>Relax Body Club</p>";
			map.addOverlay(createMarker(point, msg));
			
			var point = new GLatLng(50.07671094236536, 19.99262809753418);
			var msg = "<p>Park Lotników Polskich</p>";
			map.addOverlay(createMarker(point, msg));
			
			//Stella Nova
			var point = new GLatLng(50.069811322341515, 19.982028007507324);
			var msg = "<p>Inwestycja <strong>Stella Nova</strong></p>";
			map.addOverlay(createSpecialMarker(point, msg));
		}
	}
}

/* 
 * Jedziemy...
 */
var tools = new Tools();
window.onload = function() {
	if (FX && (FXV < 10)) {
		tools.menuTop();
	}
}
window.onunload = function() {
	GUnload();
}
