var mt = false; 
var mtext = new Array("Térkép nézet","Listás nézet");
var classes = new Array(); 
    classes["blue"] = "canvasBlue"; 
    classes["red"] = "canvasRed"; 
    classes["yellow"] = "canvasYellow"; 
    classes["green"] = "canvasGreen";
var pages = new Array();
    pages["map"] = "blue"; 
    pages["list"] = "blue"; 
    pages["new"] = "red"; 
    pages["mod"] = "yellow"; 
    pages["blog"] = "green";
var cPage = "map";
var photoStates = [];
var keruletek = new Array ("I.","II.","III.","IV.","V.","VI.","VII.","VIII.","IX.","X.","XI.","XII.","XIII.","XIV.","XV.","XVI.","XVII.","XVIII.","XIX.","XX.","XXI.","XXII.","XXIII." );
var kozteruletek = new Array ("út","utca","köz","sétány","tér","körút","sor","fasor","park","liget","dűlőút","körtér" );
var listPager = 0;
var aktivKereses = new Array();
    aktivKereses["kerulet"] = 0;
    aktivKereses["ar"] = 0;
    aktivKereses["kepes"] = 0;
var eMarker = null;
var fToCenter = null;

function shiftCanvas(c,p) {
  $("#canvas").removeClass($("#canvas").attr("class"));
  $("#canvas").addClass(classes[c]);
  if ( c == "blue" ) { 
    mt = !mt;
    jQuery("a#mapView1a").html(mtext[Number(mt)]);
  }
}

function funcLoadPage(cnt) {
  funcReady = false;
  if ( jQuery("div#pageLoginData").html() != "" ) jQuery("div#pageLoginData").show();
  $("#pageLoading").ajaxStart(function(){
    $(this).show();
  });
  $("#pageLoading").ajaxStop(function(){
    $(this).hide();
  });
  if ( cnt == "ads" ) {
    var adpages = Array("map","list");
    var page = adpages[Number(mt)];
    if ( page == "list" ) {
      GUnload();
      cPage = "list";
      listPager = 0;
      lista();
    }
    else {
      $.get("static/html/map.php", { f: "1" },
        function(data){
          jQuery("div#mainContent").html(data);
          MegyeNev='smegye';VarosNev='svaros';
          orszag_csere(1);
          if ( isDefined("__vidDefined") && isDefined("__midDefined") ) {
            megyebeall(__midDefined);
            varosbeall(__vidDefined);
            search();
          }
          else if ( isDefined("__vidDefined") && !isDefined("__midDefined") ) {
            $.get("get_houses.php", { all: "2" },
              function(d){
                load(d[0],d[1]);
                ingA = d[2];
                ingatlanok();
              }, "json" );
          }
          else {
            megyebeall(20);
            varosbeall(392);
            $.get("get_houses.php", { all: "1" },
              function(d){
                load(d[0],d[1]);
                ingA = d[2];
                ingatlanok();
              }, "json" );
          }
          MegyeNev='m';VarosNev='v';
        });
      cPage = "map";
      //showTipsIfNeeded();
    }
    var pageColor = pages[page];
  }
  else if ( cnt == "new" ) {
    var page = cnt;
    var pageColor = pages[page];
    if ( 1 ) { 
      hideAll();
      $.get("new.php", { f: "1" },
        function(data){
          jQuery("div#mainContent").append(data);
          orszag_csere(1);
          megyebeall(20);
          varosbeall(392);
          jQuery("div#pageNew").slideDown("slow",function() { adatHelyreallito(); });
          //adatHelyreallito();
        });
    }
    cPage = "new";
  }
  else if ( cnt == "mod" ) {
    var page = cnt;
    var pageColor = pages[page];
    if ( 1 ) { 
      if ( 1 ) { 
        hideAll();
      }
      $.get("isLog.php", { mod: "question" },
        function(data){
          if ( data[0]!=true ) {
            $.get("static/html/login.php", {}, 
              function(html) {  
                jQuery("div#mainContent").append(html);
                jQuery("div#login").slideDown("slow");
              });
          }
          else {
            startModify();
          }
        }, "json" );
    }
    cPage = "mod";
  }
  else if ( cnt == "blog" ) {
    var page = cnt;
    var pageColor = pages[page];
    if ( 1 ) {
      if ( 1 ) {
        hideAll();
      }
      $.get("static/html/blog.php", {  }, function(html) {
        jQuery("div#mainContent").html(html);
            });
    }
    cPage = "blog";
  }
  shiftCanvas(pageColor);
}

