﻿// Copyright(c) 2008-2009 IT One, Ltd, Slovakia
// Do not use, change or distribute.

//cookies

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(name)
{
	if (document.cookie.length > 0)
	{
		startIndex = document.cookie.indexOf(name + "=");
		if (startIndex != -1)
		{ 
			startIndex = startIndex + name.length + 1; 
			endIndex = document.cookie.indexOf(";", startIndex);
			if (endIndex == -1) 
				endIndex = document.cookie.length;
				
			return unescape(document.cookie.substring(startIndex, endIndex));
		} 
	}
	return null;
}

var userName = null;
var userPassword = null;
var userCulture = "invariant";
var cookieExpireDays = "180";
var rememberUser = false;

function initPersonalization()
{
	var tmp = getCookie("user");
	if (tmp != null)
	{
		userName = tmp;
			document.getElementById("User").value = userName;
//		if (document.getElementById("SignIfr").contentDocument != null)
//			document.getElementById("SignIfr").contentDocument.getElementById("User").value = userName;
//		else
//			window.frames["SignIfr"].document.getElementById("User").value = userName;
	}
		
	tmp = getCookie("password");
	if (tmp != null)
	{
		userPassword = tmp;
			document.getElementById("Password").value = userPassword;
//		if (document.getElementById("SignIfr").contentDocument != null)
//			document.getElementById("SignIfr").contentDocument.getElementById("Password").value = userPassword;
//		else
//			window.frames["SignIfr"].document.getElementById("Password").value = userPassword;
	}
		
	tmp = getCookie("culture");
	if (tmp != null)
		userCutlure = tmp;
		
	tmp = getCookie("remember");
	if (tmp != null)
	{
		rememberUser = tmp;
			document.getElementById("remember").checked = rememberUser;
//		if (document.getElementById("SignIfr").contentDocument != null)
//			document.getElementById("SignIfr").contentDocument.getElementById("remember").checked = rememberUser;
//		else
//			window.frames["SignIfr"].document.getElementById("remember").checked = rememberUser;
	}
	
	if (userName != null && userPassword != null)
	{
		handleSignInOK();
	}
	
	tmp = getCookie("welcome");
	if (tmp == null)
	{
		document.getElementById("Welcome").style.visibility = "visible";
	//	setCookie("welcome", "1", 180);
	}
}

//login
var registerVisible = false;
var signInVisible = false;
var helpVisible = false;
var chartVisible = false;
var inviteVisible = false;
var sessionID = "";




function handleRegister(){
	if (signInVisible || helpVisible || filtersVisible || streetViewVisible || chartVisible || inviteVisible)
		return;
	var regDiv = document.getElementById("Register");
	if (registerVisible == false){
		regDiv.style.visibility = "visible";
		registerVisible = true;
		centerElement(document.getElementById('Register'));
        //document.getElementById("t_Email").focus();
	}
}

function handleRegisterOK(){
	
	
//	var email;
//	var password;
//	var repPass;
//	var age;
//	var firstName;
//	var middleName;
//	var secName;
//	var gender;
//	
//	if (document.getElementById("regIfr").contentDocument != null){
//		email = document.getElementById("regIfr").contentDocument.getElementById("email").value;
//		password = document.getElementById("regIfr").contentDocument.getElementById("password").value;
//		repPass = document.getElementById("regIfr").contentDocument.getElementById("repeatPass").value;
//		age = document.getElementById("regIfr").contentDocument.getElementById("age").value;
//		firstName = document.getElementById("regIfr").contentDocument.getElementById("firstName").value;
//		middleName = document.getElementById("regIfr").contentDocument.getElementById("middleName").value;
//		secName = document.getElementById("regIfr").contentDocument.getElementById("secName").value;
//		gender = document.getElementById("regIfr").contentDocument.getElementById("gender").value;
//	
//		document.getElementById("regIfr").contentDocument.getElementById("email").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("password").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("repeatPass").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("age").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("firstName").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("middleName").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("secName").value = "";
//		document.getElementById("regIfr").contentDocument.getElementById("gender").value = "";
//	}
//	else {
//		email = window.frames["regIfr"].document.getElementById("email").value;
//		password = window.frames["regIfr"].document.getElementById("password").value;
//		repPass = window.frames["regIfr"].document.getElementById("repeatPass").value;
//		age = window.frames["regIfr"].document.getElementById("age").value;
//		firstName = window.frames["regIfr"].document.getElementById("firstName").value;
//		middleName = window.frames["regIfr"].document.getElementById("middleName").value;
//		secName = window.frames["regIfr"].document.getElementById("secName").value;
//		gender = window.frames["regIfr"].document.getElementById("gender").value;
//	
//		window.frames["regIfr"].document.getElementById("email").value = "";
//		window.frames["regIfr"].document.getElementById("password").value = "";
//		window.frames["regIfr"].document.getElementById("repeatPass").value = "";
//		window.frames["regIfr"].document.getElementById("age").value = "";
//		window.frames["regIfr"].document.getElementById("firstName").value = "";
//		window.frames["regIfr"].document.getElementById("middleName").value = "";
//		window.frames["regIfr"].document.getElementById("secName").value = "";
//		window.frames["regIfr"].document.getElementById("gender").value = "";
//	
//	}

//	
//	if (password != repPass){
//		alert(getLocaleString("locPassDontMatch"));
//		return;
//	}
//	
//	if (email.length == 0 || password.length == 0 || repPass.length == 0){
//		alert(getLocaleString("locFillAllValues"));
//		return;
//	}	
//	
//	CleverGlobeService.Register(email, password, firstName, middleName, secName, gender, age, culture, function(res){
//		document.getElementById('Register').style.visibility = "hidden";
//		registerVisible = false;
//		
//		if (res == true){
//			showMessage(getLocaleString("locRegSucceeded"), 7000);
//		
//			//show invite
//			//handleInvite();
//		}
//		else
//			showMessage(getLocaleString("locRegFailed"), 12000);
//	});
}

