/*******************************************************************************************************
**  Mighty projekt javascript fájl / Poject Mighty's javascript file  *******************  200?.??.??  *
********************************************************************************************************
**                                                                                                     *
**  Írta és rendezte/made by: Bagaméri Béla                                                            *
**                     email: damien at hck.hu                                                         *
**         befejezve/fnished:                                                                          *
**                                                                                                     *
**  Ha valahol használtad ezt a kis scriptet kérlek dobj meg egy mailel hogy büszke lehessek magamra.  *
**  Köszönöm!                                                                                          *
**                                                                                                     *
********************************************************************************************************
**  If you have used this script in a project, please send a message.                                  *
**  Thanks                                                                                             *
********************************************************************************************************
**  Special thanks for:                                                                                *
**      - the guy who write the DOM onLoad function                                                    *
*******************************************************************************************************/


// Create event 'ondomload' which runs once when the dom of the document
//  has loaded. This is before images and other long downloads start.
//  If the browser does not support this, falls back to window.onload.
//  (Firefox and Opera)
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", onDOMContentLoaded, false);
}

//  (Safari)
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			onDOMContentLoaded(); // call the onload handler
		}
	}, 10);
}
//  (Internet Explorer (using conditional comments))
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		onDOMContentLoaded(); // call the onload handler
	}
};
/*@end @*/
window.onload = onDOMContentLoaded;
function onDOMContentLoaded(){
	// quit if this function has already been called
	if (arguments.callee.done) return;
	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;
	ondomload();
}



function mighty()
{}

mighty.prototype.inits  = new Array();

mighty.prototype.init = function (method_name)
{
  var len = this.inits.length;
  this.inits[len]=method_name;
}

mighty.prototype.initAll = function ()
{
  var len = this.inits.length;
  for(var i=0; i<len; i++)
  {
    window[this.inits[i]]();
  }
}

var mighty = new mighty();

//Event.observe(window, 'load', mighty.initAll.bind(mighty));

window.ondomload = mighty.initAll.bind(mighty);

mighty.init("serach_fieldsets");

function serach_fieldsets()
{
  if(!$("reszletes_kereso")) return;

  $("reszletes_kereso").getElementsByClassName("expandable").each(function(element){
    element.observe("click", function(event){
   
      if(Event.element(event).next("div").hasClassName("hide"))
        Event.element(event).next("div").removeClassName("hide");
      else
        Event.element(event).next("div").addClassName("hide");
    });
  });
  
  $("szolgaltatasok").getElementsByClassName("sub_expandable").each(function(element){
    element.observe("click", function(event){
   
      if(Event.element(event).up(0).next("div").hasClassName("hide"))
        Event.element(event).up(0).next("div").removeClassName("hide");
      else
        Event.element(event).up(0).next("div").addClassName("hide");
    });
  });
}

/*******************************************************************************************************
**  File feltöltő osztály / File uploading object  **************************************  2007.12.13  *
********************************************************************************************************
**                                                                                                     *
**  Írta és rendezte/made by: Bagaméri Béla                                                            *
**                     email: damien at hck.hu                                                         *
**                                                                                                     *
**  Ha valahol használtad ezt a kis scriptet kérlek dobj meg egy mailel hogy büszke lehessek magamra.  *
**  Köszönöm!                                                                                          *
**                                                                                                     *
********************************************************************************************************
**  If you have used this script in a project, please send a message.                                  *
**  Thanks                                                                                             *
*******************************************************************************************************/

/*******************************************************************************************************
**  Példa: / Example:  *********************************************************************************
********************************************************************************************************
**                                                                                                     *
**    <script type="text/javascript" languge="javascript">                                             *
**      var fu0 = new file_upload({                                                                    *
**                                  name: "images_estate",                                             *
**                                  limit: 4,                                                          *
**                                  types: new Arra("txt", "doc", "pdf"),                              *
**                                  enableIcons: true,                                                 *
**                                  iconPath: "../mighty/images/icons/"                                *
**                                });                                                                  *
**    </script>                                                                                        *
**                                                                                                     *
**  string  @name:        ez lesz az egyedi azonosítója az egy feltöltőhöz tartozó kieglszítőknek,     * 
**                        nem leheet azonos oldalon több eggyező;                                      *
**  integer @limit:       ez az érték adja meg, hogy hány fájlt lehet feltölteni az adott feltöltővel. *
**  array   @types:       ebben a tömbben lehet felsorolni a feltölthető fájlformátumokat,             *
**                        ez az érték csak opcionális, a js forrásban deafult érték adható meg.        *
**  string  @iconPath:    ez adja meg az iconok elérését, csak opcionális.                             *
**  bool    @enableIcons: megjelenhetnek az ikonok vagy sem.                                           *                                          
**                                                                                                     *
*******************************************************************************************************/

