// Functions from Netscape's JavaScript Guide
// http://developer.netscape.com/docs/manuals/js/client/jsguide/

function setCookie(name, value, expire, path) {
	document.cookie = name + '=' + escape(value)
		+ ((expire == null)? '' : ('; expires=' + expire.toGMTString()))
		+ ((path == null)? '' : ('; path=' + path));
}

function getCookie(Name) {
	var search = Name + '='
	if (document.cookie.length > 0) { // if there are any cookies
		offset = document.cookie.indexOf(search) 
		if (offset != -1) { // if cookie exists 
			offset += search.length 
			// set index of beginning of value
			end = document.cookie.indexOf(';', offset) 
			// set index of end of cookie value
			if (end == -1) 
				end = document.cookie.length
			return unescape(document.cookie.substring(offset, end))
		}
	}
	return '';
}


//
// Copyright (c) Art. Lebedev Studio | http://www.artlebedev.ru/
// Author - Leechy | leechy@design.ru
//

// miniSite functions:

function miniSiteItem(name, uri) {
	this.name = name;
	this.uri = uri;
	return this;
}

function getMSItems() {
	var MSNamesCookie = getCookie('msnames');
	var MSNames = MSNamesCookie.split('|');
	var MSURICookie = getCookie('msuri');
	var MSURIs = MSURICookie.split('|');

	var MSItems = new Array();
	for (var i = 0; i < MSNames.length; i++)
		if (MSURIs[i]) MSItems[MSItems.length] = new miniSiteItem(MSNames[i], MSURIs[i]);
	
	return MSItems;
}

function storeMSItems(MSArray) {
	var MSNamesCookie = '';
	var MSURICookie = '';
	for (var i = 0; i < MSArray.length; i++) {
		MSNamesCookie += MSArray[i].name;
		MSURICookie += MSArray[i].uri;
		if (i != MSArray.length - 1) {
			MSNamesCookie += '|';
			MSURICookie += '|';
		}
	}

   var today = new Date()
   var expires = new Date();
   expires.setTime(today.getTime() + 1000*60*60*24*365);

	setCookie('msnames', MSNamesCookie, expires, '/');
	setCookie('msuri', MSURICookie, expires, '/');
}

function checkMSItemExistance(pageURI) {
	for (var i = 0; i < currMSItems.length; i++) {
		if (currMSItems[i].uri == pageURI) return false;
	}
	return true;
}

function addMSItem(pageName, pageURI) {
	if (checkMSItemExistance(pageURI)) {
		currMSItems[currMSItems.length] = new miniSiteItem(pageName, pageURI);
		storeMSItems(currMSItems);
		if (document.getElementById) {
			var addBtnRow = document.getElementById('mailBtn');
			var itemNumber = currMSItems.length - 1;
			
			if(!document.getElementById("mailBtn")) addBtnRow=document.getElementById('noMSItemsRow')
			// removing button
			if (document.images['addMSItemImg']) {
				document.images['addMSItemImg'].src = '/i/b_addlist.gif';
				isAdd2MSBtn = false;
			}
			if (document.images['addMSItemImg']) document.images['msTitleImg'].src = msTitleActiveImage.src;

			
			// creating elements
			var newMSItemRow = document.createElement('tr');
			var newMSItemCell = document.createElement('td');
			newMSItemRow.id = 'msitem' + itemNumber;
			newMSItemRow.appendChild(newMSItemCell);
			addBtnRow.parentNode.insertBefore(newMSItemRow, addBtnRow);
			newMSItemCell.innerHTML = generateMSCellsTable(itemNumber, pageName, pageURI);
			// removing description if exist
			var noMSItemsBlock = document.getElementById('noMSItemsRow');
			if (noMSItemsBlock) noMSItemsBlock.parentNode.removeChild(noMSItemsBlock);

			return false;
		} else return true;
	} else return false;
}

function removeMSItem(pageURI, rowId) {
	var MSItems = new Array();
	for (var i = 0; i < currMSItems.length; i++) {
		if (currMSItems[i].uri != pageURI) {
			MSItems[MSItems.length] = currMSItems[i];
		}
	}
	currMSItems = MSItems;
	storeMSItems(currMSItems);

	// updating page for DOM-supporting browsers
	if (document.getElementById) {
		var currMSItemElem = document.getElementById(rowId);
		if (currMSItems.length == 0) {
			var newRow = document.createElement('tr');
			var newCell = document.createElement('td');
			newRow.appendChild(newCell);
			currMSItemElem.parentNode.insertBefore(newRow, currMSItemElem);
			newRow.id = 'noMSItemsRow';
			newCell.innerHTML = noMSItemsText;
			if (document.images['msTitleImg']) document.images['msTitleImg'].src = msTitleImage.src;
		}
		if (pageURI == currPageUri) {
			// adding button
			if (document.images['addMSItemImg']) document.images['addMSItemImg'].src = msAddImage.src;
			isAdd2MSBtn = true;
		}
		currMSItemElem.parentNode.removeChild(currMSItemElem);
		// document.getElementById('noMSItemsRow').innerHTML = 'asd';
		return false;
	} else return true;
}