var map = null;
var mgr = null;
var markerSet = [];
var ingA = [];
var hTemplate = "<div class='hTemplate'><div class='cim'>#12#, #1# #3# #2#</div><div class='leiras'><div class='kep'>#13#</div>#5#</div><div class='felado'><b>Feladó:</b> #8# (#14#) <br><b>Telefon:</b> #9#</div><div class='ar'><b>Ár:</b> #4# millió Ft</div><div class='bovebben' onClick='showIt(#0#);'>Bővebben</div></div>";

var lTemplate = "<div class='lTemplate'><div class='ar'><b>Ár:</b> #4# millió Ft</div><div class='cim'>#12#, #1# #3# #2#</div><div class='kep'>#13#</div><div class='leiras'>#5#</div><div class='felado'><b>Feladó:</b> #8# (#14#) <br><b>Telefon:</b> #9#</div><div class='bovebben' onClick='showIt(#0#);'></div></div>";
    
var icon = new GIcon();
icon.image = "static/images/markv2.gif";
icon.iconAnchor = new GPoint(16, 16);
icon.infoWindowAnchor = new GPoint(16, 0);
icon.iconSize = new GSize(18, 17);

var icon2 = new GIcon();
icon2.image = "static/images/markv3.gif";
icon2.iconAnchor = new GPoint(30, 18);
icon2.infoWindowAnchor = new GPoint(16, 0);
icon2.iconSize = new GSize(50, 33);
    
function load(mc,mz) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.enableDoubleClickZoom();
    map.enableScrollWheelZoom();
    map.setCenter(new GLatLng(mc[0], mc[1]), parseInt(mz)); // map center and map zoom
  }
}

function ingatlanok() {      
  for ( var i=0; i < ingA.length; i++ ) {
    var latlng = new GLatLng(ingA[i][10], ingA[i][11]);
    map.addOverlay(createMarker(latlng, i + 1));
  }
  if ( center != null ) {
    centerMapToAd();
  }
}

function createMarker(latlng, number) {
      var marker = new GMarker(latlng, icon);
      marker.value = number;
      GEvent.addListener(marker,"click", function() {
        var myHtml = getHtml(ingA[number-1],hTemplate);
        map.openInfoWindowHtml(latlng, myHtml);
      });
      return marker;
}

function centerAd(id) {
  fToCenter = id;
  for ( var i=0; i < ingA.length; i++ ) {
    if ( ingA[i][0] == id ) {
      center = new GLatLng(ingA[i][10], ingA[i][11]);
    }
  }
  if ( cPage != "map" ) {
    mt = false;
    funcLoadPage("ads");
  }
  else {
    centerMapToAd();
  }
}

function centerMapToAd() {
  if ( eMarker ) {
    map.removeOverlay(eMarker);
    eMarker = null;
  }
  map.setCenter(center, 15);
  eMarker = new GMarker(center, icon2);
  if ( fToCenter != null ) zo = fToCenter;
  for ( var is=0; is < ingA.length; is++ ) {
    if ( ingA[is][0] == zo ) {
      eMarker.value = is;
      GEvent.addListener(eMarker,"click", function() {
        var myHtml = getHtml(ingA[is],hTemplate);
        center = new GLatLng(ingA[is][10], ingA[is][11]);
        map.openInfoWindowHtml(center, myHtml);
      });
      break;
    }
  }
  map.addOverlay(eMarker);
  center = null;
}

function getHtml(i,cTemplate) {
  for ( var a = 0; a < 15; a++ ) {
    if ( a == 13 ) {
      if ( i[a]!=null && i[a].length > 0 ) {
        var img = new Image();
        img.src = "userfoto/"+i[a];
        cTemplate = cTemplate.replace("#"+a+"#","<a href='javascript:showIt("+i[0]+")'><img id='adIm' src='userfoto/"+i[a]+"' style='width:70px;'/></a>");
      }
      else {
        cTemplate = cTemplate.replace("#"+a+"#","<img id='adIm' src='static/images/nopic.jpg' style='width:70px;'/>");
      }
    }
    else if ( a==1 ) {
      cTemplate = cTemplate.replace("#"+a+"#",(i[12]=="Budapest"?keruletek[i[a]-1]+" kerület":""));
    }
    else if ( a==2 ) {
      cTemplate = cTemplate.replace("#"+a+"#",kozteruletek[i[a]-1]);
    }
    else {
      cTemplate = cTemplate.replace("#"+a+"#",i[a]);
    }
  }
  return cTemplate;
}

function showIt(i) {
      id = Math.floor(Math.random()*110);
      eval("page" + id + " = window.open("+i+", '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0,width=725,height=650,left = 200,top = 100');");
    }

