function confirmDelete(delUrl) {
  if (confirm("Are you sure?")) {
    document.location = delUrl;
  }
}

var BOOKMARKS_RELOAD_CALLS_POOL = [];
var global_msg = '';

/*
  -------------------------------------------------------------------------
		      JavaScript Form Validator (gen_validatorv31.js)
              Version 3.1.1
	Copyright (C) 2003-2008 JavaScript-Coder.com. All rights reserved.
	You can freely use this script in your Web pages.
	You may adapt this script for your own needs, provided these opening credit
    lines are kept intact.
		
	The Form validation script is distributed free from JavaScript-Coder.com
	For updates, please visit:
	http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
	
	Questions & comments please send to form.val at javascript-coder.com
  -------------------------------------------------------------------------  
*/
function Validator(frmname)
{
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  debug("Error: couldnot get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj._sfm_form_name=frmname;
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
    this.disable_validations = false;//new
    document.error_disp_handler = new sfm_ErrorDisplayHandler();
    this.EnableOnPageErrorDisplay=validator_enable_OPED;
	this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB;
    this.show_errors_together=true;
    this.EnableMsgsTogether=sfm_enable_show_msgs_together;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function sfm_enable_show_msgs_together()
{
    this.show_errors_together=true;
    this.formobj.show_errors_together=true;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
   var bRet = true;
    document.error_disp_handler.clear_msgs();
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  bRet = false;
		}
        if(!bRet && !this.show_errors_together)
        {
          break;
        }
	}
    if(!bRet)
    {
      document.error_disp_handler.FinalShowMsg();
      return false;
    }

	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
	var condition = null;
	if(arguments.length > 3)
	{
	 condition = arguments[3]; 
	}
  if(!this.formobj)
	{
		debug("Error: The form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];
    if(itemobj.length && isNaN(itemobj.selectedIndex) )
    //for radio button; don't do for 'select' item
	{
		itemobj = itemobj[0];
	}	
  if(!itemobj)
	{
		debug("Error: Couldnot get the input object named: "+itemname);
		return;
	}
	if(!itemobj.validationset)
	{
		itemobj.validationset = new ValidationSet(itemobj,this.show_errors_together);
	}
	itemobj.validationset.add(descriptor,errstr,condition);
    itemobj.validatorobj=this;
}
function validator_enable_OPED()
{
    document.error_disp_handler.EnableOnPageDisplay(false);
}

function validator_enable_OPED_SB()
{
	document.error_disp_handler.EnableOnPageDisplay(true);
}
function sfm_ErrorDisplayHandler()
{
  this.msgdisplay = new AlertMsgDisplayer();
  this.EnableOnPageDisplay= edh_EnableOnPageDisplay;
  this.ShowMsg=edh_ShowMsg;
  this.FinalShowMsg=edh_FinalShowMsg;
  this.all_msgs=new Array();
  this.clear_msgs=edh_clear_msgs;
}
function edh_clear_msgs()
{
    this.msgdisplay.clearmsg(this.all_msgs);
    this.all_msgs = new Array();
}
function edh_FinalShowMsg()
{
    this.msgdisplay.showmsg(this.all_msgs);
}
function edh_EnableOnPageDisplay(single_box)
{
	if(true == single_box)
	{
		this.msgdisplay = new SingleBoxErrorDisplay();
	}
	else
	{
		this.msgdisplay = new DivMsgDisplayer();		
	}
}
function edh_ShowMsg(msg,input_element)
{
	
   var objmsg = new Array();
   objmsg["input_element"] = input_element;
   objmsg["msg"] =  msg;
   this.all_msgs.push(objmsg);
}
function AlertMsgDisplayer()
{
  this.showmsg = alert_showmsg;
  this.clearmsg=alert_clearmsg;
}
function alert_clearmsg(msgs)
{

}

function sfm_show_error_msg(msg,input_elmt)
{
    document.error_disp_handler.ShowMsg(msg,input_elmt);
}
function SingleBoxErrorDisplay()
{
 this.showmsg=sb_div_showmsg;
 this.clearmsg=sb_div_clearmsg;
}

function sb_div_clearmsg(msgs)
{
	var divname = form_error_div_name(msgs);
	show_div_msg(divname,"");
}

function sb_div_showmsg(msgs)
{
	var whole_msg="<ul>\n";
	for(var m=0;m < msgs.length;m++)
    {
        whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
    }
	whole_msg += "</ul>";
	var divname = form_error_div_name(msgs);
	show_div_msg(divname,whole_msg);
}
function form_error_div_name(msgs)
{
	var input_element= null;

	for(var m in msgs)
	{
	 input_element = msgs[m]["input_element"];
	 if(input_element){break;}
	}

	var divname ="";
	if(input_element)
	{
	 divname = input_element.form._sfm_form_name + "_errorloc";
	}

	return divname;
}
function DivMsgDisplayer()
{
 this.showmsg=div_showmsg;
 this.clearmsg=div_clearmsg;
}
function div_clearmsg(msgs)
{
    for(var m in msgs)
    {
        var divname = element_div_name(msgs[m]["input_element"]);
        show_div_msg(divname,"");
    }
}
function element_div_name(input_element)
{
  var divname = input_element.form._sfm_form_name + "_" + 
                   input_element.name + "_errorloc";

  divname = divname.replace(/[\[\]]/gi,"");

  return divname;
}
function div_showmsg(msgs)
{
    var whole_msg;
    var first_elmnt=null;
    for(var m in msgs)
    {
        if(null == first_elmnt)
        {
            first_elmnt = msgs[m]["input_element"];
        }
        var divname = element_div_name(msgs[m]["input_element"]);
        show_div_msg(divname,msgs[m]["msg"]);
    }
    if(null != first_elmnt)
    {
        first_elmnt.focus();
    }
}
function show_div_msg(divname,msgstring)
{
	if(divname.length<=0) return false;

	if(document.layers)
	{
		divlayer = document.layers[divname];
        if(!divlayer){return;}
		divlayer.document.open();
		divlayer.document.write(msgstring);
		divlayer.document.close();
	}
	else
	if(document.all)
	{
		divlayer = document.all[divname];
        if(!divlayer){return;}
		divlayer.innerHTML=msgstring;
	}
	else
	if(document.getElementById)
	{
		divlayer = document.getElementById(divname);
        if(!divlayer){return;}
		divlayer.innerHTML =msgstring;
	}
	divlayer.style.visibility="visible";	
	return false;
}
function ValidationDesc(inputitem,desc,error,condition)
{
  this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.condition = condition;
	this.validate=vdesc_validate;
}
function vdesc_validate()
{
	if(this.condition != null )
	{
		if(!eval(this.condition))
		{
			return true;
		}
	}
	if(!validateInput(this.desc,this.itemobj,this.error))
	{
		this.itemobj.validatorobj.disable_validations=true;
		this.itemobj.focus();
		return false;
	}
	return true;
}
function ValidationSet(inputitem,msgs_together)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
    this.msgs_together = msgs_together;
}
function add_validationdesc(desc,error,condition)
{
  this.vSet[this.vSet.length]= 
  new ValidationDesc(this.itemobj,desc,error,condition);
}
function vset_validate()
{
    var bRet = true;
    for(var itr=0;itr<this.vSet.length;itr++)
    {
        bRet = bRet && this.vSet[itr].validate();
        if(!bRet && !this.msgs_together)
        {
            break;
        }
    }
    return bRet;
}
function validateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function IsCheckSelected(objValue,chkValue)
{
    var selected=false;
	var objcheck = objValue.form.elements[objValue.name];
    if(objcheck.length)
	{
		var idxchk=-1;
		for(var c=0;c < objcheck.length;c++)
		{
		   if(objcheck[c].value == chkValue)
		   {
		     idxchk=c;
			 break;
		   }//if
		}//for
		if(idxchk>= 0)
		{
		  if(objcheck[idxchk].checked=="1")
		  {
		    selected=true;
		  }
		}//if
	}
	else
	{
		if(objValue.checked == "1")
		{
			selected=true;
		}//if
	}//else	

	return selected;
}
function TestDontSelectChk(objValue,chkValue,strError)
{
	var pass = true;
	pass = IsCheckSelected(objValue,chkValue)?false:true;

	if(pass==false)
	{
     if(!strError || strError.length ==0) 
        { 
        	strError = "Can't Proceed as you selected "+objValue.name;  
        }//if			  
	  sfm_show_error_msg(strError,objValue);
	  
	}
    return pass;
}
function TestShouldSelectChk(objValue,chkValue,strError)
{
	var pass = true;

	pass = IsCheckSelected(objValue,chkValue)?true:false;

	if(pass==false)
	{
     if(!strError || strError.length ==0) 
        { 
        	strError = "You should select "+objValue.name;  
        }//if			  
	  sfm_show_error_msg(strError,objValue);
	  
	}
    return pass;
}
function TestRequiredInput(objValue,strError)
{
 var ret = true;
 var val = objValue.value;
 val = val.replace(/^\s+|\s+$/g,"");//trim
    if(eval(val.length) == 0) 
    { 
       if(!strError || strError.length ==0) 
       { 
         strError = objValue.name + " : Required Field"; 
       }//if 
       sfm_show_error_msg(strError,objValue); 
       ret=false; 
    }//if 
return ret;
}
function TestMaxLen(objValue,strMaxLen,strError)
{
 var ret = true;
    if(eval(objValue.value.length) > eval(strMaxLen)) 
    { 
      if(!strError || strError.length ==0) 
      { 
        strError = objValue.name + " : "+ strMaxLen +" characters maximum "; 
      }//if 
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
    }//if 
return ret;
}
function TestMinLen(objValue,strMinLen,strError)
{
 var ret = true;
    if(eval(objValue.value.length) <  eval(strMinLen)) 
    { 
      if(!strError || strError.length ==0) 
      { 
        strError = objValue.name + " : " + strMinLen + " characters minimum  "; 
      }//if               
      sfm_show_error_msg(strError,objValue); 
      ret = false;   
    }//if 
return ret;
}
function TestInputType(objValue,strRegExp,strError,strDefaultError)
{
   var ret = true;

    var charpos = objValue.value.search(strRegExp); 
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
    }//if 
 return ret;
}
function TestEmail(objValue,strError)
{
var ret = true;
     if(objValue.value.length > 0 && !validateEmail(objValue.value)	 ) 
     { 
       if(!strError || strError.length ==0) 
       { 
          strError = objValue.name+": Enter a valid Email address "; 
       }//if                                               
       sfm_show_error_msg(strError,objValue); 
       ret = false; 
     }//if 
return ret;
}
function TestLessThan(objValue,strLessThan,strError)
{
var ret = true;
	  if(isNaN(objValue.value)) 
	  { 
	    sfm_show_error_msg(objValue.name +": Should be a number ",objValue); 
	    ret = false; 
	  }//if 
	  else
	  if(eval(objValue.value) >=  eval(strLessThan)) 
	  { 
	    if(!strError || strError.length ==0) 
	    { 
	      strError = objValue.name + " : value should be less than "+ strLessThan; 
	    }//if               
	    sfm_show_error_msg(strError,objValue); 
	    ret = false;                 
	   }//if   
return ret;          
}
function TestGreaterThan(objValue,strGreaterThan,strError)
{
var ret = true;
     if(isNaN(objValue.value)) 
     { 
       sfm_show_error_msg(objValue.name+": Should be a number ",objValue); 
       ret = false; 
     }//if 
	 else
     if(eval(objValue.value) <=  eval(strGreaterThan)) 
      { 
        if(!strError || strError.length ==0) 
        { 
          strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
        }//if               
        sfm_show_error_msg(strError,objValue);  
        ret = false;
      }//if  
return ret;           
}
function TestRegExp(objValue,strRegExp,strError)
{
var ret = true;
    if( objValue.value.length > 0 && 
        !objValue.value.match(strRegExp) ) 
    { 
      if(!strError || strError.length ==0) 
      { 
        strError = objValue.name+": Invalid characters found "; 
      }//if                                                               
      sfm_show_error_msg(strError,objValue); 
      ret = false;                   
    }//if 
return ret;
}
function TestDontSelect(objValue,dont_sel_index,strError)
{
var ret = true;
    if(objValue.selectedIndex == null) 
    { 
      sfm_show_error_msg("ERROR: dontselect command for non-select Item"); 
      ret =  false; 
    } 
    if(objValue.selectedIndex == eval(dont_sel_index)) 
    { 
     if(!strError || strError.length ==0) 
      { 
      strError = objValue.name+": Please Select one option "; 
      }//if                                                               
      sfm_show_error_msg(strError,objValue); 
      ret =  false;                                   
     } 
return ret;
}
function TestSelectOneRadio(objValue,strError)
{
	var objradio = objValue.form.elements[objValue.name];
	var one_selected=false;
	for(var r=0;r < objradio.length;r++)
	{
	  if(objradio[r].checked)
	  {
	  	one_selected=true;
		break;
	  }
	}
	if(false == one_selected)
	{
      if(!strError || strError.length ==0) 
       {
	    strError = "Please select one option from "+objValue.name;
	   }	
	  sfm_show_error_msg(strError,objValue);
	}
return one_selected;
}