function file_upload(init)
{
  if(
      document.getElementById(init.name + "_upload") != null ||
      document.getElementById(init.name + "_uploadfield") != null ||
      document.getElementById(init.name + "_limit_reached") != null
    ){
      document.write("Hiba [FileUpload]: A \'name\' paraméter értékének egyedinek kell lennie!");
      return false;
    }
  else
    this.name = init.name;
  
  if(init.enableIcons != null)
    this.enableIcons = init.enableIcons;  
    
  if(init.iconPath != null)
    this.iconPath = init.iconPath;
    
  if(init.limit <= 0)
  {
    document.write("Hiba [FileUpload]: A \'limit\' paraméter értékének 0<limit kell lennie!");
    return false;
  }
  else
    this.limit = init.limit;
  
  if(init.types != null)
    this.AllowedTypes = init.types;
  
  document.write("<div id=\""+ this.name +"_upload\" class=\""+ this.name +"_upload\">");
  document.write("<b id=\"" + this.name + "_limit_reached\" style=\"display: none;\">Elérte a maximálisan feltölthető képek számát!</b>");
  document.write("</div>");
  document.write("<div id=\""+ this.name +"_queue\" class=\""+ this.name +"_queue\">");
  document.write("</div>");
  
  this.add_field();
  this.add_fieldevent();
}

file_upload.prototype.limit = 0;

file_upload.prototype.name = "";

file_upload.prototype.id=0;

file_upload.prototype.count=0;

file_upload.prototype.inc_id= function () 
{
  this.id=this.id+1;  
}

file_upload.prototype.add_field = function()
{  
  var Input = document.createElement("input");
                  Input.setAttribute('type', 'file');
                  Element.classNames(Input).set(this.name +"_uploadfield");
                  Input.setAttribute('id', this.name +"_uploadfield_"+ this.id);
                  Input.setAttribute('name', this.name +"[]");
  
  document.getElementById(this.name + "_upload").appendChild(Input);
  
  this.inc_id();
}

file_upload.prototype.add_cancelevent = function ()
{
  if(document.getElementById(this.name+"_upload") != false && document.getElementById(this.name+"_queue"))
  {
    var obj = this;
    $(this.name+"_queue").getElementsByClassName(this.name +"_cancel").each(function(element){
    element.observe("click", function(event){
        var id = Event.element(event).id;
        id = obj.name +"_uploadfield_"+id.substring(id.lastIndexOf("_")+1, id.length);
        
        document.getElementById(id).value="";
        
        Event.element(event).up(0).style.display="none";
        
        obj.count=obj.count-1;
       
        if(obj.count<obj.limit && document.getElementById(obj.name +"_limit_reached") && document.getElementById(obj.name +"_limit_reached").style.display!="none")
        {      
          document.getElementById(obj.name +"_limit_reached").style.display="none";
          obj.add_field();
        }
        
        obj.add_fieldevent();
        obj.add_cancelevent();                
      });
    });
  }

}

file_upload.prototype.add_fieldevent = function ()
{
  if(document.getElementById(this.name+"_upload") != false && document.getElementById(this.name+"_queue"))
  {
  
    var obj = this;
    
    $(obj.name+"_upload").getElementsByClassName(obj.name+"_uploadfield").each(function(element){
    element.observe("change", function(event){
    
      if(Event.element(event).style.display!="none" && Event.element(event).value!= "")
      {
        var string = Event.element(event).value;
        var substring = string.substring(string.indexOf("\\"), string.lastIndexOf("\\"));
        string=string.replace(substring, "\...");
        
        var uploadedType = obj.checkAllowedTypes(obj.getFileType());
        if(uploadedType != false)
        {
          if(Event.element(event).up(0).next(0).innerHTML == "")
          {
            Event.element(event).up(0).next(0).innerHTML="<div id=\"value_"+ obj.name +"_"+ (obj.id-1) +"\"><img src=\"../mighty/images/icons/cancel.png\" id=\""+ obj.name +"_cancel_"+ (obj.id-1) +"\"  class=\""+ obj.name +"_cancel\">" + obj.getFileIcon(uploadedType) + "<span>"+string+"</span><div class=\"clear_floats\"></div></div>";
          }
          else
          {
            Event.element(event).up(0).next(0).innerHTML+="<div id=\"value_"+ obj.name +"_"+ (obj.id-1) +"\"><img src=\"../mighty/images/icons/cancel.png\" id=\""+ obj.name +"_cancel_"+ (obj.id-1) +"\" class=\""+ obj.name +"_cancel\">" + obj.getFileIcon(uploadedType) + "<span>"+string+"</span><div class=\"clear_floats\"></div></div>";
          }
          
          Element.classNames($(obj.name +"_cancel_"+ (obj.id-1))).set(obj.name +"_cancel");
          
          Event.element(event).style.display="none";
          
          obj.count=obj.count+1;
          
          if(obj.limit > obj.count)
          {                  
            obj.add_field();             
            obj.add_fieldevent();          
          }
          else
          {
            if(document.getElementById(obj.name +"_limit_reached") != null)
            {
              document.getElementById(obj.name + "_limit_reached").style.display="inline";
            }
          }
          obj.add_cancelevent();  
         }
         else
         {
          document.getElementById(obj.name + "_uploadfield_" + (obj.id-1)).value="";
         }
        }
      });
    });
  }
}