function lista() {
  $.get("static/html/kereses.php", { f: "1" },
        function(data){
          var pager = data;
          pager += "<div class='pager'><a href='javascript:Page(\"-\");'>Előző oldal</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='javascript:Page(\"+\");'>Következő oldal</a></div><div class='smallList' id='smallList'></div>";
          jQuery("div#mainContent").html(pager);
          MegyeNev='smegye';VarosNev='svaros';
          orszag_csere(1);
          if ( isDefined("__vidDefined") && isDefined("__midDefined") ) {
            megyebeall(__midDefined);
            varosbeall(__vidDefined);
          }
          else {
            megyebeall(20);
            varosbeall(392);
          }
          search();
        });  
}

function makeList() {
  jQuery("div#smallList").html("");
  var ya = -60; //81
  var xa = true;
  for ( var i=0; i < ingA.length; i++ ) {
    var thisX = Number(xa=!xa)*490+15;
    ya += ( i%2==0 ? 140 : 0 ); //145
    jQuery("div#smallList").append("<div style='position:absolute;top:"+ya+"px;left:"+thisX+"px;'>"+getHtml(ingA[i],lTemplate)+"</div>");
  }
}

function updateForm() {
  $("input,select,text").css("background-color","white");
  var postit = jQuery("form#ad").serialize();
  $.post("new.php", { nv: postit },
    function(data) {
      if ( data[0] === false ) {
        var hibaStr = "";
        for ( var h=0; h<data[1].length; h++ ) {
          jQuery("#"+data[1][h][0]).css("background-color","red");
          jQuery("#"+data[1][h][0]).click(function () {
            $(this).css("background-color","white");
          });
          hibaStr += "- "+data[1][h][1]+"\n";
        }
        alert(hibaStr);
      }
      else {
        alert("Köszönjük hirdetését!\n\nHirdetése rögzítését, E-mailben visszaigazoljuk!.");
        jQuery("div#pageNew").slideUp("slow",function() { jQuery("div#pageNew").remove(); } );
      }
    }, "json");
}

function mpdateForm() {
  $("input,select,text").css("background-color","white");
  var postit = jQuery("form#ad").serialize();
  $.post("mod.php", { nv: postit },
    function(data) {
      if ( data[0] === false ) {
        var hibaStr = "";
        for ( var h=0; h<data[1].length; h++ ) {
          jQuery("#"+data[1][h][0]).css("background-color","red");
          jQuery("#"+data[1][h][0]).click(function () {
            $(this).css("background-color","white");
          });
          hibaStr += "- "+data[1][h][1]+"\n";
        }
        alert(hibaStr);
      }
      else {
        if ( data[1] == "mod" ) alert("A módosításokat elmentettük!");
        if ( data[1] == "del" ) {
          alert("Hirdetését töröltük a rendszerből!");
          document.location.href = "index.php";
        }
        jQuery("div#pageMod").slideUp("slow",function() { jQuery("div#pageMod").remove(); } );
      }
    }, "json");
}

function startLogin() {
  var d = jQuery("form#loginForm").serialize();
  $.post("isLog.php", { mod: "try", nv: d },
        function(data){
          if ( data[0]!=true ) {
            alert("A belépés sikertelen!\nJelszavát elküldtük e-mail címére!");
          }
          else {
            jQuery("div#login").slideUp("slow",function() { jQuery("div#login").remove(); } );
            $.get("getLogin.php", {  },
              function(data){
                jQuery("div#pageLoginData").html(data);
                jQuery("div#pageLoginData").show();
              });
            startModify();
          }
        }, "json" );
}

function startLogout() {
  $.get("isLog.php", { mod: "out" },
        function(data){
          if ( data[0]!=true ) {
            alert("A kilépés sikertelen!");
          }
          else {
            document.location.href = "index.php";
          }
        }, "json" );
}

function startModify() {
  $.get("static/html/modCanvas.php", { }, 
    function(html) {  
    jQuery("div#mainContent").append(html);
    jQuery("div#pageMod").slideDown("slow", 
      function() {
        if ( did != null ) {
          loadMod(did);
          did = null;
        } else {
          $.get("modEntr.php", {}, function(htmle) {
            jQuery("div#adModifier").html(htmle);
          })
        }
      }
    );
  });
}

function loadMod(id) {
  /*$.get("adSelector.php", { selected: id }, function(htmle) {
          jQuery("div#adselector").html(htmle);
        });*/
  $.get("mod.php", { selected: id }, function(html) {
    jQuery("div#adModifier").html(html);
    orszag_csere(1);
    megyebeall(document.getElementById("s_megye_id").value);
    varosbeall(document.getElementById("s_varos_id").value);
  })
}

function Page(p) {
  if ( p=="-" && listPager > 0 ) listPager--;
  if ( p=="+" && ingA.length == 8 ) listPager++;
  search(false);
  /*$.get("get_houses.php", { l: "1", s: listPager },
    function(d){
      ingA = d[2];
      lista(d[3]);
    }, "json" );*/
}