function validateInput(strValidateStr,objValue,strError) 
{ 
    var ret = true;
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 
    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
		   ret = TestRequiredInput(objValue,strError)
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
			 ret = TestMaxLen(objValue,cmdvalue,strError)
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
			 ret = TestMinLen(objValue,cmdvalue,strError)
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
				ret = TestInputType(objValue,"[^A-Za-z0-9]",strError, 
						objValue.name+": Only alpha-numeric characters allowed ");
				break; 
           }
        case "alnum_s": 
        case "alphanumeric_space": 
           { 
				ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError, 
						objValue.name+": Only alpha-numeric characters and space allowed ");
				break; 
           }		   
        case "num": 
        case "numeric": 
           { 
                ret = TestInputType(objValue,"[^0-9]",strError, 
						objValue.name+": Only digits allowed ");
                break;               
           }
        case "dec": 
        case "decimal": 
           { 
                ret = TestInputType(objValue,"[^0-9\.]",strError, 
						objValue.name+": Only numbers allowed ");
                break;               
           }
        case "alphabetic": 
        case "alpha": 
           { 
                ret = TestInputType(objValue,"[^A-Za-z]",strError, 
						objValue.name+": Only alphabetic characters allowed ");
                break; 
           }
        case "alphabetic_space": 
        case "alpha_s": 
           { 
                ret = TestInputType(objValue,"[^A-Za-z\\s]",strError, 
						objValue.name+": Only alphabetic characters and space allowed ");
                break; 
           }
        case "email": 
          { 
			   ret = TestEmail(objValue,strError);
               break; 
          }
        case "lt": 
        case "lessthan": 
         { 
    	      ret = TestLessThan(objValue,cmdvalue,strError);
              break; 
         }
        case "gt": 
        case "greaterthan": 
         { 
			ret = TestGreaterThan(objValue,cmdvalue,strError);
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
			ret = TestRegExp(objValue,cmdvalue,strError);
           break; 
         }
        case "dontselect": 
         { 
			 ret = TestDontSelect(objValue,cmdvalue,strError)
             break; 
         }
		case "dontselectchk":
		{
			ret = TestDontSelectChk(objValue,cmdvalue,strError)
			break;
		}
		case "shouldselchk":
		{
			ret = TestShouldSelectChk(objValue,cmdvalue,strError)
			break;
		}
		case "selone_radio":
		{
			ret = TestSelectOneRadio(objValue,strError);
		    break;
		}		 
    }//switch 
	return ret;
}
function VWZ_IsListItemSelected(listname,value)
{
 for(var i=0;i < listname.options.length;i++)
 {
  if(listname.options[i].selected == true &&
   listname.options[i].value == value) 
   {
     return true;
   }
 }
 return false;
}