function generateMSCellsTable(number, MSName, MSUri) {
	var MSCellsString = '<table cellpadding="0" cellspacing="0" border="0" ><tr valign="top" class=dtext><td nowrap="nowrap">';
	MSCellsString += '';
	
//begining
//delete	
	MSCellsString += '<a style=\"cursor:hand;\" onClick="return removeMSItem(\'' + currMSItems[number].uri + '\', \'msitem' + number + '\')">';
	MSCellsString += '<img alt="french property, france property for sale, property for sale in france, real estate france" src="/img/minisite/ms-x.gif" width="10" height="10" border="0" alt="x" title="Delete bookmark" hspace="3" /><\/a>';
			
	MSCellsString += '&nbsp;<\/td><td width="180"><font face="Geneva CY, Tahoma, sans-serif">';
// check for search page (if we are in not in sitemap, buy in really search page (with parameters)
		var re = new RegExp('http:\/\/([^/:]+)?\/([a-z]+)\/([?,a-z]*)([^\=]*)');
		var re1 = document.location.href;
		var re2 = re1.match(re);
		//if(MSName.length>23) MSName = MSName.slice(0,2
		if (currentURI == MSUri) {
			
			MSCellsString += '<b>' + MSName + '<\/b>';
		} else {
			MSCellsString += '<a href="' + MSUri + '">' + MSName + '<\/a>';
		}

//	if (currentURI == MSUri) MSCellsString += '<b>' + MSName + '<\/b>';
//		else MSCellsString += '<a href="' + MSUri + '">' + MSName + '<\/a>';
	
//checbox	

	MSCellsString += '<\/td><td><input type="checkbox"  name="a['+number+']" value="'+MSUri+'" checked><\/td>';	
	MSCellsString += '<\/font><\/td><\/tr></table>';
	return MSCellsString;
}





function displayMSAddLink(pageName, pageUri) {
	currPageUri = pageUri;
	if (checkMSItemExistance(pageUri)) {
		document.write('<tr id="addBtn"><td align="center"><a href=# onClick="return addMSItem(\'' + pageName + '\', \'' + pageUri + '\')"><img alt="french property, france property for sale, property for sale in france, real estate france" src="/i/b_addlist.gif"  border="0" name="addMSItemImg" vspace="12" onMouseOver="if (isAdd2MSBtn) this.src = msAddSelectedImage.src" onMouseOut="if (isAdd2MSBtn) this.src = msAddImage.src" /></a></td></tr>');
		isAdd2MSBtn = true;
	} else {
		document.write('<tr id="addBtn"><td align="center"><a href=# onClick="return addMSItem(\'' + pageName + '\', \'' + pageUri + '\')"><img alt="french property, france property for sale, property for sale in france, real estate france" src="/i/b_addlist.gif"  border="0" name="addMSItemImg" vspace="12" onMouseOver="if (isAdd2MSBtn) this.src = msAddSelectedImage.src" onMouseOut="if (isAdd2MSBtn) this.src = msAddImage.src"/></a></td></tr>');
		isAdd2MSBtn = false;
	}
}
function showaddlink(pageName,pageUri){
	
		document.write('<img alt="french property, france property for sale, property for sale in france, real estate france" '+pageUri+' src="/i/b_addlist.gif" style=\"cursor:hand;\" width=108 height=25  border=0 onClick="return additem(\'' + pageName + '\', \'' + pageUri + '\')">');
	
}


function send_email()
{
if (currMSItems.length)
{
return true;
}
else
{
alert("There are no properties in bookmarks");
return false;
}

}


function additem(pageName, pageURI){
	if (checkMSItemExistance(pageURI)) {
		if(window.document.all(pageURI)) {
			window.document.all(pageURI).style.color="black";
			window.document.all(pageURI).innerText='added';
		}
		currMSItems[currMSItems.length] = new miniSiteItem(pageName, pageURI);
		storeMSItems(currMSItems);
		if (document.getElementById) {
			var addBtnRow = document.getElementById('mailBtn');
			var itemNumber = currMSItems.length - 1;
			if(!document.getElementById('mailBtn')) addBtnRow = document.getElementById('noMSItemsRow');
		    // creating elements
			var newMSItemRow = document.createElement('tr');
			var newMSItemCell = document.createElement('td');
			newMSItemRow.id = 'msitem' + itemNumber;
			newMSItemRow.appendChild(newMSItemCell);
			addBtnRow.parentNode.insertBefore(newMSItemRow, addBtnRow);
			newMSItemCell.innerHTML = generateMSCellsTable(itemNumber, pageName, pageURI);
			// removing description if exist
			var noMSItemsBlock = document.getElementById('noMSItemsRow');
			if (noMSItemsBlock) noMSItemsBlock.parentNode.removeChild(noMSItemsBlock);

			return false;
		} else return true;
	} else return false;
}

// defining array with miniSite links
var currMSItems = getMSItems();

// checking are cookies enabled - setting a cookie and then checking it ;-)
setCookie('enabled','yes');

// defining strings
var noCookiesText = '<font class=dtext>Cannot save Cookies.You must enable Cookies.<\/font>';
var noMSItemsText = '<font class=dtext>To add to My Bookmarks click Add to Bookmark. <\/font>';

// preloading images
var msAddImage = new Image(115, 30);
msAddImage.src = '/i/b_addlist.gif';
var msAddSelectedImage = new Image(115, 30);
msAddSelectedImage.src = '/i/b_addlist.gif';

var msTitleImage = new Image(95, 14);
msTitleImage.src = '/img/minisite/title.png';
var msTitleActiveImage = new Image(95, 14);
msTitleActiveImage.src = '/img/minisite/title.png';


var isAdd2MSBtn = false;
var currPageUri = '';

window.onload = function() {
	if (currMSItems.length && document.images['addMSItemImg']) document.images['msTitleImg'].src = msTitleActiveImage.src;
}
    