function urlenc(s) {
    var r,c,i,l;
    r=''; l=s.length;
    for (i=0; i<l; i++) {
        c=s.substr(i,1);
        if (c=='%') c='%25';
        if (c=='+') c='%2B';
        if (c=='=') c='%3D';
        if (c=='&') c='%26';
        if (c==' ') c='%20';
        r=r.concat(c);
    }
    return r;
}
									    
function htreplace(t,id) {
    document.getElementById(id).focus();
    document.selection.createRange().text = t;
    document.getElementById(id).focus();
}

function htenclose(b,e,id) {
    var o=document.getElementById(id);
    o.focus();
    var t=document.selection.createRange().text;
    if (t.substr(0,b.length)==b && t.substr(t.length-e.length)==e) {
        document.selection.createRange().text = t.substr(b.length,t.length-e.length-b.length);
    } else {
        document.selection.createRange().text = b+t+e;
    }
    o.focus();
}

var editor = null;
function initEditor() {
  editor = new HTMLArea("text_html");
  editor.config.editorURL='/htmlarea/';
  editor.config.editorStyle = '/css/main.css';
  editor.config.bodyStyle = 'background-color: #FFFFFF; color: 8B8B8B; font-family: Tahoma, Verdana, Arial, sans-serif; font-size: 70%';
  editor.generate();
}

var enabledSrc = '';
function deleteImage() {
    if (document.getElementById('imageDelete').checked) {
        document.getElementById('image').disabled = 1;
        enabledSrc = document.getElementById('picture').src;
        document.getElementById('picture').setAttribute('src', '/images/1.gif');
    } else {
        document.getElementById('image').disabled = 0;
        document.getElementById('picture').src = enabledSrc;
    }
}

function select_all_blocks() {

    select_all(document.getElementById("blocks_right"));
    select_all(document.getElementById("blocks_center"));
    select_all(document.getElementById("blocks_left"));

}

function select_all(obj) {

    var amount = obj.options.length;
    var i;

    for (i = 0; i < amount; i++) {
	obj.options[i].selected = true;
    }

}


function select_move(obj_from_name, obj_to_name){

    var obj_from = document.getElementById(obj_from_name);
    var obj_to = document.getElementById(obj_to_name);

    var amount = obj_from.options.length;
    var i, text, value, option;

    for (i = 0; i < amount; i++) {
	if (obj_from.options[i].selected) {
	    text = obj_from.options[i].innerText;
	    value = obj_from.options[i].value;
	    option = document.createElement("option");
    	    option.setAttribute('value', value);
	    option.setAttribute('selected', true);
	    option.innerText=text;

            obj_to.appendChild(option);
	}
    }

    for (i = amount-1; i>=0; i--) {
	if (obj_from.options[i].selected) {
	    obj_from.removeChild(obj_from.options[i]);
	}
    }

}

function sf_select_reload(from, to) {

  var ofrom = document.getElementById(from);
  var oto = document.getElementById(to);

  var i, l, o;

  for (i=oto.options.length-1; i>0; i--) {
    oto.removeChild(oto.options[i]);
  }

  l = sf_items[ofrom.value].length;
  for (i=0; i<l; i++) {
    if (typeof(sf_items[ofrom.value][i]) == 'undefined') continue;
    o = document.createElement("option");
    o.value = i;
    o.innerText = sf_items[ofrom.value][i];
    oto.appendChild(o);
  }

}


var popup;
function popup_close() {
    if (typeof(popup)!='undefined') {
        if (!popup.closed) popup.close();
    }
}

var pl_p = new Array();
var pl_current_obj = null;
var pl_image_id    = null;
function pl_showImage() {
    // set image
    pl_current_obj.src = pl_p[pl_image_id].src;
    delete(pl_p[pl_image_id]);
}

function change_info(p_id, ph_id, info) {
    property_id = p_id;
    photo_id = ph_id;
    var o;

    o = document.getElementById('l_photo');
    if (typeof(o) != 'undefined') {
	// load image
        pl_current_obj = o;
        pl_image_id = ph_id;
//  	if( !pl_p[ph_id] || !pl_p[ph_id].src ) {
//	    alert('Load\n'+'/pictures/property/' + p_id + '/l_' + ph_id + '.jpg');
    	    pl_p[ph_id] = new Image;
    	    pl_p[ph_id].onload = pl_showImage;
    	    pl_p[ph_id].src = '/pictures/property/' + p_id + '/l_' + ph_id + '.jpg';
//  	} else {
//    	    alert('Show\n'+pl_p[pl_image_id].src);
//    	    pl_showImage();
//    	}
    }

    o = document.getElementById('lp_info');
    if (typeof(o) != 'undefined') {
	o.innerHTML = info;
    }
}

