var jtk = new JoookToolkit();
var xmlHttp = null;

function getXmlHttpObject()
{
	var xmlHttp = null;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function getCalendar(year, month)
{
	xmlHttp = getXmlHttpObject();
	if(xmlHttp == null)
		return;
	if(year == null)
		year = 0;
	if(month == null)
		month = 0;

	var url = "/stc/tapahtumaravintolat/jsp/get_calendar.jsp?y=" + year + "&m=" + month;
	xmlHttp.onreadystatechange = updateCalendar;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function getCalendar3(year, month, page)
{
	xmlHttp = getXmlHttpObject();
	if(xmlHttp == null)
		return;
	if(year == null)
		year = 0;
	if(month == null)
		month = 0;

	var url = "/stc/tapahtumaravintolat/jsp/get_calendar.jsp?v3=true&y=" + year + "&m=" + month + "&page=" + page;
	xmlHttp.onreadystatechange = updateCalendar;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function updateCalendar()
{
	if(xmlHttp.readyState == 4)
	{
		document.getElementById("calendarWrapper").innerHTML = xmlHttp.responseText;
	}
}











var mapservice;
var locale = null;

function adminGeocode(ceId){
	var address = document.getElementById("street_address_" + ceId).getElementsByTagName("div")[0].innerHTML + ", " + document.getElementById("post_office_" + ceId).getElementsByTagName("div")[0].innerHTML;
	var geocoder = new GClientGeocoder();
	
	alert(address);
	
	geocoder.getLocations(address, function(response){fillGeocodeSlot(ceId, response);});
}

function fillGeocodeSlot(ceId, response){
	if (!response || response.Status.code != 200){
		alert("Can't geocode!");
	}
	else{
		place = response.Placemark[0];
		document.getElementById("geocode_" + ceId).getElementsByTagName("div")[0].innerHTML = "lat : " + place.Point.coordinates[1] + ", lng : " + place.Point.coordinates[0];
	}
}




function initMap(ceId, useDI){
	if(document.getElementById('geocode_' + ceId).innerHTML != ''){		
		var hotelCoords = eval("({" + document.getElementById('geocode_' + ceId).innerHTML + "})");
		var hotelPoint = new GLatLng(hotelCoords.lat, hotelCoords.lng);
		
		mapservice = new MapService('mapView');
		if(locale == null){
			locale = "fi_FI";
		}
		mapservice.setLocale(locale);
		mapservice.init();
		mapservice.showControls();
		
		mapservice.gotoPos(hotelPoint, true);
	}
}


function mapView(ceId, geoCode, emtId, showDIQuery){
	var position = findPos(document.getElementById("maplink_" + ceId));
	document.getElementById(emtId).style.left = (position[0] - 180) + "px";
	document.getElementById(emtId).style.top = (position[1] - 300) + "px";
	document.getElementById(emtId).style.display = "block";
	
	initMap(ceId, false);
}

function closeMap(emtId){
	document.getElementById(emtId).style.display = "none";
}












// URL encode strings
function urlEncode(clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

// Find element position
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}











function updateRecipient(formEmt){
	try{
		var input = document.createElement("input");
		input.name = "recipient";
		input.type = "hidden";
		input.value = document.getElementById("namepart").innerHTML + "@" + document.getElementById("domainpart").innerHTML;
		formEmt.appendChild(input);
		return true;
	}
	catch(e){
		return false;
	}
}




















function setCookie(name, value, expiredays)
{
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
function getCookie(c_name)
{
	if(document.cookie.length > 0)
	{
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1)
		{
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if(c_end == -1)
				c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "";
}
function deleteCookie(name)
{
	document.cookie = name + "=;expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
function saveFormData(instanceid, formElement)
{
	var elements = document.getElementById(formElement).getElementsByTagName('*');
	var elementsPerCookies = 25;
	var counter = 0;
	var lastCounter = counter;
	var setcookieCounter = 0;
	var cookie = "";
	for(i = 0; i < elements.length; i++)
	{
		var name = null;
		var value = null;
		if(elements[i].tagName.toLowerCase() == "input")
		{
			var type = elements[i].type;
			if(type != null && (type == 'text' || type == 'radio' || type == 'checkbox'))
			{
				name = elements[i].name;
				value = elements[i].value;
			}
		}
		else if(elements[i].tagName.toLowerCase() == "textarea" || elements[i].tagName.toLowerCase() == "select")
		{
			name = elements[i].name;
			value = elements[i].value;
		}

		if(name != null && value != null)
		{
			cookie += name + "=" + value + "-!-";
			++counter;
		}

		if(i == elements.length - 1 || (lastCounter != counter && counter % elementsPerCookies == 0))
		{
			lastCounter = counter;
			setCookie("form_" + instanceid + "_" + ++setcookieCounter, cookie, 365);
			cookie = "";
		}
	}
}
function loadFormData(instanceid, formElement)
{
	var cookies = new Object();
	var ok = false;
	for(i = 1; i < 50; i++)
	{
		var cookie = getCookie("form_" + instanceid + "_" + i);
		if(cookie == null || cookie == '')
			break;
		var split = cookie.split("-!-");
		for(j = 0; j < split.length; j++)
		{
			var pos = split[j].indexOf("=");
			if(pos > 0)
			{
				var n = split[j].substring(0, pos);
				var v = split[j].substring(pos + 1);
				if(v != null && v != '')
				{
					cookies[n] = v;
					ok = true;
				}
			}
		}
	}

	var elements = document.getElementById(formElement).getElementsByTagName('*');
	for(i = 0; i < elements.length; i++)
	{
		var name = elements[i].name;
		if(name == null)
			continue;
		var value = cookies[name];
		if(value == null)
			continue;

		if(elements[i].tagName.toLowerCase() == "input")
		{
			var type = elements[i].type;
			if(type != null && type == 'text')
				elements[i].value = value;
		}
		else if(elements[i].tagName.toLowerCase() == "textarea")
			elements[i].value = value;
	}
	return ok;
}
function deleteFormData(instanceid, formElement)
{
	for(i = 1; i < 50; i++)
		deleteCookie("form_" + instanceid + "_" + i);
}








