var m_form;

var noPicture;

/**
 * Returns true if the passed value is found in the
 * array. Returns false if it is not.
 */
Array.prototype.inArray = function(value) {
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function getElement(formId, objName) {
	var obj = new Object();
	obj = eval("document."+formId+"."+objName);
	if (obj == null) { // div tag for example
		obj = document.all ? document.all(objName) :
		      document.getElementById ? document.getElementById(objName) :
		      document.layers ? document.layers[objName] : null;
	}
	return obj;
} 

function initPicture(imgPath) {
//	alert("1");
	noPicture = new Image();
	noPicture.src = imgPath+'stuff/50x50-no-picture.gif';
	var tmp = noPicture.src;
}


// initialize m_form.
function initForm(formId) {
  m_form = eval("document."+formId);
}

// initForm must be called first
function setPageId(pageId) {
  m_form.pageId.value = pageId;
}

// initForm must be called first
function setObjectId(objectId) {
  m_form.objId.value = objectId;
}

// initForm must be called first
function setStateId(stateId) {
  m_form.stateId.value = stateId;
}

// initForm must be called first
function setEventId(eventId) {
  m_form.eventId.value = eventId;
}

function fulfilOnloadBody(functions){

	var old_window_onload = (window.onload) ? window.onload :  function(){};

	window.onload=function(){
		old_window_onload();
		
		eval(functions.join("\n"));
	}
	
}


   function setSysVars(formId, pageId, objectId, stateId, eventId) {
     var f = eval("document."+formId);
     if (pageId != '')     f.pageId.value = pageId;
     if (objectId != '')   f.objId.value= objectId;
     if (stateId != '')    f.stateId.value = stateId;
     if (eventId != '')    f.eventId.value = eventId;
     return f;
   }

   function myConfirm(objectName) {
     return window.confirm(objectName);
   }

   function deleteConfirm(message) {
     return window.confirm(message);
   }

   function navigate0(formId, pageId, objectId, stateId, eventId) {
     var f = setSysVars(formId, pageId, objectId, stateId, eventId);
     f.submit();
   }

   function navigate1(formId, pageId, objectId, stateId, eventId, name1, value1) {
     var f = setSysVars(formId, pageId, objectId, stateId, eventId);
     var v1 = eval("f."+name1);
     v1.value = value1;
     f.submit();
   }

   function cnavigate1(formId, pageId, objectId, stateId, eventId, objectName, name1, value1) {
     if (myConfirm(objectName)) {
       navigate1(formId, pageId, objectId, stateId, eventId, name1, value1);
     }
   }

   function deleteItem(formId, pageId, objectId, stateId, eventId, message, name1, value1) {
     if (deleteConfirm(message)) {
       navigate1(formId, pageId, objectId, stateId, eventId, name1, value1);
     }
   }

   function navigate2(formId, pageId, objectId, stateId, eventId, name1, value1, name2, value2) {
     var f = setSysVars(formId, pageId, objectId, stateId, eventId);
     var v1 = eval("f."+name1);
     v1.value = value1;
     var v2 = eval("f."+name2);
     v2.value = value2;
     f.submit();
   }
   
   function navigate2forOrder(formId, pageId, objectId, stateId, eventId, name1, value1, name2, value2) {
     var f = setSysVars(formId, pageId, objectId, stateId, eventId);
     var v1 = eval("f."+name1);
     v1.value = value1;
     var v2 = eval("f."+name2);
     if (value2 == '') v2.value = '1';
     if (value2 == '1') v2.value = '2';
     if (value2 == '2') v2.value = '1';
     f.submit();
   }

   
   function navigate3(formId, pageId, objectId, stateId, eventId, name1, value1, name2, value2, name3, value3) {
     var f = setSysVars(formId, pageId, objectId, stateId, eventId);
     var v1 = eval("f."+name1);
     v1.value = value1;
     var v2 = eval("f."+name2);
     v2.value = value2;
     var v3 = eval("f."+name3);
     v3.value = value3;
     f.submit();
   }
	
	function navigate1WithCitypartParams(formId, pageId, objectId, stateId, eventId, name1, value1, hiddenCpName, count) {
       var f = setSysVars(formId, pageId, objectId, stateId, eventId);
       var v1 = eval("f."+name1);
       v1.value = value1;
       var v;
       for (i = 0; i < count; i++) {
          var paramName = hiddenCpName + (i + 1);
          v = eval("f." + paramName);
          var paramVal = eval("document."+formId+"."+paramName);
          v.value = paramVal.value;
       }
       f.submit();
   }
   
   function navigate2WithCitypartParams(formId, pageId, objectId, stateId, eventId, name1, value1, name2, value2, hiddenCpName, count) {
       var f = setSysVars(formId, pageId, objectId, stateId, eventId);
       var v1 = eval("f."+name1);
       v1.value = value1;
       var v2 = eval("f."+name2);
       v2.value = value2;
       var v;
       for (i = 0; i < count; i++) {
          var paramName = hiddenCpName + (i + 1);
          v = eval("f." + paramName);
          var paramVal = eval("document."+formId+"."+paramName);
          v.value = paramVal.value;
       }
       f.submit();
   }
   
     function eventFire(eventId, formId) {
       var form = eval("document."+formId);
       form.eventId.value=eventId;
       form.submit();
     }
     function eventFire1(formId, refId, refIdValue) {
       var form = eval("document."+formId);
       var form1 = eval("document."+formId + "." + refId);
       form1.value=refIdValue;
       form.submit();
     }
     function eventFire2(eventId, formId, refId, refIdValue) {
       var form = eval("document."+formId);
       var form1 = eval("document."+formId + "." + refId);
       form.eventId.value=eventId;
       form1.value=refIdValue;
       form.submit();
     }
     function redirect(pageId, formId) {
       var form = eval("document."+formId);
       form.pageId.value=pageId;
       form.objId.value='';
       form.stateId.value='';
       form.eventId.value='';
       form.submit();
     }
function redirectSetEventItem(formId, pageId, eventId, refId, refIdValue) {
       var form1 = eval("document."+formId + "." + refId);
       var form = eval("document."+formId);
       form.pageId.value=pageId;
       form.stateId.value='';
       form1.value=refIdValue;
       form.objId.value='';
       form.eventId.value=eventId;
       form.submit();
     }
function redirectSetStateItem(formId, pageId, stateId, refId, refIdValue) {
       var form1 = eval("document."+formId + "." + refId);
       var form = eval("document."+formId);
       form.pageId.value=pageId;
       form.stateId.value='';
       form1.value=refIdValue;
       form.objId.value='';
       form.stateId.value=stateId;
       form.submit();
     }
     function refresh(formId) {
       var form = eval("document."+formId);
       form.submit();
     }
     function changeState(stateId, formId) {
       var form = eval("document."+formId);
       form.stateId.value=stateId;
       form.eventId.value='';
       form.submit();
     }
     function setParameter(formId, name1, value1, stateId) {

       var form = eval("document."+formId);
       var v1 = eval('form.'+name1);
       v1.value = value1;
       form.eventId.value='';
       form.stateId.value = stateId;
       form.submit();
     }

     function openPopUpWin(page, formId, refId, refIdValue) {
       OpenWin = this.open(
                  'http://ahti:8080/city_broker/city24broker?pageId=' + page + '&' + refId+ '=' + refIdValue +'&lang=EST', 
                  'CtrlWindow', 
                  'toolbar=yes, menubar=yes, location=yes,scrollbars=yes,resizable=yes, width=600, height=400');
       var form = eval("document."+formId);
       form.submit();
     }
     function openSmallPopUpWin(page, formId, refId, refIdValue) {
       OpenWin = this.open(
                  '//city_broker/city24broker?pageId=' + page + '&' + refId+ '=' + refIdValue +'&lang=EST', 
                  'CtrlWindow', 
                  'toolbar=yes, menubar=yes, location=yes,scrollbars=yes,resizable=yes, width=300, height=400');
       var form = eval("document."+formId);
       form.submit();
     }
     function openPopUpWinSetState(page, formId, stateId, refId, refIdValue) {
       OpenWin = this.open(
                  '//city_broker/city24broker?pageId=' + page + '&refId=' + refIdValue +'&stateId=' + stateId +'&lang=EST', 
                  'CtrlWindow', 
                  'toolbar=yes, menubar=yes, location=yes,scrollbars=yes,resizable=yes, width=600, height=400');
       var form = eval("document."+formId);
       form.submit();
     }

     /** initForm must be called before!!! */
     function openPopUpPage(page, width, height, paramName1, paramValue1) {
       OpenWin = this.open(
                  "/city_broker/city24broker?pageId="+page+
                  "&amp;sessionId="+m_form.sessionId.value+
                  "&amp;"+paramName1+"="+paramValue1, 
                  "CtrlWindow", 
                  "toolbar=yes,menubar=yes, location=yes,scrollbars=yes,resizable=no, width=250 , height=350")
     }

function searchWish(wishId, formId) {
  var f = document.forms[formId];
  f.pageId.value='4';
  f.objId.value='SearchObject';
  f.eventId.value='SearchWishNewEvent';
  f.search_wish_id.value=wishId;
  f.stateId.value='ShowResults';
  f. submit();
}

/** Cleans the image.
 * @param formId form identifier
 * @param imgName name of the image on document
 * @param path where the images reside
 */
function cleanImg(formId, imgName, path) {
  var tmpImg = new Image();
  //tmpImg.src = path+'stuff/100x100-no-picture.gif';
  tmpImg.src = path+'newDesign/pixel_red.gif';
  for (i = 0; i < 20; i++) {
    document.images[imgName+'thumb'].src=tmpImg.src;
  }
  var imgIdObj = eval('document.'+formId+'.'+imgName+'_id');
  var oldImgId = imgIdObj.value;
  
  imgIdObj.value='';
  eval('document.'+formId+'.'+imgName+'_img').value='';
  
  // Attempt to increase file upload limit
  if (oldImgId != '' && typeof swfu != undefined) {
	  swfu.customSettings.file_upload_limit++;
  }
  
  return true;
}

function openPopUp(url, lang, page, refId, refIdValue) {	
	OpenWin = this.open(url + '?pageId=' + page + '&lang=' + lang + '&' + refId + '=' + refIdValue, 'CtrlWindow', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,location=no,scrollbars=yes,resizable=no,copyhistory=no,width=600,height=400');  
}

function openPopUpSession(url, lang, page, refId, refIdValue, sessionIdValue) {	
	OpenWin = this.open(url + '?pageId=' + page + '&lang=' + lang + '&' + refId + '=' + refIdValue + '&sessionId=' + sessionIdValue, 'CtrlWindow', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,location=no,scrollbars=yes,resizable=no,copyhistory=no,width=600,height=400');  
}

function openSmallPopUp(url, lang, page, refId, refIdValue) {
  OpenWin = this.open(url + '&pageId=' + page + '&lang=' + lang + '&' + refId + '=' + refIdValue, 'CtrlWindow', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,location=no,scrollbars=yes,resizable=yes,copyhistory=no,width=300,height=400');
}

function selectAllSheckboxesExceptOne(formObj, notSelected) {
   for (var i=0;i < formObj.length;i++) 
   {
      fldObj = formObj.elements[i];
      if (fldObj.type == 'checkbox' && fldObj.name!=notSelected)
      { 
        fldObj.checked = true; 
       }
   }
}

function setLang(langId, formId) {
       var form = eval("document."+formId);
       form.lang.value=langId;
       form.objId.value='';
       form.stateId.value='';
       form.eventId.value='';
       form.submit();
   }

function printall(formId, pageId, prefix) {
  var form = eval("document."+formId);

// salvestame v22rtused
  m_target = form.target;
  m_page = form.pageId.value;
  //  m_method = form.method;

// paneme uued v22rtused.

  form.prefix.value = prefix;
  form.target = 'popup';
  form.pageId.value = pageId;
  //  form.method = 'post';
  listin = open('', 'popup', 'toolbar=yes,location=yes,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=640,height=550');
  form.submit();
  listin.focus();
// taastame v22rtused.

  //  form.method = m_method;
  form.target = m_target;
  form.pageId.value = m_page;
}

function checkBanner(banner){
  inner = String(banner.document);
  if(inner.indexOf("blank.gif")>1){
    banner.height="0";
    banner.width="0";
  }
}


function openPopUpNoBrowserCache(url, name){
        var randomnumber=Math.floor(Math.random()*1000000);
        name = window.open(url+ '&rand=' + randomnumber, name, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=640,height=550,left=20,top=20,');
        name.focus();
}

function openPopUpNoBrowserCacheCustom(url, name, w, h){
        var randomnumber=Math.floor(Math.random()*1000000);
        name = window.open(url+ '&rand=' + randomnumber, name, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=' + w + ',height=' + h + ',left=20,top=20,');
	name.focus();
}
			

function separateMoneyFormat(value){
	var separator = " ";
        if(value == null)
            return;
        var st=new String(value)
        var begin="",end="",tmpSt="";	      
        if (st.indexOf(".")>=0)	{
            begin=st.substring(0,st.indexOf("."));
            end=st.substring(st.indexOf("."),st.length);
        }
        else	
            begin=st;			
        while (begin.length>3)	{    
            tmpSt=separator+begin.substring(begin.length-3,begin.length)+tmpSt;        
            begin=begin.substring(0,begin.length-3);
        }	
        return new String(begin+tmpSt+end);
}

function popupMedia(url) {
        newWindow =
        window.open(url,'newWindow','toolbar=yes,location=yes,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=715,height=550,left=20,top=20');
        newWindow.focus();
}


//MyM
function scalePix(imgn, areaWidth, areaHeight) {

  var PixWidth;
  var PixHeight;

  var im = new Image();
  im.src = imgn;

  PixWidth  = im.width;
  PixHeight = im.height;

  var OrigHeight = PixHeight;
  var OrigWidth  = PixWidth;

  if (im.width > areaWidth) {
    im.width     = areaWidth;
    PixWidth     = im.width;
    ScalePercent = (PixWidth * 100 / OrigWidth);
    im.height    = (ScalePercent * OrigHeight / 100);
    PixHeight    = im.height;
  }

  if (im.height > areaHeight) {
    im.height    = areaHeight;
    PixHeight    = im.height;
    ScalePercent = (PixHeight * 100 / OrigHeight);
    im.width     = (ScalePercent * OrigWidth / 100);
    PixWidth     = im.width;
  }
//alert(PixWidth + 'x' + PixHeight);
 // return '<img src=' + imgn + ' width=' + PixWidth + ' height=' + PixHeight + ' >';
 return '<img border=0 src=' + imgn + ' height=' + (PixHeight - 1) + '>';
}

/**
 * Round number with places after comma
 * @param nr Number to round
 * @param places How many places after comma
 */
function roundPlaces(nr, places) {
	nr = nr * Math.pow(10, places);
	nr = Math.round(nr);
	nr = nr / Math.pow(10, places);
	
  if(nr.toString().indexOf(".") == -1){
    // Add the decimal place and 00
    	nr=nr + ".00"
	}
	
	return nr;
}

/**
 * Calculate and set area size value. Sets empty value if price cannot be calculated.
 * @param formId Form name
 * @param destObjName Destination object name
 * @param priceObjName Price object name
 * @param areaSizeObjName Area size object name
 */
function calcPricePerM2(formId, destObjName, priceObjName, areaSizeObjName) {
	var price = eval("document."+formId+"."+priceObjName+".value");
	var areaSize = eval("document."+formId+"."+areaSizeObjName+".value");
	var destObj = eval("document."+formId+"."+destObjName);
	var pricePerM2 = roundPlaces(price / areaSize.toString().replace(",", "."), 2);

	if (pricePerM2 == 0 || pricePerM2 == "Infinity" || isNaN(pricePerM2)) {
		pricePerM2 = "";
	}
	destObj.value = pricePerM2;
}

/**
 * Change destination combo box value to source object value
 * @param formId Form name
 * @param srcObjName Source object name
 * @param destObjName Destination object name
 */
function syncComboBoxValue(formId, srcObjName, destObjName) {
	// FIXME try to synchronize by option key
	var srcObj = eval("document."+formId+"."+srcObjName);
	var destObj = eval("document."+formId+"."+destObjName);
	destObj.selectedIndex = srcObj.selectedIndex;
}

/**
 * Change multiple objects visibility
 * @param formId Form name
 * @param srcObjName Source object name
 * @param conditionValues Array object containinc condition values
 * @param isHideValues If selected value is in objNames, then hide (true) or show (false)
 * @param destObjNames Array object containing object names
 */
function changeMultObjVisibility(formId, srcObjName, conditionValues, isHideValues, destObjNames) {
	
	var srcObj = eval("document."+formId+"."+srcObjName);
	var srcObjSelkey = srcObj.options[srcObj.selectedIndex].value;
	var visibility = "visible";
	var position = "static";
	if (conditionValues.inArray(srcObjSelkey)) {
		visibility = (isHideValues) ? "hidden" : "visible";
		position = (isHideValues) ? "absolute" : "static";
		display = (isHideValues) ? "none" : "";
	}
	else {
		visibility = (isHideValues) ? "visible" : "hidden";
		position = (isHideValues) ? "static" : "absolute";
		display = (isHideValues) ? "" : "none";
	}
	
	var destObj = new Object();
	var destObjDiv = new Object();
	for (i=0; i<destObjNames.length; i++) {
		destObj = getElement(formId, destObjNames[i]);
		destObjDiv = getElement(formId, destObjNames[i] + '_div');
		if (destObjDiv != null) {
			destObjDiv.style.position = position;
			destObjDiv.style.visibility = visibility;
			destObjDiv.style.display = display;
		}
		
		if (destObj != null) { //for old WishSendView	
				destObj.style.visibility = visibility;
		}
		if (visibility == "hidden") {
			// give elements their default values
			if (destObj != null && destObj.type != null) {	
				destObj.style.visibility = visibility;
				if (destObj.type.indexOf("select") == 0) {
					try {destObj.selectedIndex = 0; } catch(e) {} // combo box
				} else {
					try {destObj.checked = false;} catch(e) {} // checkbox
					// TODO check out what happens with buttons? caption gets lost?
					try {destObj.value = destObj.defaultValue;} catch(e) {} // input field
				}
			}
		}
	}
}

/**
 * Change multiple objects visibility
 * @param formId Form name
 * @param srcObjName Source object name
 * @param conditionValues Array object containinc condition values
 * @param isHideValues If selected value is in objNames, then hide (true) or show (false)
 * @param destObjNames Array object containing object names
 * @param srcObjName Source second object name
 * @param conditionValues Array object containinc condition values
 * @param whenNot String when not to show
 */
function changeMultObjVisibility2(formId, srcObjName, conditionValues, isHideValues, destObjNames, srcObjName2, conditionValues2, whenNot) {
	
	var srcObj = eval("document."+formId+"."+srcObjName);
	var srcObj2 = eval("document."+formId+"."+srcObjName2);
	var srcObjSelkey = srcObj.options[srcObj.selectedIndex].value;
	var srcObjSelkey2 = srcObj2.options[srcObj2.selectedIndex].value;
	var visibility = "visible";
	var position = "static";
	var display = "";
	if (conditionValues.inArray(srcObjSelkey) && conditionValues2.inArray(srcObjSelkey2) && srcObjSelkey2 != whenNot) {
		visibility = (isHideValues) ? "hidden" : "visible";
		position = (isHideValues) ? "absolute" : "static";
		display = (isHideValues) ? "none" : "";
	}
	else {
		visibility = (isHideValues && srcObjSelkey2 != whenNot) ? "visible" : "hidden";
		position = (isHideValues && srcObjSelkey2 != whenNot) ? "static" : "absolute";
		display = (isHideValues && srcObjSelkey2 != whenNot) ? "" : "none";
	}
	
	var destObj = new Object();
	var destObjDiv = new Object();
	for (i=0; i<destObjNames.length; i++) {
		destObj = getElement(formId, destObjNames[i]);
		destObjDiv = getElement(formId, destObjNames[i] + '_div');
		if (destObjDiv != null) {
			destObjDiv.style.position = position;
			destObjDiv.style.visibility = visibility;
			destObjDiv.style.display = display;
		}
		
		if (visibility == "hidden") {
			// give elements their default values
			if (destObj != null && destObj.type != null) {
				if (destObj.type.indexOf("select") == 0) {
					try {destObj.selectedIndex = 0; } catch(e) {} // combo box
				} else if (destObj.type.indexOf("checkbox") == 0){
					try {destObj.checked = false;} catch(e) {} // checkbox
				} else {
					// TODO check out what happens with buttons? caption gets lost?
					try {destObj.value = destObj.defaultValue;} catch(e) {} // input field
				}
			}
		} else if (visibility == "visible") {
			if (destObj != null && destObj.type != null) {
				if (destObj.type.indexOf("select") != 0 && destObj.type.indexOf("checkbox") != 0) { // not combo and not checkbox
					try {destObj.value = destObj.defaultValue;} catch(e) {} // set only default value to input field
				}
			}
		}
	}
}

/**
 * Change destination object value if combo box value is changed
 * @param formId Form name
 * @param srcObjName Source combo box name
 * @param destObjName Destination object id. For example HTMLSpanElement or HTMLTableCellElement id.
 * @param conditions Contains array of conditions. new Array(new Array('KEY1', 'val1'), new Array('KEY2', 'val2'))
 * @param defaultValue This value is used if condiction not found
 */
function changeCaptionBySelBox(formId, srcObjName, destObjName, conditions, defaultValue) {
	var srcObj = getElement(formId, srcObjName);
	var destObj = getElement(formId, destObjName);
	var srcObjSelKey = srcObj.options[srcObj.selectedIndex].value;
	var destObjVal = defaultValue;
	
	for (i=0; i<conditions.length; i++) {
		var condition = conditions[i];
		var key = condition[0];
		var val = condition[1];
		if (key == srcObjSelKey) {
			destObjVal = val;
			break;
		}
	}
	destObj.innerHTML = destObjVal;
}

function changeCaptionBySelBoxEx(formId, srcObjName, destObjName, conditions, defaultValue, exceptions) {

	for (i=0; i<exceptions.length; i++) {
		var exception = exceptions[i];
		var field = getElement(formId, exception[0]);
		var fieldValue=field.value;
		var value = exception[1];
		
		if (fieldValue == value) {
			return;
		}
	}

	var srcObj = getElement(formId, srcObjName);
	var destObj = getElement(formId, destObjName);
	var srcObjSelKey = srcObj.options[srcObj.selectedIndex].value;
	var destObjVal = defaultValue;
	
	for (i=0; i<conditions.length; i++) {
		var condition = conditions[i];
		var key = condition[0];
		var val = condition[1];
		if (key == srcObjSelKey) {
			destObjVal = val;
			break;
		}
	}
	destObj.innerHTML = destObjVal;
}

var isNS4 = (navigator.appName=="Netscape")?1:0;

function consistsOfCorrectValue(e, keys, form, textBox, maxLength, maxValue){

	textBox=eval("document.forms['"+form+"']."+textBox);
	
	if (window.event) {
		code=event.keyCode;
	}else {
		code= e.which;
	}
	
	keychar = String.fromCharCode(code);

  if(isNS4){
		var ns=0;

	  for(chr=0;chr<textBox.value.replace("\'", "\\'").length;chr++){

		  if(textBox.value.charCodeAt(chr)==10){
							  ns++;
		  }
		  
	  }

		maxLength-=ns;
		
		if (keys!=""&&keys.indexOf(keychar) == -1&&code!=0&&code!=8) {
			e.preventDefault();
		}else if(textBox.value.replace("\'", "\\'").length+ns>=maxLength&&code!=8){

			e.preventDefault();
			
			textBox.value=textBox.value.replace("\'", "\\'").substring(0,maxLength);
		}else if(maxValue!="" && textBox.value>maxValue){
			e.preventDefault();
			
			textBox.value=maxValue;
		}
	
	}else{
		  var ns=0;

	  for(chr=0;chr<textBox.value.replace("\'", "\\'").length;chr++){
	  
		  if(textBox.value.charCodeAt(chr)==13){
			  ns++;
		  }
		  
	  }

		maxLength-=ns;

	  if (code==0||code==86){

		  for(chr=0;chr<textBox.value.replace("\'", "\\'").length;chr++){
	
			  if(keys.indexOf(textBox.value.substring(chr,chr+1))==-1){
					event.returnValue = false;
					
					 textBox.value="";
					 
					 return;
			  }
			  
		  }
		  
	  }else if(textBox.value.replace("\'", "\\'").length+ns>=maxLength||keys!=""&&code!=0&&code!=17&&keys.indexOf(keychar) == -1) {
		 event.returnValue = false;

			textBox.value=textBox.value.replace("\'", "\\'").substring(0,maxLength);
		}else if(maxValue!="" && textBox.value>maxValue){
			event.returnValue=false;
			
			textBox.value=maxValue;
		}else{
			event.returnValue=true;
		}
	
	}
	
}	

function isAnyChBoxChecked(formObj, prefix) {  
  f = eval("document."+formObj);
  for (var i=0;i < f.length;i++){
	fldObj = f.elements[i];
    if (fldObj.type == 'checkbox' && fldObj.name.indexOf(prefix)>-1 && fldObj.checked)
	  return true;
  }
  return false;
}

function printPopUp(tmsec2, s, jsPath, isAdmin){
	var bikky = document.cookie;
	
	var language="lt";
		
	function getCookie(name) {
		var index = bikky.indexOf(name + "=");
			
		if (index == -1){
			return null;
		}
	
		index = bikky.indexOf("=", index) + 1;
		
		var endstr = bikky.indexOf(";", index);
		
		if (endstr == -1){
			endstr = bikky.length;
		}
		
		return unescape(bikky.substring(index, endstr));
	}
		
	if (!getCookie("SpecialPopupDisplayed")) {
		document.cookie="SpecialPopupDisplayed=true;;/client";	//	Set cookie too so Javascript can too descide about showing popup... 
		
		var MySpPopupWindow;
		
		MySpPopupWindow = window.open('','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=360,height=420,left=400,top=300');				
		
		if (MySpPopupWindow != null) {
			MySpPopupWindow.document.write("<html>");
			MySpPopupWindow.document.write("<head>");
			MySpPopupWindow.document.write("<title>Nordea</title>");
			
			if(!isAdmin){
			MySpPopupWindow.document.write("	<script type=\"text/javascript\" src=\""+jsPath+"/tmv11.js\"></script>");
			}
			
			MySpPopupWindow.document.write("</head>");
			MySpPopupWindow.document.write("<body marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>");
			MySpPopupWindow.document.write("	<iframe target='_blank' src='http://ads.city24.ee/reklaam/fcads/adserv.php?env=city24&page=nordeauhiuus&size=360x420&show=iframe' width='360' height='420' marginwidth='0' marginheight='0' frameborder='0' scrolling='no' hspace='0' vspace='2'></iframe>");
			
			if(!isAdmin){
			MySpPopupWindow.document.write("	<script type=\"text/JavaScript\" language=\"JavaScript\">");
			MySpPopupWindow.document.write("		<!--");
			MySpPopupWindow.document.write("			var tmsec = new Array ('tmsec1=City24_"+language+"', 'tmsec2="+tmsec2+"');");
			MySpPopupWindow.document.write("");
			MySpPopupWindow.document.write("			getTMqs('http"+s+"', '', '', 'city24_"+language+"', '"+language+"', 'UTF-8', tmsec);");
			MySpPopupWindow.document.write("		-->");
			MySpPopupWindow.document.write("	</script>");
			MySpPopupWindow.document.write("	<noscript>");
			MySpPopupWindow.document.write("		<img src=\"http"+s+"://statistik-gallup.net/V11***city24_"+language+"/"+language+"/UTF-8/tmsec1=City24_"+language+"ee&tmsec2="+string+"/\">");
			MySpPopupWindow.document.write("	</noscript>");
			}
			
			MySpPopupWindow.document.write("</body>");
			MySpPopupWindow.document.write("</html>");
		}
		
	}
	
}function pushDown(onPos){
	var i=0;
	
	var next = onPos + 1;
	var onId = this.document.getElementById('PICTURE' + (onPos) + '_id');
	var onImg = this.document.getElementById('PICTURE' + (onPos) + '_img');
	var nextId = this.document.getElementById('PICTURE' + next + '_id');
	var nextImg = this.document.getElementById('PICTURE' + next + '_img');
	
	for (i=0; i<1; i++){	
		image1 = new Image();
		image1.src = this.document.images['PICTURE'+next+'thumb'].src;
		delay(100);
		image2 = new Image();
		image2.src = this.document.images['PICTURE'+onPos+'thumb'].src;
		delay(100);
		this.document.images['PICTURE'+onPos+'thumb'].src=image1.src;
		delay(100);
		this.document.images['PICTURE'+next+'thumb'].src=image2.src;
		delay(100);		
	}
	
	var tImg = onImg.value;
	onImg.value = nextImg.value;
	nextImg.value = tImg;
	
	var tId = onId.value;
	onId.value = nextId.value;
	nextId.value =tId;

	return 4;
}
function pushUp(onPos){
	var i=0;

	prev= onPos-1;
	var onId = this.document.getElementById('PICTURE' + (onPos) + '_id');
	var onImg = this.document.getElementById('PICTURE' + (onPos) + '_img');
	var prevId = this.document.getElementById('PICTURE' + prev + '_id');
	var prevImg = this.document.getElementById('PICTURE' + prev + '_img');
	for (i=0; i<1; i++){
		image1 = new Image();
		image1.src=this.document.images['PICTURE'+onPos+'thumb'].src;
		delay(100);
		image2 = new Image();
		image2.src =this.document.images['PICTURE'+prev+'thumb'].src;
		delay(100);
		this.document.images['PICTURE'+onPos+'thumb'].src=image2.src;
		delay(100);
		this.document.images['PICTURE'+prev+'thumb'].src=image1.src;
		delay(100);
	}
	var tImg= onImg.value;
	onImg.value = prevImg.value;
	prevImg.value= tImg;
	
	var tId=onId.value;
	onId.value = prevId.value;
	prevId.value=tId;
	
	return 4;
}

function pushUpVideo(onPos, totalIds){
	var i=0;

	prev= onPos-1;
	var onId = this.document.getElementById('videothumb' + (onPos) + '_id');
	var onImg = this.document.getElementById('videothumb' + (onPos) + '_img');
	var prevId = this.document.getElementById('videothumb' + prev + '_id');
	var prevImg = this.document.getElementById('videothumb' + prev + '_img');
	
	var idString = this.document.getElementById(totalIds).value;
	idString = idString.replace(onId.value, 'RohtsaluTembikas');
	idString = idString.replace(prevId.value, onId.value);
	idString = idString.replace('RohtsaluTembikas', prevId.value);
	
	this.document.getElementById(totalIds).value = idString;
	
	for (i=0; i<1; i++){
		image1 = new Image();
		image1.src=this.document.images['videothumb'+onPos].src;
		delay(100);
		image2 = new Image();
		image2.src =this.document.images['videothumb'+prev].src;
		delay(100);
		this.document.images['videothumb'+onPos].src=image2.src;
		delay(100);
		this.document.images['videothumb'+prev].src=image1.src;
		delay(100);
		
		var tmpnext = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+onPos+"_LIT");
		var tmpprev = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+prev+"_LIT");
		var tmp = tmpnext.value;
		tmpnext.value = tmpprev.value;
		tmpprev.value = tmp;
		
		tmpnext = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+onPos+"_RUS");
		tmpprev = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+prev+"_RUS");
		tmp = tmpnext.value;
		tmpnext.value = tmpprev.value;
		tmpprev.value = tmp;
		
		tmpnext = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+onPos+"_ENG");
		tmpprev = eval("this.document.forms.offerProperties.VIDEO_TEXT_"+prev+"_ENG");
		tmp = tmpnext.value;
		tmpnext.value = tmpprev.value;
		tmpprev.value = tmp;
		
	}
	var tImg= onImg.value;
	onImg.value = prevImg.value;
	prevImg.value= tImg;
	
	var tId=onId.value;
	onId.value = prevId.value;
	prevId.value=tId;
	
	return 4;
}

function viewVideo(urlikas, tempId, thumbName){
	var url = urlikas.replace("permaid=" + tempId, "permaid=" + this.document.getElementById(thumbName + '_id').value);
	var MyWindow = openPopUpNoBrowserCacheCustom(url, 'videoWindow', '1024','700');
	return;
}

function addVideo(urlikas, totalIds){
	var url = urlikas + this.document.getElementById(totalIds).value;
	var MyWindow = openPopUpNoBrowserCacheCustom(url, 'videoWindow', '600','400');
	return;
}

function deleteVideo(message, urlikas, thumbName, videoCount){
	var answer = confirm(message);
	if (answer){
		var id = this.document.getElementById(thumbName + '_id').value;
		var MyWindow = openPopUpNoBrowserCacheCustom(urlikas + id + "&videoCount=" + videoCount, 'videoWindow', '600','400');
		return;
	}
}

function showImage(pos){
	var url = this.document.getElementById('PICTURE' + (pos) + '_img').value;
	url = url.replace("THUMBNAIL/","");
	var MyWindow = window.open(url,'ShowImage','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,width=500,height=400,left=20,top=20');
	return;
}

function insertAll(pos){
	var i=0;
	var added=0;
	for(;i<this.document.searchImage.img.length;i++){
		if (pos>10) {
			alert("Only some pictures were added!");
			window.close();
			return;	
		}
		var onId = opener.document.getElementById('PICTURE' + (pos) + '_id');
		var onImg = opener.document.getElementById('PICTURE' + (pos) + '_img');
		while(!(onId.value=="")){
			pos++;
			if (pos>10){
				if (added==0){
					alert("No room for pictures to be added!");
				}
				else {
					alert("Only some pictures were added!");
				}
				window.close();
				return;	
			}
			onId = opener.document.getElementById('PICTURE' + (pos) + '_id');
			onImg = opener.document.getElementById('PICTURE' + (pos) + '_img');
		}
		onId.value=this.document.searchImage.imgId[i].value;
		onImg.value=this.document.searchImage.img[i].value;
		opener.document.images['PICTURE'+pos+'thumb'].src=this.document.searchImage.img[i].value;
		added++;
		pos++;

		
	}

	window.close();
	return;
}

function checkAllCheckboxes(formId, objName, markAsChecked) {
  var obj = eval("document."+formId+"."+objName);
  try {
    for (i = 0; i < obj.length; i++) {
      obj[i].checked = markAsChecked;
    }
  } catch (e) {}
  try {
    // Only one check box
    obj.checked = markAsChecked;
  } catch (e) { }
  // in case field names are like reo_id123, reo_id124 etc.
  var f = eval("document."+formId);
  for (var i=0;i < f.length;i++){
	var fldObj = f.elements[i];
    if (fldObj.type == 'checkbox' && fldObj.name.indexOf(objName)>-1) {
	  fldObj.checked = markAsChecked;
	}
  }
}

function checkOrUncheckAllCheckboxes(formId, objName, checkAllStatusButton_StatusRevering) {
  var obj = eval("document."+formId+"."+objName);
	var nS = eval("document."+formId +".checkAllStatus");
	var neededStatus = nS.value;
	if(neededStatus == 'false') {
		neededStatus = true;
	} else {
		neededStatus = false;
	}
  try {
    for (i = 0; i < obj.length; i++) {
      obj[i].checked = neededStatus;
    }
  } catch (e) {}
  try {
    // Only one check box
    obj.checked = neededStatus;
  } catch (e) { }
  // in case field names are like reo_id123, reo_id124 etc.
  var f = eval("document."+formId);
  for (var i=0;i < f.length;i++){
	var fldObj = f.elements[i];
    if (fldObj.type == 'checkbox' && fldObj.name.indexOf(objName)>-1) {
	  fldObj.checked = neededStatus;
	}
  }
  	if(checkAllStatusButton_StatusRevering == 'true') { // We only need to change it 1 time, as usually different calls are made to select/deselect different REO types. Last such call should reverse status
		nS.value = neededStatus;
	}
}

function delay(millis) {
	date = new Date();
	var curDate = null;
	do { 
		var curDate = new Date();
	}  while(curDate-date < millis);
	return;
} 

function reload() {
	window.location.reload();
}

function selectMultiple(formId, objName, toSelect) {
	var obj = eval("document." + formId + "." + objName);
	for (i = 0; i < obj.options.length; i++) {
		if (toSelect.length > 0) {
			for (k = 0; k < toSelect.length; k++) {
				if (obj.options[i].value == toSelect[k]) {
					obj.options[i].selected = true;
				}
			}
		}
	}
}

function rememberMultiCitypart(formId, srcObjName, destHiddenName) {
	var srcObj = eval("document."+formId+"."+srcObjName);
	var destObj = eval("document."+formId+"."+destHiddenName);
	var counter = 0;
	var selected = "";
	for (i = 0; i < srcObj.options.length; i++) {
		if (srcObj.options[i].selected) {
			if (counter != 0) {
				selected += ";";
			}
			selected += srcObj.options[i].value;
			counter++;
		}
	}
	destObj.value = selected;
}


function switchReoType(formName, srcElemName, pageId, objectId, stateId, eventId, name1, name2) {
	var value1;
	var value2;
	var srcElem = eval("document."+formName+"."+srcElemName);
	var selectedReo = srcElem.options[srcElem.selectedIndex].value;
	if (selectedReo == 'REO_APPARTMENT' || selectedReo == 'REO_COMMERCIAL' || selectedReo == 'REO_GARAGE' || selectedReo == 'REO_LAND') {
		navigate1(formName, pageId, objectId, stateId, eventId, name1, selectedReo);
	} else if (selectedReo == 'HOUSE_HOUSE' || selectedReo == 'HOUSE_COTTAGE') {
		navigate2(formName, pageId, objectId, stateId, eventId, name1, 'REO_HOUSE', name2, selectedReo);
	} 
}

function cleanEditBoxValue(element, defVal) {
	if (element.value == defVal) {
		element.value = '';
	}
}

function restoreEditBoxValue(element, defVal) {
	if (element.value == '') {
		element.value = defVal;
	}
}

function checkAll(formId) {
	var el = document.getElementById(formId);
	for (var i = 0; i < el.elements.length; i++) {
		var elem = el.elements[i];
		var obj = eval(elem);
		if (obj.type == 'checkbox') {
	  		obj.checked = true;
	  	}
	}
}

function submitOnEnter(formId, actionFld, e) {
	var keycode;
	if (window.event) {
		keycode = window.event.keyCode;
	} else if (e) {
		keycode = e.which;
	}

	if (keycode == 13) {
   		//myfield.form.submit();
   		var obj = eval("document."+formId+"."+actionFld);
   		if (obj != null && obj.value.length > 0) {
   			eval(obj.value);
   		}
    } 
}

/**
 * Change multiple objects status to enabled or disabled. Use with combo box.
 * 
 * @param formId Form name
 * @param srcObjName Source combo box name
 * @param conditionValues Combo box option values to meet conditions
 * @param isEnableValues If selected value is in conditionValues, then enable (<code>true</code>) or disable (<code>false</code>)
 * @param destObjNames Destination objects field names
 */
function toggleEnabledByCombo(formId, srcObjName, conditionValues, isEnableValues, destObjNames) {
	var srcObj = eval("document."+formId+"."+srcObjName);
	var srcObjSelkey = srcObj.options[srcObj.selectedIndex].value;
	
	var isEnabled;
	
	if (conditionValues.inArray(srcObjSelkey)) {
		isEnabled = !isEnableValues;
	} else {
		isEnabled = isEnableValues;
	}
	
	for (i=0; i<destObjNames.length; i++) {
		var destObj = getElement(formId, destObjNames[i]);
		destObj.disabled = !isEnabled;
		if (!isEnabled) {
			// give elements their default values
			try {destObj.checked = false;} catch(e) {} // checkbox
			try {destObj.selectedIndex = 0;} catch(e) {} // combo box
			// TODO check out what happens with buttons? caption gets lost?
			try {destObj.value = "";} catch(e) {} // input field
		}
	}
}	

/**
 * Change multiple objects status to enabled or disabled. Use with combo box.
 *
 * @param formId Form name
 * @param targetFieldName Source combo box name
 */
function changeCommercialItems(formId, targetFieldName) {
	var srcObj = new Object();
	srcObj = eval("document."+formId+"."+targetFieldName.name);
	var selCommercials;
	try {
		/** variable selCommercialItems(Array) is generated from servlet and holds multiple selected commercials */
		selCommercials = selCommercialItems;
	} catch(err) {
		selCommercials = new Array();
	}
	for (i=0; i<srcObj.options.length; i++) {
		var val = srcObj.options[i].value;
		for (j=0; j<selCommercials.length; j++) {
			if (val != "0" && selCommercialItems[j] == val) {
				srcObj[i].selected = true;
			}
		}
	}
}

function attachHiddenValue(formId, elemId, hdnElemId) {
	var elem = eval("document."+formId+"."+elemId);
	var hdnElem = eval("document."+formId+"."+hdnElemId);
	if (hdnElem.value != '') {
		elem.value = hdnElem.value;
	}
}
//function puts link "Tee City24 avaleheks" only for IE and FF browsers
function writeSetHome(setHomeTitle){
	if (document.all || window.sidebar)
    {
		document.write("<BR/>");
		document.write("<a href=\"javascript:setHome()\">");
		document.write("<span style=\"color:#96815A; text-decoration: underline;\">" + setHomeTitle + "</span></a>");
    }
}
//function which sets the home page to City24
function setHome()
{
	   
	if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
        document.body.setHomePage("http://www.city24.lt/");
 
    }
    else if (window.sidebar)
    {
    if(window.netscape)
    {
         try
   {  
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
         }  
         catch(e)  
         {  
    alert("this action was aviod by your browser,if you want to enable,please enter about:config in your address line,and change the value of signed.applets.codebase_principal_support to true");  
         }
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage',"http://www.city24.lt/");
 }	   
}

function countMe(url) {
	myImage = new Image();
	myImage.src = url+'&'+Math.random();
}