function zoom() {
    var sid=Math.floor(Math.random()*1000000);
    window.open('/photo/'+photo_id,'pz'+sid,'width=600, height=500, statusbar=no');
}

function popup_location(id) {
    var sid=Math.floor(Math.random()*1000000);
    popup_close();
    popup = window.open('/popup','popup'+sid,'width=700, height=500, statusbar=no, scrollbar=right');
}

var popup_select_location;
function select_location() {
    var o;
    if (popup_select_location) popup_select_location.close();
    o=document.getElementById('location_tree_id');
    var location_tree_id=o.value;
    popup_select_location=window.open('/select-location?id='+location_tree_id,'popup_location','width=500,height=500,fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=0,top=0');
}

function change_location(location_tree_id,v0,v1,v2,v3,v4) {
    var o,b,v,i,e;

    o=opener.document.getElementById('location_tree_id');
    o.value=location_tree_id;

    e=false;
    for (i=0; i<5; i++) {
	o=opener.document.getElementById('l'+i);
	b=opener.document.getElementById('b'+i);
	v=eval('v'+i);

	if (v.length) { 
	    o.value=v;
	    o.disabled=true;
	    if (b) b.disabled=true; 
	} else { 
	    o.disabled=false;
	    if (b) b.disabled=e;
	    e=true;
	}
    }

    window.close();

}

var popup_add_location;
function add_location(i) {
    var o;
    if (popup_add_location) popup_add_location.close();
    o=document.getElementById('location_tree_id');
    var location_tree_id=o.value;
    o=document.getElementById('l'+i);
    var value=o.value; 
    popup_add_location=window.open('/add-location?location_tree_id='+location_tree_id+'&i='+i+'&value='+urlenc(value),'popup_location','width=500,height=500,fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=0,top=0');
}

// offered_for
var cf_PROPERTY_OFFERED_FOR_SALE            = 1;
var cf_PROPERTY_OFFERED_FOR_SALE_BY_AUCTION = 2;
var cf_PROPERTY_OFFERED_FOR_TO_LET          = 4;

// contract_type
var cf_PROPERTY_CONTRACT_TYPE_FREEHOLD     = 1;
var cf_PROPERTY_CONTRACT_TYPE_LEASEHOLD    = 2;
var cf_PROPERTY_CONTRACT_TYPE_WEEKLY_RENT  = 4;
var cf_PROPERTY_CONTRACT_TYPE_MONTHLY_RENT = 8;

var cf_PROPERTY_ACCOMMODATION_TYPE_SHARED         = 1;
var cf_PROPERTY_ACCOMMODATION_TYPE_SELF_CONTAINED = 2;

var cf_PROPERTY_FURNITURE_FURNISHED   = 1;
var cf_PROPERTY_FURNITURE_UNFURNISHED = 2;

