// JavaScript Document

//var placowki = {}
//   <div id="map_canvas" style="width:100%; height:100%"></div>

/* 
http://maps.google.com/maps?q=05-530+G%C3%B3ra+Kalwaria,+ul.+Pijarska+25&hl=en&ie=UTF8&ll=51.984503,21.215886
&spn=0.0006,0.001367&sll=37.000000,-95.000000&sspn=50.000000,90.000000&radius=15000&filter=0&update=1&t=h&z=20
*/

function gmapInitialize(lat, lng, target, maptype, mapzoom) 
{
	//alert(lat+ " " + lng + " " + target + " " + maptype + " " + mapzoom);
	var mt;
	switch (maptype)
	{
		case "ROADMAP": mt = google.maps.MapTypeId.ROADMAP; break;
		case "SATELLITE": mt = google.maps.MapTypeId.SATELLITE; break;
		case "HYBRID": mt = google.maps.MapTypeId.HYBRID; break;
		case "TERRAIN": mt = google.maps.MapTypeId.TERRAIN; break;
	}
	var myLatlng = new google.maps.LatLng(lat, lng); // 51.984503,21.215886
	var myOptions = {
		zoom: parseInt(mapzoom,10),
		center: myLatlng,
		mapTypeId: mt
	}
	
	var m = document.getElementById(target);
	//alert(target+" "+m);
	var map = new google.maps.Map(m, myOptions);
	var marker = new google.maps.Marker({
      position: myLatlng, 
      map: map, 
      title:"Mazovia Bank",
	  icon: "/layout/img/mapalogo.png"
  });   
}
/* function gmapLoadScript() {	if (document.getElementById('map_canvas')!=null) {
		var script = document.createElement("script");
		script.type = "text/javascript";
		script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=gmapInitialize&region=PL";
		document.body.appendChild(script);	} } */ //window.onload = gmapLoadScript;

var prev_click_id = "";



function zw(id)
{
	if ((prev_click_id != id) && (chars(prev_click_id) == chars(id)))
	{
		var s=chars(id);
		$('[id^='+s+']').hide();
	}
	$('#'+id).toggle(400);
	prev_click_id = id;
	
	if (document.getElementById(id).style.display != 'none') 
	{
		var d = gmap_data[id];
		gmapInitialize(d['lat'], d['lng'], 'gmap_'+id, d['typ'], d['zoom']);
	}
	//google.maps.event.trigger(map, 'resize') .
}

function init_all_maps()
{
	if (typeof gmap_data !== 'undefined') 
	for (var id in gmap_data)
	{
		var d = gmap_data[id];
		gmapInitialize(d['lat'], d['lng'], 'gmap_'+id, d['typ'], d['zoom']);
	}
}

/*** formatting ***********************/
function ucfirst(s){return s.substring(0,1).toUpperCase()+s.substring(1,s.length);}
function ucwords(s){var o='';var a=s.split(" ");for (var i=0;i<a.length;i++) o+=ucfirst(a[i])+' ';return o;}
function groupDigits(sv){o="";sv=String(sv).replace(/\D+/g,'');s=parseInt(sv,10);s=s.toString();i=s.length;while(i>=0){sl=3;si=i-3;if(si<0){si=0;sl=i;}g=s.substr(si,sl);if(g!=""){if(o!="")o=" "+o;o=g+o;}i-=3;}return o;}
function trim(s,c){return ltrim(rtrim(s,c),c);}
function ltrim(s,c){c=c||"\\s";return s.replace(new RegExp("^[" + c + "]+", "g"), "");}
function rtrim(s,c){c=c||"\\s";return s.replace(new RegExp("[" + c + "]+$", "g"), "");}
function alfa(s){return String(s).replace(/[^a-z0-9]/gi,'');}
function numonly(s){return String(s).replace(/[^0-9]/gi,'');}
function chars(s){return String(s).replace(/[^a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\-\ ]/g,'');}
function fp(v){return (Math.round(v*10000)/100)+"%";}