function alert_showmsg(msgs)
{
    var whole_msg="";
    var first_elmnt=null;
    for(var m=0;m < msgs.length;m++)
    {
        if(null == first_elmnt)
        {
            first_elmnt = msgs[m]["input_element"];
        }
        whole_msg += msgs[m]["msg"] + "\n";
    }
	
    debug(global_msg+'\n'+whole_msg);

    if(null != first_elmnt)
    {
        first_elmnt.focus();
    }
}

function resize_window(default_width, section, property_id)
{ 
  try
  {
    var winSize = detect_screen_size();
     
	if (section == 41){  
        var mapHeight = winSize.height - $('#map_container').offset().top - 70;
        if(mapHeight<300)mapHeight=300;
        $('#map_container').height(mapHeight);        
		var gallery_height = $('#map_container').height() + $('#map_container').offset().top - $('#pic_gallery > div > div').offset().top;
		$('#pic_gallery > div > div').height(gallery_height - 8);
	} 
	
	

	
	//if((window_current_width == winSize.width))
    //  return;
    
	var toolbar_height = 192;
    if (section == 560) {toolbar_height = 33;};
    if (section == 41) {toolbar_height = $('#map_container').offset().top + 70};
    window_current_width = winSize.width;      
    var mapContainerDiv = document.getElementById('map_container');
    var map_div = document.getElementById('map');
    if(map_div == null)
        map_div = mapContainerDiv;
    
	
	if(mapContainerDiv != null && (section != 41))
    {
      var areacenter_mid_divHeight = winSize.height - (toolbar_height - 28);
	  if((areacenter_mid_divHeight < 611) )
      {
        mapContainerDiv.style.height = 584 +'px';
        map_div.style.height = 584 +'px';
      }
      else
      {
        mapContainerDiv.style.height = winSize.height - toolbar_height +'px';
        map_div.style.height = winSize.height - toolbar_height +'px';
      }
    }
 
        
      var intro_overlay = document.getElementById('intro_overlay');
      
      if(intro_overlay != null && intro_overlay.style.display!='none')
      {
        resize_intro_overlay(winSize);
        
      }
    
    /*
      var mapContainerSmall = document.getElementById('map_container_small'); 
      if(mapContainerSmall != null)
      {
        
        mapContainerSmall.style.width = winSize.width - 662 +'px';
        map_div.style.width = winSize.width - 662 +'px';
  
        var smallMapHeight = winSize.height - 538;
        if (smallMapHeight<300)
          smallMapHeight=300;
        mapContainerSmall.style.height = smallMapHeight + 'px'; 
        map_div.style.height = smallMapHeight + 'px'; 
        
      }
      */
      if (map!=null)        
        google.maps.event.trigger(map, 'resize');
      
      //send to backend over ajax
      save_window_resize(winSize.width,winSize.height);
              
      if(document.getElementById('bookmark_wrapper'))
        reload_bookmarks(property_id,section);
   
    
  }
  
  catch(err)
  {
    var txt='Error description js.js onResize: ' + err.message + ' ';
    txt+='Click OK to continue.';
    debug(txt);
  }
}