// check form of sell add
function cfCheckSellAddFormLogic( flag, checked )
	{
	var disabled;
	// *** sale and sale by auction
	if( ( flag == ( 'offered_for' + cf_PROPERTY_OFFERED_FOR_SALE ) || flag == ( 'offered_for' + cf_PROPERTY_OFFERED_FOR_SALE_BY_AUCTION ) ) )
		{
		if( !( document.getElementById( ( 'offered_for' + cf_PROPERTY_OFFERED_FOR_SALE  ) ).checked || document.getElementById( ( 'offered_for' + cf_PROPERTY_OFFERED_FOR_SALE_BY_AUCTION  ) ).checked ) )
			{
			disabled = true;
			// clear checked
			document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_FREEHOLD  ) ).checked = 0;
			document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_LEASEHOLD ) ).checked = 0;
			document.getElementById( ( 'selling_price' ) ).value = 0;
			}
		else
			{
			disabled = false;
			}
		// set disabled
		document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_FREEHOLD  ) ).disabled = disabled;
		document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_LEASEHOLD ) ).disabled = disabled;
		document.getElementById( ( 'selling_price' ) ).disabled = disabled;
		return;
		}
	// *** let
	// monthly and weekly rent for let
	if( flag == ( 'offered_for' + cf_PROPERTY_OFFERED_FOR_TO_LET ) )
		{
		// clear checked
		if( !checked )
			{
			document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_MONTHLY_RENT ) ).checked = 0;
			document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_WEEKLY_RENT  ) ).checked = 0;
			document.getElementById( ( 'weekly_rent_price'  ) ).value = 0;
			document.getElementById( ( 'monthly_rent_price' ) ).value = 0;
			document.getElementById( ( 'weekly_rent_price'  ) ).disabled = !checked;
			document.getElementById( ( 'monthly_rent_price' ) ).disabled = !checked;
			cfClearSelect( document.getElementById( 'accommodation_type' ) );
			cfClearSelect( document.getElementById( 'furniture' ) );
			}
		else
			{
			document.getElementById( ( 'weekly_rent_price'  ) ).disabled = !checked;
			document.getElementById( ( 'monthly_rent_price' ) ).disabled = !checked;
			}
		// set disabled
		document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_MONTHLY_RENT ) ).disabled = !checked;
		document.getElementById( ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_WEEKLY_RENT  ) ).disabled = !checked;
		document.getElementById( ( 'accommodation_type' ) ).disabled = !checked;
		document.getElementById( ( 'furniture' )          ).disabled = !checked;

		return;
		}
	// weekly rent for let
	if( ( flag == ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_WEEKLY_RENT ) ) && !moderator )
		{
		if( !checked )
			{
			document.getElementById( ( 'weekly_rent_price' ) ).value = 0;
			}
		document.getElementById( ( 'weekly_rent_price' ) ).disabled = !checked;
		return;
		}
	// monthly rent for let
	if( ( flag == ( 'contract_type' + cf_PROPERTY_CONTRACT_TYPE_MONTHLY_RENT ) ) && !moderator )
		{
		if( !checked )
			{
			document.getElementById( ( 'monthly_rent_price' ) ).value = 0;
			}
		document.getElementById( ( 'monthly_rent_price' ) ).disabled = !checked;
		return;
		}
	}
// check sell add form
function cfCheckSellAddForm()
	{
	var flag;
	// sale
	flag = cf_PROPERTY_OFFERED_FOR_SALE;
	cfCheckSellAddFormLogic( 'offered_for' + flag, document.getElementById( 'offered_for' + flag ).checked );
	// sale by auction
	flag = cf_PROPERTY_OFFERED_FOR_SALE_BY_AUCTION;
	cfCheckSellAddFormLogic( 'offered_for' + flag, document.getElementById( 'offered_for' + flag ).checked );
	// let
	flag = cf_PROPERTY_OFFERED_FOR_TO_LET;
	cfCheckSellAddFormLogic( 'offered_for' + flag, document.getElementById( 'offered_for' + flag ).checked );
	// weekly rent for let 
	flag = cf_PROPERTY_CONTRACT_TYPE_WEEKLY_RENT;
	cfCheckSellAddFormLogic( 'contract_type' + flag, document.getElementById( 'contract_type' + flag ).checked );
	// monthly rent for let
	flag = cf_PROPERTY_CONTRACT_TYPE_MONTHLY_RENT;
	cfCheckSellAddFormLogic( 'contract_type' + flag, document.getElementById( 'contract_type' + flag ).checked );
	}
// clear select
function cfClearSelect( select )
	{
	for( i=1; i<select.options.length; ++i )
		{
		select.options[i].selected = false;
		}
	select.options[0].selected = true;
	}



var popup;
function _zoom(id,width,height) {
    var pW, pH, lW, lH, scroll=0;
    if (popup) popup.close();
    pW = width;
    pH = height;
    lW = window.screen.width - 10;
    lH = window.screen.height - 65;
    if (pW > lW || pH > lH) {
	scroll = 1;
	pW+= 22;
	pH+= 22;
	if (lW < pW) pW = lW;
	if (lH < pH) pH = lH;
    }
    popup=window.open('/zoom/'+id,'zoom','width='+pW+', height='+pH+', scrollbars='+scroll+', resizable=0, status=0');
    popup.focus();
}