function hideAll() {
  jQuery("div#pageNew").slideUp("slow",function() { jQuery("div#pageNew").remove(); } );
  jQuery("div#pageMod").slideUp("slow",function() { jQuery("div#pageMod").remove(); } );
  jQuery("div#login").slideUp("slow",function() { jQuery("div#login").remove(); } );
}

function modifyAd(id) {
  did = id;
  funcLoadPage("mod");
  /*setTimeout("loadMod("+id+")",1000);*/
}

function search(nullazas) {
  if (nullazas) { listPager = 0; } 
  GUnload();
  var searchstring = $("form#kereses").serialize();
  if ( cPage=="list" ) {
    $.get("get_houses.php", { search: "1", searchstring: searchstring, l: "1", s: listPager },
      function(d) {
        ingA = d[2];
        if ( ingA == null ) alert("Sajnos a választott feltételekkel nincs találat!");
        else {
          makeList();
        }
      }, "json" );
  } else {
    $.get("get_houses.php", { all: "1", search: "1", searchstring: searchstring },
            function(d) {
            ingA = d[2];
            load(d[0],d[1]);
            if ( ingA == null ) {
              alert("Sajnos a választott feltételekkel nincs találat!");
            } else {
              ingatlanok();
            }
          }, "json" );
  }
}

function isDefined(variable) {  
  return eval("(typeof("+variable+") != 'undefined');");
}

function updV(vId) {
  $.get("get_ort.php", { all: vId },
    function(d){
      document.getElementById("i").value=d[0];
    }, "json");
}

/*function deleteAd() {
  $.get("delete.php", { all: 1 },
    function(d){
      if ( d[0]==1 ) {
        alert("Hirdetését töröltük");
        funcLoadPage("mod");
      }
      else alert("Hirdetésének törlése technikai okok miatt nem sikerült.\nKérjük jelentkezzen be újra!\nHa később is ezt a problémát tapasztalja, keressen meg minket!");
    }, "json");
}*/

function chngPsw() {
  var d = jQuery("form#passwordChange").serialize();
  $.post("chngPsw.php", { mod: "try", nv: d },
        function(data){
          if ( data[0]!=true ) {
            alert(data[1]);
          }
          else {
            alert("Jelszavát megváltoztattuk!");
          }
        }, "json" );
}

function chkNumeric(ob){
  var checkOK = "0123456789.,";
  var allNum = "";

  for (i = 0;  i < ob.value.length;  i++){
    ch = ob.value.charAt(i);
    for (j = 0;  j < checkOK.length;  j++) {
      if (ch == checkOK.charAt(j)) {
        allNum += ch;
      }
    }
  }
  
  ob.value = allNum;
  return (false);
}

function showTipsIfNeeded() {
  /*var tips = new Array("Fogja meg és mozgassa a térképet az egérrel!","Kattintson a házikókra, hogy láthassa az ingatlan bemutatását!","Nagyítsa, vagy kicsinyítse a téképet az egér görgőjének tekergetésével!");
  var hely = parseInt(jQuery("body").innerWidth()) - parseInt(jQuery("#mainContent").css("width"));
  if ( hely > 160 ) {
    var tipbox = "<div class='tipbox'></div>"
  }*/
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function adatHelyreallito() {
  cv = readCookie("formDatas");
  if ( cv != null ) {
    resp = confirm("Ön egy korábbi alkalommal félbehagyta egy hirdetés szerkesztését! Kívánja ott folytatni ahol abbahagyta?");
    if ( resp ) {
      dbe = cv.split("&");
      for ( var i = 0; i < dbe.length; i++ ) {
        //alert(i);
        var m = dbe[i].split("=");
        var jSelector = "#"+m[0];
        if ( m[0]!="transactionId" ) {
          if ( m[0] == "m" ) {
            megyebeall( m[1] );
          } else if ( m[0] == "v" ) {
            varosbeall( m[1] );
          } else {
            jQuery(jSelector).val(urldecode(m[1]));
          }
        }
      }
    } else {
      eraseCookie("formDatas");
    }
  } 
  // Elhelyezzük a figyelőt
  jQuery("#ad :input").blur( function() { 
                              var formDatas = jQuery("#ad").serialize();
                              var match = formDatas.match(/&j=[^&]*/);
                              var match1 = formDatas.match(/&jj=[^&]*/);
                              formDatas = formDatas.replace(match,"").replace(match1,"");
                              createCookie("formDatas",formDatas,1);
                            } 
                          );
}

function urldecode( str ) {
    
    var histogram = {}, ret = str.toString(), unicodeStr='', hexEscStr='';
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urlencode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF'; 
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
 
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr]; // Switch order when decoding
        ret = replacer(hexEscStr, unicodeStr, ret); // Custom replace. No regexing
    }
    
    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);
 
    return ret;
}