/*** html form valivation *************/
function isNum(s){var isNum_re = /^\s*\d+\s*$/;	return String(s).search (isNum_re) != -1}
function isValidPhone(s) {r=Array();r['num']=String(s).replace(/\D+/g,'');r['result']=(r['num'].length<9)?false:true;return r['result'];}
function isValidEmail(s){var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;	return reg.test(s);}
function isValidPESEL(pesel){p=pesel.toString().split("");var w=Array(1,3,7,9);var wk=0;for (i=0;i<=9;i++) wk=(wk+p[i]*w[i % 4]) % 10;k=(10-wk)%10;return(p[10]==k);}
function isValidNR(kod,typ){if (typ=='regon') switch (kod.length){case 7: typ='regon7'; break;case 9: typ='regon9'; break;case 14: typ='regon14'; break;default: return false;}switch (typ){case 'nip':w=Array(6,5,7,2,3,4,5,6,7);break;case'regon7':w=Array(2,3,4,5,6,7);break;case'regon9':w=Array(8,9,2,3,4,5,6,7);break;case'regon14':w=Array(2,4,8,5,0,9,7,3,6,1,2,4,8);break;default:return false;}p=kod.toString().split("");var wk=0;	for (i=0;i<w.length;i++) wk+=p[i]*w[i];	k=wk%11%10;	return (p[p.length-1]==k);}

// --- kontakt -----------------------------------------------------------------

var blnk=new Object();

function hfv_convert_data(d)
{
	e=d.split(",");
	r=e[0];
	e.shift();
	return {rule:r,msg:e.join(",")};
}

function hfv_get_rules(f)
{
	fields=Array();	
	d=document[f];
	for(i=0; i<d.elements.length; i++)
	{
		id=d.elements[i].id;
		if (id) {
			v=document.getElementById(id).getAttribute("validation");
			o=hfv_convert_data(v);
			fields.push({fieldname:d.elements[i].name,rule:o.rule,msg:o.msg});
		}
	}
	return fields;
}

function hfv_blink_set(target){
	clearInterval(blnk.blnkInt);
	blnk.target=target;
	blnk.blnkCnt=0;
	blnk.blnkState=0;
	hfv_blink_run();
	blnk.blnkInt=setInterval(hfv_blink_run,30);
	return blnk;
}

function hfv_blink_run(){
	if (blnk.blnkState==0){
		blnk.blnkState=1;
		col="#FF0000";
	}
	else 
	{
		blnk.blnkState=0;
		col="#FFFFFF";
	}
	eval("document.forms['kontakt']."+blnk.target+".style.backgroundColor='"+col+"'");
	
	blnk.blnkCnt++;
	if (blnk.blnkCnt>7) {clearInterval(blnk.blnkInt);}
}

function hfv_validate(f,blnk)
{
	var msg="";
	fields=hfv_get_rules(f); 
	for (var i in fields.reverse())
	{
		v=document.forms[f][fields[i].fieldname].value;
		switch (fields[i].rule)
		{
			case 'alfa':			r=(v!="");	break;
			case 'telefon':			r=isValidPhone(v);	break;
			case 'pesel':			r=isValidPESEL(v);	break;
			case 'regon':			r=isValidNR(v,'regon');	break;
			case 'email':			r=isValidEmail(v);	break;
			case 'num':				r=isNum(v);	break;
			case 'kod_pocztowy_1':	r=(isNum(v) && (v.length==2));	break;
			case 'kod_pocztowy_2':	r=(isNum(v) && (v.length==3));	break;
			case 'check':			r=document.forms[f][fields[i].fieldname].checked;	break;
			case 'odpowiedz':		r=isValidEmail(v);	r=isValidPhone(v); if (!r) break;
			default: 				r=true;	break;
		}
		if (!r) 
		{
			msg=fields[i].msg;
			focusTarget=fields[i].fieldname;
		}
	}
		  
	if (msg!="") 
	{
		document.forms[f][focusTarget].focus();
		hfv_blink_set(focusTarget);
		alert(msg);
		return false;
	}
	else
		return true;
}