file_upload.prototype.getFileType = function () 
{
  var string  = document.getElementById(this.name + "_uploadfield_"+ (this.id-1)).value;
  var type    = string.substr(string.lastIndexOf(".")+1, string.length);
  
  if(type.length > 0)
    return type;
  else
    return false;
}

file_upload.prototype.AllowedTypes = new Array("*");

file_upload.prototype.checkAllowedTypes = function(type)
{
  var len  = this.AllowedTypes.length;
  
  if(this.AllowedTypes[0] == "*")
    var isIn = true;
  else
    var isIn = false;

  if(type != false && isIn != true)
  {    
    for(var i=0; i<len; i++)
    {
      if(this.AllowedTypes[i] == type.toLowerCase())
      {
        isIn = true;
      }
    }
  }
  
  if(isIn==false)
  {
    var stringAllowedTypes = "";
    
    for(var i=0; i<len; i++)
    {
      stringAllowedTypes += "*." + this.AllowedTypes[i] + ", ";
    }
    
    stringAllowedTypes=stringAllowedTypes.slice(0, stringAllowedTypes.length-2);
    
    if(type.length > 0)
      var tmp = type.toLowerCase();
    else
      var tmp = "Nincs típus";
    
    alert("Hibás típus! [" + tmp + "]\nEngedélyezett fájltípus(ok): " + stringAllowedTypes);
    
    return false;
  }
  
  return type.toLowerCase();
}

file_upload.prototype.iconPath = "../mighty/images/icons/";

file_upload.prototype.enableIcons = true;

file_upload.prototype.getFileIcon = function(type)
{
  if(this.enableIcons)
  {
    var icon = "file_";
    switch(type)
    {
      case "doc"  :  icon += "document_txt";  break;
      case "pdf"  :  icon += "adobe_pdf";     break;
      case "txt"  :  icon += "document_txt";  break;
      case "jpg"  :  icon += "image_jpg";     break;
      case "jpeg" :  icon += "image_jpg";     break;
      case "mpg"  :  icon += "video_mpg";     break;
      case "mpeg" :  icon += "video_mpg";     break;
      case "avi"  :  icon += "video_avi";     break;
      case "bmp"  :  icon += "image_bmp";     break;
      case "png"  :  icon += "image_png";     break;
      case "tiff" :  icon += "image_tiff";    break;
      case "psd"  :  icon += "adobe_psd";     break;
      case "gif"  :  icon += "document_txt";  break;
      default     :  icon += "document_txt";  break; 
    }
    
    if(icon!="file_")
      return "<img src=\"" + this.iconPath + icon + ".png\">";
    else
      return "";
  }
  else
    return "";  
}

/*
**  //File feltöltő osztály / File uploading object 
*/


/*
**  Szinteken kiadó helyiségek
*/

function estate_floors(init)
{
  if(init.name == null || init.name == "")
  {
    document.write("Hiba [EstateFloors]: A \'name\' paraméter értékének egyedinek kell lennie!");
    return false;
  }
  else
    this.name = init.name;
    
  if(init.floors != null && init.floors.length == (init.floors+0).length)
    this.floors = init.floors;
    
  document.write("<div id=\"" + this.name + "_floors\">\n");
  document.write("<div id=\"" + this.name + "_floors_current\">\n");
  document.write("</div>\n");
  document.write("<div id=\"" + this.name + "_floors_queue\">\n");
  document.write("</div>\n");
  document.write("</div>\n");
  this.addFields();
}

estate_floors.prototype.floors=10;

estate_floors.prototype.name = "";

estate_floors.prototype.id = 0;

estate_floors.prototype.inc_id = function () { this.id++; }