function submitenter(myfield,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13 && signInVisible == true)
       {
            handleSignInOK();
            return false;
       }
    else if (keycode == 13 && registerVisible == true)
    {
        handleRegisterOK();
        return false;
    }
    else
       return true;
}

function handleSignIn(){
	if (sessionID == ""){ //not signed in
		if (registerVisible || helpVisible || filtersVisible || streetViewVisible || chartVisible || inviteVisible)
			return;
		var signDiv = document.getElementById("SignIn");
		if (signInVisible == false){
			signDiv.style.display = "";
			signInVisible = true;
			centerElement(document.getElementById('SignIn'));
			document.getElementById("User").focus();
		}
	}
	else { //sign out
	    CleverGlobeService.LogOut(sessionID, function(res) {
	        //update logged user
	        if (google.loader.ClientLocation.address != null)
	            document.getElementById("loggedUser").innerHTML = "guest from " + google.loader.ClientLocation.address.country.toString();
	        else
	            document.getElementById("loggedUser").innerHTML = "guest";
	        //update button
	        document.getElementById("signInLab").innerHTML = getLocaleString("SignInDyn");
	        //show register label
	        document.getElementById("regLabel").style.visibility = "visible";

	        //disable 'add' tab buttons
	        document.getElementById("addPlcBtn").disabled = true;
	        document.getElementById("addObjBtn").disabled = true;
	        if (activeToolTab == "add")
	            document.getElementById("addRegLabel").style.visibility = "visible";

	        //clear update object section
	        document.getElementById("objInfoCon").innerHTML = getLocaleString("locCannotUpdObj");

	        //clear my objects section
	        document.getElementById("myObjsDiv").innerHTML = "";

	        // hide points -- 19-03-2009 Jano
	        document.getElementById("UserStatsPanel").style.display = "none";
	        // delete login cookie -- 19-03-2009 Jano
	        setCookie("remember", "", -1);
	        setCookie("user", "", -1);
	        setCookie("password", "", -1);
	        showMessage(getLocaleString("locSignedOut"), 3000, "OK");

	        sessionID = "";
	    });
	}
}

var myObjects = new Array();

function handleSignInOK(){
	var user;
	var password;
	var invCred;
	var remember;
	
		user = document.getElementById("User").value;
		password = document.getElementById("Password").value;
		remember = document.getElementById("remember").checked;

	
//	if (document.getElementById("SignIfr").contentDocument != null){
//		user = document.getElementById("SignIfr").contentDocument.getElementById("User").value;
//		password = document.getElementById("SignIfr").contentDocument.getElementById("Password").value;
//		//invCred = document.getElementById("SignIfr").contentDocument.getElementById("invCred")
//		remember = document.getElementById("SignIfr").contentDocument.getElementById("remember").checked;
//	}
//	else {
//		user = window.frames["SignIfr"].document.getElementById("User").value;
//		password = window.frames["SignIfr"].document.getElementById("Password").value;
//		//invCred = window.frames["SignIfr"].document.getElementById("invCred")
//		remember = window.frames["SignIfr"].document.getElementById("remember").checked;	
//	}
//	
	if (user.length == 0 || password.length == 0){
		alert(getLocaleString("locFillAllValues"));
		return;
	}	
	
	CleverGlobeService.LogIn(user, password, function(res){
		if (res == null){
			//invCred.style.display = "";
		}
		else {
			sessionID = res;
			var signDiv = document.getElementById("SignIn");
			signDiv.style.display = "none";
			signInVisible = false;
			//invCred.style.visibility = "hidden";
			
			//update logged user
			document.getElementById("loggedUser").innerHTML = user;
			//update button
			document.getElementById("signInLab").innerHTML = getLocaleString("SignOutDyn");
			//hide register label
			document.getElementById("regLabel").style.visibility = "hidden";
			
			//enable 'add' tab buttons
			document.getElementById("addPlcBtn").disabled = false;
			document.getElementById("addObjBtn").disabled = false;
			document.getElementById("addRegLabel").style.visibility = "hidden";
			document.getElementById("UserStatsPanel").style.display = "";
			
			// 19-03-2009 Jano
			CleverGlobeService.GetUserPoints(sessionID, function(Points){
			    document.getElementById("Points").innerHTML = Points;
			});
			showMessage(getLocaleString("locSignedIn"), 3000, "OK");

			//set update section text - no object selected
			document.getElementById("objInfoCon").innerHTML = getLocaleString("locNoObjSel");
			
			//handle cookies if 'remember me'
			if (remember == true){
				setCookie("user", user, 180);
				setCookie("password", password, 180);
				setCookie("remember", remember, 180);
			}
			
			//get my objects
			getMyObjects();
		}
	});
}