/*** i/o ******************************************************/

function async_get(url,callback)
{
	var s = new XMLHttpRequest();
	s.open('GET', url, true); 
	s.onreadystatechange = function (aEvt) 
	{		
  		if (s.readyState == 4) 
		{
			if(s.status == 200)
      			callback(true,s.responseText);
     		else
      			callback(false,s.status);
  		}
	}
	s.send(null);
}

function async_post(url,callback,data)
{
	var s = new XMLHttpRequest();
	s.open('POST', url, true); 
	s.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	s.onreadystatechange = function (aEvt) 
	{		
  		if (s.readyState == 4) 
			if (callback) callback(s.status, s.responseText);
	}
	s.send(data);
}

function sync_get(url)
{
	var s = getXMLHttpRequestObject();
	s.open("GET",url,false);
	s.send("");
	return s.responseText;
}

function getXMLHttpRequestObject()
{
	if (typeof(XMLHttpRequest)  === "undefined") 
	{
		XMLHttpRequest = function() 
		{
		    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {}
			try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {}
			try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
			try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
			throw new Error("This browser does not support XMLHttpRequest.");
  		};
	}
	var xmlhttp=new XMLHttpRequest();
	return xmlhttp;
}

/*** script post **************************************************/

function post_to_url(path, params) {
    method = "post"; 
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    document.body.appendChild(form);
    form.submit();
}

/*** query -> arr conv ***********/

//	ł	\u0142
//	ś	\u015b
//	ó	\u00f3
//	ę	\u0119


function query2arr(q)
{
	var qarr = Array();
	if (q.substr(0,1)!="?") {q="?"+q; }
	if (q!="")
	{
		var temp = q.split("?");
		var tarr = temp[1].split("&");
		for (var i=0; i<tarr.length; i++)
		{
			varr = tarr[i].split("=");
			if (varr[1]!=undefined) qarr[varr[0]] = varr[1];
		}
	}
	return qarr;
}

function arr2query(qarr)
{
	var query = "";
	for (i in qarr)
	{
		if (query=="") query="?"; else query += "&";
		query += i + "=" + qarr[i];
	}
	return query;
}

function arr2post(qarr)
{
	var query = "";
	for (i in qarr)
	{
		if (query!="") query += "&";
		query += i + "=" + qarr[i]; // escape()
	}
	return query;
}

/******************** lib *************************/

function gp(name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);if(results==null)return "";else return results[1];}
function setCookie(id,value,expiredays,path){var exdate=new Date();exdate.setDate(exdate.getDate() + expiredays);var valstr = id+"="+escape(value);var exstr = (expiredays==null)?"":"; expires="+exdate.toGMTString();var pathstr = (path==null)?"":"; path="+path;document.cookie=valstr+exstr+pathstr;if (expiredays!=null){var test=getCookie(id);if (test!=value){document.cookie=valstr+pathstr;test=getCookie(id);if (test!=value){}}}}
function getCookie(id){var dc=document.cookie;var na=id+'=';var si=dc.indexOf(na);if(si>-1){si=dc.indexOf(na);}else{return '';}var ei=document.cookie.indexOf(';',si);if (ei==-1) {ei=dc.length;}return unescape(dc.substring(si+na.length,ei));}
function getScrollXY() {var sx=0,sy=0;if(typeof(window.pageYOffset)=="number"){sy=window.pageYOffset;sx=window.pageXOffset;}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){sy=document.body.scrollTop;sx=document.body.scrollLeft;}else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){sy=document.documentElement.scrollTop;sx=document.documentElement.scrollLeft;}return [sx,sy];}
function thisMovie(m){if(navigator.appName.indexOf("Microsoft")!=-1) return window[m];else return document[m];}