/**
* Bind mouse events to icon classes
*/
function bindMouseEvents()
{
  $('.ui-state-default').unbind("mouseover");
  $('.ui-state-default').unbind("mouseout");
  $('.ui-state-default').mouseover(function(){
    $(this).removeClass("ui-state-default");
    $(this).addClass("ui-state-hover");
  });
  $('.ui-state-default').mouseout(function(){
    $(this).removeClass("ui-state-hover");
    $(this).addClass("ui-state-default");
  });
}

$(document).ready(function(){
    bindMouseEvents();      
    $( ".button, input:submit, input:button").button();
});


/**
* header scripts
*/

function show_intro_overlay()
  {
    try
    {
        var main_wrapper = document.getElementById('accordion');
      var overlay_div = document.getElementById('intro_overlay');
      if(overlay_div != null)
      { 

          resize_intro_overlay();
          main_wrapper.style.display = "";
          overlay_div.style.display = "block";
          $('.overlay_contest_middle').show();
      }
    }
    catch(err)
    {
    var txt="Error description show_intro_overlay: " + err.description + "\n\n";
    txt+="Click OK to continue.\n\n";
    alert(txt);
    }
  }

  function resize_intro_overlay(winSize)
  {
      
      //var main_wrapper = document.getElementById('intro_wrapper_main');
      var overlay_div = document.getElementById('intro_overlay');
    var map = document.getElementById('map_wrapper');
    if(overlay_div == null)
         return;

    
    center_area_size = get_center_area_size(winSize);
     
      //overlay_div.style.top = -center_area_size.height+"px";
    overlay_div.style.height=center_area_size.height+"px";
    //main_wrapper.style.height=center_area_size.height+"px";
    //map.style.top = -2*center_area_size.height+"px";
  }
  
  
  function hide_intro_overlay()
  {
          document.getElementById('intro_overlay').style.display = "none";
          document.getElementById('intro_wrapper_main').style.display = "none";
          document.getElementById('intro_wrapper_other').style.display = "none";
          $('.overlay_contest_middle').hide();
          return true;
  }
  
  //TODO prerobit kde sa pouziva window.inner... nech pouziva tuto funkciu
  function detect_screen_size()
  {
    try
    {
      var myWidth = 0, myHeight = 0;
      if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
      } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
      } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
      }
      return {width:myWidth, height:myHeight};
      //window.location = '{/literal}{$globals.http_home}?{$data.genuine_request_string}{literal}window_width='+myWidth+'&window_height='+myHeight;
    }
    catch(err)
    {
      var txt="Error description module 10 js: " + err.message + "\n\n";
      txt+="Click OK to continue.\n\n";

      return {width:800, height:600};
    }
  }
  
  function get_center_area_size(screen_size)
  {  
     

     if (screen_size==null)
       screen_size = detect_screen_size();
     width = screen_size.width;
     height = screen_size.height;
     
     //some vars here are defined in global space, in headers template
     width = width-total_width_main_map_width_diference; 
     height = height-total_height_main_map_height_diference;  
     if(height<minimal_main_map_height)
       height = minimal_main_map_height;

     return {width:width, height:height};
     
  }
  
  function getInternetExplorerVersion()
    {
        // Returns the version of Internet Explorer or a -1
       // (indicating the use of another browser).
      var rv = -1; // Return value assumes failure.
      if (navigator.appName == 'Microsoft Internet Explorer')
      {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
          rv = parseFloat( RegExp.$1 );
      }
      return rv;
    }  
  
  
  function setMapSearchAutocomplete(elementID,clickElementID,changedListener)
  {
    var ie_ver = getInternetExplorerVersion();
    var defaultBounds = new google.maps.LatLngBounds(
        new google.maps.LatLng(47.724545, 16.864014),
        new google.maps.LatLng(49.553726, 22.510986)
        );
    var input = document.getElementById(elementID);
    initText="napr. Košice Sever";
    input.value=initText;
    
    var options = {
        bounds: defaultBounds,
        types: ['geocode']
   };
    
   autocomplete = new google.maps.places.Autocomplete(input, options);
   
   google.maps.event.addListener(autocomplete, 'place_changed', changedListener);
   
   //make sure to initialize, must be on focus to allow inough time for event functions overrides in header
   if(ie_ver >= 9 || ie_ver == -1)
   {
	   input.addEventListener('focus', function() {if( input.value==initText) input.value=''; overrideGMapAutocomplete(elementID);});
	   if (clickElementID!=null && clickElementID!=undefined)
	     input.addEventListener('keydown', function() {if ((event.keyCode==13 || event.keyCode==9) && input.value!='' && input.value!='Slovensko, ') document.getElementById(clickElementID).onclick();});
   }
       
  }
  
  
  var doneOverrideGMapAutocomplete = {};
  function overrideGMapAutocomplete (elementID){
    if(doneOverrideGMapAutocomplete[elementID] || typeof HTMLInputElement.prototype.addEventListener == 'undefined') {
      return;
    }
    doneOverrideGMapAutocomplete[elementID] = 1;
    
    var searchField = document.getElementById(elementID);
    var originalKeyup = searchField.events.keyup[0].handler;
    searchField.removeEventListener('keyup', originalKeyup);
    searchField.addEventListener('keyup', function() {
      var bckp = this.value;
      this.value = 'Slovensko, '+this.value;
      originalKeyup.apply(null,null);
      this.value = bckp;
    });
    
    var originalBlur = searchField.events.blur[0].handler;
    searchField.removeEventListener('blur', originalBlur);
    searchField.addEventListener('blur', function() {
      var bckp = this.value;
      this.value = 'Slovensko, '+this.value;
      originalBlur.apply(null,null);
      this.value = bckp;
    });
    
    var originalFocus = searchField.events.focus[0].handler;
    searchField.removeEventListener('focus', originalFocus);
    searchField.addEventListener('focus', function() {
      var bckp = this.value;
      this.value = 'Slovensko, '+this.value;
      originalFocus.apply(null,null);
      this.value = bckp;
    });
    
    
  }
  
  
  
  function mapSeachControl(map) {

    // Set CSS for the control border
    var controlUI = document.createElement('DIV');
    controlUI.id="mapSearchControl"
    controlUI.innerHTML="Vyhľadať lokalitu &nbsp;";

    // Set CSS for the control interior
    var controlInput = document.createElement('input');
    controlInput.id="mapSearchInput";
    controlUI.appendChild(controlInput);
    
    controlUI.index = 1;
    map.controls[google.maps.ControlPosition.TOP_RIGHT].push(controlUI); 

    //delay needed here
    setTimeout(function (){
      setMapSearchAutocomplete('mapSearchInput',null,function (){
        var el = document.getElementById('mapSearchInput');
        lookup_address('slovensko ' + el.value, false);
        el.value="";
        
      });
    },2000); 
     
    
    
  }
   
   
   
   
   
 
  
  