function getMyObjects(){
	//get my objects
    CleverGlobeService.GetMyObjects(sessionID, function(objs) {
        myObjects.length = 0;
        var objCont = document.getElementById("myObjsDiv");
        var table = document.createElement("table");
        objCont.innerHTML = "";
        objCont.appendChild(table);
        var i;
        for (i = 0; i < objs.length; i += 5) {
            var layer = getLayer(Number(objs[i + 4]));
            if (layer == null) //layer is probably currently not visible and thus not loaded
                continue;
                
            var tr = table.insertRow(-1);
            tr.style.cursor = "pointer";
            var cell = tr.insertCell(-1);
            cell.innerHTML = "<img src='" + layer.icon + "' onclick='handleMyObjsClick(" + objs[i] + ")' />";
            cell.style.width = "15px";

            cell = tr.insertCell(-1);
            cell.style.fontSize = "10px";
            cell.style.fontWeight = "bold";
            cell.innerHTML = objs[i + 1];

            cell = tr.insertCell(-1);
            cell.style.width = "40px";
            cell.innerHTML = "<img src='img/delete.png' onclick='handleMyObjsDelete(" + objs[i] + ")' />";

            //add to array
            var item = new Object();
            item.id = Number(objs[i]);
            item.lat = Number(objs[i + 2]);
            item.lng = Number(objs[i + 3]);
            myObjects.push(item);
        }
    });
}

function handleHelp(){
	if (signInVisible || registerVisible || filtersVisible || chartVisible || streetViewVisible || inviteVisible)
		return;
	var regDiv = document.getElementById("HelpFrm");
	if (helpVisible == false){
		regDiv.style.visibility = "visible";
		helpVisible = true;
	}
}

function handleCharts(){
	if (signInVisible || registerVisible || filtersVisible || helpVisible || streetViewVisible || inviteVisible)
		return;
	var Div = document.getElementById("ChartFrm");
	if (chartVisible == false){
		Div.style.visibility = "visible";
		chartVisible = true;
	}
}

function handleInvite(){
	if (signInVisible || registerVisible || filtersVisible || helpVisible || streetViewVisible || chartVisible)
		return;
		
	var Div = document.getElementById("invite");
	if (inviteVisible == false){
		Div.style.visibility = "visible";
		inviteVisible = true;
	}

}

function cookieAddLayer(id){
	var tmp = getCookie("categories");
	if (tmp != null){
		var i;
		var cats = tmp.split("-");
		for (i = 0; i < cats.length; i++){
			if (Number(cats[i]) == id)
				break; //already there
		}
		if (i == cats.length){ //append
			tmp += "-" + id.toString();
			setCookie("categories", tmp, 180);
		}
	}
	else { //new cookie
		setCookie("categories", id.toString(), 180);
	}
}

function cookieRemoveLayer(id){
	var tmp = getCookie("categories");
	if (tmp != null){
		var i;
		var cats = tmp.split("-");
		var found = false;
		for (i = 0; i < cats.length; i++){
			if (Number(cats[i]) == id){
				cats.splice(i, 1);
				found = true;
				break;
			}
		}	
		if (found == true){
			if (cats.length > 0){
			tmp = cats[0].toString();
				for (i = 1; i < cats.length; i++)
					tmp += "-" + cats[i];
					
				setCookie("categories", tmp, 180);
			}
			else {
				setCookie("categories", "", 180); 
			}
		}
	}
}

function restoreLayers(){
	tmp = getCookie("categories");
	if (tmp != null){
		var cats = tmp.split("-"), i;
		for (i = 0; i < cats.length; i++)
			iniLayers.push(cats[i]);
	}
	else { //set category 2 for the first time
		iniLayers.push(2);
		cookieAddLayer(2);
	}
}

function handleExchangePoints() {
    var cartCulture = getCookie("culture");
 	var regDiv = document.getElementById("ExchangePointsPanel");
    if (cartCulture == null)
        cartCulture = culture;
 //   window.open("Cart.aspx?SessionID=" + sessionID + "&lan=" + cartCulture, "newwindow", "menubar=0, location=0, status=0");
	
	    var ifr = document.getElementById("Ifrepp");
	    ifr.src="Cart.aspx?SessionID=" + sessionID + "&lan=" + cartCulture;
		regDiv.style.display = "";
		centerElement(regDiv);
    
}