estate_floors.prototype.addFields = function()
{
  this.getValues();
  
  document.getElementById(this.name + "_floors_current").innerHTML += "<div id=\"" + this.name + "_floors_row_" + this.id + "\">";
  
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "<select class=\"" + this.name + "_floor\" name=\"" + this.name + "[floor][" + this.id + "]\" id=\"" + this.name + "_floor_" + this.id + "\">";
   
    document.getElementById(this.name + "_floor_" + this.id).options[0] = new Option('törlés','deleted');
    var i = 1;
    while(i<=this.floors)
    {
      if(i==1)
        document.getElementById(this.name + "_floor_" + this.id).options[i] = new Option('Fsz.',(i-1));
      else
        document.getElementById(this.name + "_floor_" + this.id).options[i] = new Option((i-1),(i-1));      
      i++;
    }
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "</select>";
  
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "<input type=\"text\" class=\"" + this.name + "_area\" name=\"" + this.name + "[area][" + this.id + "]\" id=\"" + this.name + "_area_" + this.id + "\">";
  
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "<input type=\"text\" class=\"" + this.name + "_price\" name=\"" + this.name + "[price][" + this.id + "]\" id=\"" + this.name + "_price_" + this.id + "\">";
    
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "<input type=\"button\" value=\"Felvesz\" class=\"" + this.name + "_button\" id=\"" + this.name + "_button_" + this.id + "\">";
  
  document.getElementById(this.name + "_floors_row_" + this.id).innerHTML += "</div>";
 
  document.getElementById(this.name + "_floor_" + this.id).value="0";
 
  this.restoreValues();
  this.inc_id();
  this.addEvents();
}

estate_floors.prototype.addEvents = function() 
{
  if(document.getElementById(this.name+"_floors") != false && document.getElementById(this.name+"_floors_current"))
  {
    var obj = this;
    var d   = document;
    
    $(this.name+"_floors_current").getElementsByClassName(this.name +"_button").each(function(element){
    element.observe("click", function(event){
    
        if(Event.element(event).up(0).style.display != "none")
        {
          var e = Event.element(event);
          var floor_select  = e.previous(2);
          
          if(floor_select.tagName=="/SELECT")
          {
            floor_select  = e.previous(3);
          }
          
          if(e.previous(1).value == "" || e.previous(0).value == "")
            return false;
          
          if(floor_select.options[floor_select.selectedIndex].value == 0)
            var floor = "Fsz";
          else
            var floor = floor_select.options[floor_select.selectedIndex].value;
          
          d.getElementById(obj.name + "_floors_queue").innerHTML += "<div class=\"list_item\"><img src=\"../mighty/images/icons/cancel.png\" id=\""+ obj.name +"_cancel_"+ (obj.id-1) +"\" class=\""+ obj.name +"_cancel\"><span>Emelet: " + floor + ".</span><span>m<sup>2</sup> : " + e.previous(1).value + "</span><span>Ár: " + e.previous(0).value + "</span><div class=\"clear_floats\"></div></div>";
          e.up(0).style.display = "none";
      
          obj.addFields();
        }        
      });      
    });
    
    $(this.name+"_floors_queue").getElementsByClassName(this.name +"_cancel").each(function(element){
    element.observe("click", function(event){
    
        var e = Event.element(event);
        
        var id = e.id;
        id = id.substring(id.lastIndexOf("_")+1, id.length);
        
        document.getElementById(obj.name + "_floor_" + id).value="deleted";
        document.getElementById(obj.name + "_area_" + id).value="";
        document.getElementById(obj.name + "_price_" + id).value="";
        
        e.up(0).style.display="none";
      });      
    });
  }  
}

estate_floors.prototype.valuesArray = new Array();

estate_floors.prototype.getValues = function ()
{
  var d   = document;
  var id  = 0;
  
  while(d.getElementById(this.name + "_floors_row_" + id) != null && id < this.id)
  {
    var floor_select  = d.getElementById(this.name + "_floor_" + id);
    
    this.valuesArray[id] = new Array(floor_select.options[floor_select.selectedIndex].value, d.getElementById(this.name + "_area_" + id).value, d.getElementById(this.name + "_price_" + id).value);
    id++;
  }    
}

estate_floors.prototype.restoreValues = function ()
{
  var d   = document;
  var id  = 0;
  
  while(d.getElementById(this.name + "_floors_row_" + id) != null && id < this.id)
  {
    d.getElementById(this.name + "_floor_" + id).value  = this.valuesArray[id][0];
    d.getElementById(this.name + "_area_" + id).value   = this.valuesArray[id][1];
    d.getElementById(this.name + "_price_" + id).value  = this.valuesArray[id][2];
    id++;
  }
}
/*
**  //Szinteken kiadó helyiségek
*/

/*
**  POP-UP Window
*/

function popup_window(width, height, file, name, scrollbars, toolbar, resizable)
{
  var win = window.open(file, name, 'toolbar='+toolbar+', scrollbars='+scrollbars+', resizable='+resizable+', width='+width+'px, height='+height);
  win.focus();
}

/*
**  //POP-UP Window
*/
