function trim ( str )
{
    var space = /(^\s*(.*)\s$)/;
    var text = str;
    
    while (space.test(text))
    {
        text = text.replace(space, "$2");
    }
    return text;
}

function oneYearFromNow ()
{
    var exp = new Date();
    var oneYearFromNow = exp.getTime() + (365 * 24 * 60 * 60 * 1000);
    
    exp.setTime(oneYearFromNow);
    return exp;
}

function oneYearFromNowToGMTString ()
{
	var now = oneYearFromNow ();
	return now.toGMTString ();
}

function addEvent(obj, evType, fn)
{ 
    if (obj.addEventListener){ 
        obj.addEventListener(evType, fn, true); 
        return true; 
    } else if (obj.attachEvent){ 
        var r = obj.attachEvent("on"+evType, fn); 
        return r; 
    } else { 
        return false; 
    } 
}

function makeHeaderLink ()
{
    var my_header1 = document.getElementById('apartamento');
    my_header1.onclick = function goHome () {window.location.href = 'appartements.html';}
    my_header1.style.cursor = 'pointer';
    var my_header2 = document.getElementById('piso');
    my_header2.onclick = function goHome () {window.location.href = 'pisos.html';}
    my_header2.style.cursor = 'pointer';
    var my_header3 = document.getElementById('chalet');
    my_header3.onclick = function goHome () {window.location.href = 'chalets.html';}
    my_header3.style.cursor = 'pointer';
    var my_header4 = document.getElementById('comercio');                         
    my_header4.onclick = function goHome () {window.location.href = 'comercios.html';}
    my_header4.style.cursor = 'pointer';
}

addEvent(window, 'load', ksr_getMenuItemIndex);

// "internal" functions
function getCookieVal ( offset )
{
    var endstr = document.cookie.indexOf ( ';', offset );
    if ( endstr == -1 )
        endstr = document.cookie.length;
    
	return unescape ( document.cookie.substring ( offset, endstr ) );
}

function getCookie ( name )
{
    var arg = name + '=';
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while ( i < clen )
    {
        var j = i + alen;
        if ( document.cookie.substring ( i, j ) == arg )
        {
            return getCookieVal ( j );
        }
        i = document.cookie.indexOf ( ' ', i ) + 1;
        if ( i == 0 )
        {
        	break;
        }
    }
    return null;
}

function setCookie ( name, value, expires, path, domain, secure )
{
    var c = '';
    c = name + '=' + escape ( value ) +
    ( ( expires ) ? '; expires=' + expires.toGMTString() : '' ) +
    ( ( path ) ? '; path=' + path : '' ) +
    ( ( domain ) ? '; domain=' + domain : '' ) +
    ( ( secure ) ? '; secure' : '' );
    document.cookie = c;
}

function deleteCookie ( name, path, domain )
{
    if ( getCookie ( name ) )
    {
        document.cookie = name + '=' +
        ( ( path ) ? '; path=' + path : '' ) +
        ( ( domain ) ? '; domain=' + domain : '' ) +
        '; expires=Thu, 01-Jan-70 00:00:01 GMT';
    }
}


/* KSR Shopping Cart */
var ksr_path = '/';
var cart_name = 'ksr_cart';
var ksr_add_cart = '';
var ksr_label_delete = '';

// language specific vars
switch ( getCookie ( 'lang' ) )
{
	case 'en':
		ksr_sentence1 = '';
		ksr_sentence2 = 'On  the <b>Our Properties</b> page click on the symbol of the object.  Automatically it will be added to your list.';
		ksr_add_cart = 'Add this property to your enquiry list?';
		ksr_label_delete = 'Delete';
		ksr_label_shopping_cart = 'Shopping Cart';
		ksr_label_shopping_cart_ref = 'Reference';
		ksr_label_shopping_cart_desc = 'Description';
		ksr_no_desc = '(No description)';
		ksr_label_not_what_i_am_looking_for = 'I have not seen exactly what I am looking but I am interested in the following properties';
		ksr_label_first_name = 'Name';
		ksr_label_last_names = 'Surname';
		ksr_label_address = 'Address';
		ksr_label_phone = 'Phone/Fax';
		ksr_label_email = 'Email';
		ksr_label_submit = 'Submit';
		ksr_no_items = 'We\'re sorry. There are no items in your shopping cart.';
		break;
	case 'de':
		ksr_sentence1 = 'Wir möchten es Ihnen so einfach wie möglich machen.';
		ksr_sentence2 = 'Wenn Sie weitere Details zu unseren Angeboten wünschen oder konkrete Fragen haben, schicken Sie uns diese Nachricht.';
		ksr_add_cart = 'In den Warenkorb legen?';
		ksr_label_delete = 'Löschen';
		ksr_label_shopping_cart = 'lhr Warenkorb';
		ksr_label_shopping_cart_ref = 'Referenz';
		ksr_label_shopping_cart_desc = 'Beschreibung';
		ksr_no_desc = '';
		ksr_label_not_what_i_am_looking_for = 'Mein Wunschobjekt war nicht dabei, ich interessiere mich aber für folgende Objekte';
		ksr_label_first_name = 'Name';
		ksr_label_last_names = 'Nachname';
		ksr_label_address = 'Anschrift';
		ksr_label_phone = 'Telefon/Fax';
		ksr_label_email = 'E-mail';
		ksr_label_submit = 'Abschicken';
		ksr_no_items = 'Ihr Warenkorb ist leer!';
		break;
	default:
		ksr_sentence1 = '';
		ksr_sentence2 = 'Desde la página <b>Nuestras Ofertas</b> haga Click en el carrito de compra del inmueble. Automáticamente se añadirá a su lista.';
		ksr_add_cart = 'A\xF1adir esta propiedad a su lista?';
		ksr_label_delete = 'Eliminar';
		ksr_label_shopping_cart = 'Nuestra Cesta de la Compra';
		ksr_label_shopping_cart_ref = 'Referencia';
		ksr_label_shopping_cart_desc = 'Descripción';
		ksr_no_desc = '(Sin descripción)';
		ksr_label_not_what_i_am_looking_for = 'No he encontrado el inmueble deseado, pero estoy interesado en los siguientes inmuebles';
		ksr_label_first_name = 'Nombre';
		ksr_label_last_names = 'Apellidos';
		ksr_label_address = 'Dirección';
		ksr_label_phone = 'Teléfono/Fax';
		ksr_label_email = 'E-mail';
		ksr_label_submit = 'Enviar';
		ksr_no_items = 'Lo siento. No tiene ninguna propiedad en su carrito de la compra.';
		break;
}

function initCart ()
{
	var cart = unescape ( getCookie ( cart_name ) );
	if ( cart == 'null' || cart == null || cart == 'false' || cart == false || cart == '' )
	{
		setCookie ( cart_name, '', oneYearFromNow (), ksr_path );
	}
}

// returns the path to the current document: /path/to/current/document (minus the actual document name)
function dirname ()
{
	var path = location.pathname;
	var pathAsArray = path.split ( '/' );
	var newpath = Array (0);
	for ( i = 0; i < (pathAsArray.length - 1); i++ )
	{
		newpath[i] = pathAsArray[i];
	}
	return newpath.join ('/') + '/';
}

function indexOfItemInCart ( item )
{
	if ( trim ( item ) != '' )
	{
		var cart = unescape ( getCookie ( cart_name ) );
		return cart.indexOf ( item );
	}
	else
		return false;
}

function numberOfItemsInCart ()
{
	var items = unescape ( getCookie ( cart_name ) );
	if ( items != false && items != 'false' && items != null && items != 'null' && items.indexOf ( 'undefined' ) == -1 )
	{
		return items.length;
	}
	else
	{
		return 0;
	}
}

function addItem ( item )
{
	var cart = unescape ( getCookie ( cart_name ) );
	var myitem = unescape ( trim ( item ) );
	var formatted_item = '[' + myitem + ']';
	if ( confirm ( ksr_add_cart ) )
	{ 
		if ( cart != false && cart != null && cart != 'null' && cart != 'false' )
		{
			if ( cart.indexOf ( myitem ) == -1 )
			{
				formatted_item = cart + formatted_item;
			}
			else
			{
				alert ( 'Error: The selected item ('+myitem+') is already in the shopping cart.' );
			}
		}
		setCookie ( cart_name, formatted_item, oneYearFromNow (), ksr_path );
		Recupera_2 ();
	}
}

function removeItem ( item )
{
	var target = unescape ( getCookie ( cart_name ) );
	var myitem = unescape ( item );
	var newCart = '';
	var targetStart = target.indexOf ( myitem );
	
	if ( target == myitem )
	{
		clearCart ();
	}
	else
	{
		switch ( targetStart )
		{
			case -1:
				newCart = 'Error: The item ('+myitem+') was not found in the shopping cart.'
				break;
			case 0:
				newCart = 'Error: The item ('+myitem+') was found starting at index 0. This should not be possible.';
				break;
			case 1:
				// the target is at the beginning of the string
				newCart = target.substring ( myitem.length + 2 , target.length );
				break;
			default:
				// is it at the end of the string?
				if ( targetStart -1 == myitem.length + 2 )
				{
					newCart = target.substring ( 0, targetStart - 1 );
				}
				else
				{
					part1 = target.substring ( 0, targetStart - 1 );
					part2 = target.substring ( targetStart - 1 + myitem.length + 2, target.length );
					newCart = part1 + part2;
				}
				break;
		}
		if ( newCart.indexOf ( 'Error' ) == -1 )
		{
			setCookie ( cart_name, newCart, oneYearFromNow (), ksr_path );
			// update the display
			var oldform = document.getElementById ( 'shopping_list' );
			oldform.innerHTML = displayCartContents ();
		}
		else
		{
			alert ( 'While removing item "'+item+'" there was an error. The new cart is this: '+newCart );
		}
	}
	Recupera_2 ();
}

function clearCart ()
{
	setCookie ( cart_name, '', oneYearFromNow (), ksr_path );
	Recupera_2 ();
}

function displayCartContents ()
{
	var vRef = ''
	var result = '<form method="post" action="/scripts/form.cgi" name="form1" onsubmit="return checkout();">';
//	result += '<input type=hidden name=submit_to value=info@clevernet.biz>';
	result += '<input type=hidden name="submit_to" value="info@ksrgrancanaria.com">';
	result += '<input type=hidden name="form_id" value="Informaci&oacute;n_sobre_propiedad_'+getCookie('lang')+'">';
	result += '<input type=hidden name="ok_url" value="http://www.ksrgrancanaria.com/form-ok.ksr.html">';
	result += '<input type=hidden name="not_ok_url" value="http://www.ksrgrancanaria.com/form-fallo.html">';
	result += '<input type=hidden name="data_order" value="Referencias,Informacion,Nombre,Apellidos,Direccion,Telefono,Correo">';
	result += '<input type=hidden name="required" value="Nombre,Telefono">';
//	result += '<p><b>'+ksr_sentence1+'</b></p>';
//	result += '<p>'+ksr_sentence2+'</p>';
	result += '<table width="500" border="0">';
	var items = unescape ( getCookie ( cart_name ) );
	var item = '';
	if ( items != false && items != 'false' && items != null && items != 'null' && items.indexOf ( 'undefined' ) == -1 )
	{
		result += '<tr><td colSpan=3 bgcolor=#990000 align=center><font color=#ffffff face=Verdana size=3><b>'+ksr_label_shopping_cart+'</b></font></td></tr>';
		result += '<tr><td bgcolor=#3399cc align=center><font color=#ffffff face=Verdana size=2><b>'+ksr_label_shopping_cart_ref+'</b></font></td><td bgcolor=#3399cc align=center><font color=#ffffff face=Verdana size=2><b>'+ksr_label_shopping_cart_desc+'</b></font></td>';
		result += '<td bgcolor=#990000 align=center><font color=#ffffff face=Verdana size=2><b>'+ksr_label_delete+'</b></font></td></tr>';

		items = items.substr ( 1, ( items.length - 2 ) );
		items = items.split ( /\]\[/ );
		for ( i = 0; i < items.length; i++ )
		{
			item = items[i];
			item = item.split(/\|/);
			itemnum = item[0];
			itemname = (trim(item[1])!=''?item[1]:ksr_no_desc);
			vRef += itemnum + ': ' + itemname;
			if(i < items.length - 1)
				vRef += ', ';

			result = result + '<tr><td>'+unescape(itemnum)+'</td><td>'+itemname+'</td><td><a href="#" onclick="void(removeItem(\''+itemnum+'|'+escape ( (trim(item[1]) ) )+'\'));">'+ksr_label_delete+'</td></tr>';
		}

		result += '<tr><td colSpan=3 height=10><hr></td></tr>';
	}
	else
	{
		result += '<p class="warning">'+ksr_no_items+'</p>';
	}
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_not_what_i_am_looking_for+':</b></font></td>';
	result += '<td colSpan=2><textarea name="Informacion" rows="7" cols="36" class="text"></textarea></td></tr>';
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_first_name+':</b></font></td>';
	result += '<td><input type=text name=Nombre id="Nombre" size=35 class=text></td></tr>' ;
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_last_names+':</b></font></td>';
	result += '<td><input type=text name=Apellidos size=35 class=text></td></tr>';
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_address+':</b></font></td>';
	result += '<td><textarea name="Direccion" rows="4" cols="36" class="text"></textarea></td></tr>';
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_phone+':</b></font></td>';
	result += '<td><input type=text name=Telefono id="Telefono" class=text></td></tr>';
	result += '<tr><td align=right><font color=#000000 face=Verdana size=2><b>'+ksr_label_email+'</b></font></td>';
	result += '<td><input type=text name=Correo size=35 class=text></td></tr>';
	result += '<tr><td></td><td align=left colSpan=2>';
	result += '<input type=hidden name=Referencias value="' + vRef + '">';     
	result += '<input type="submit" value="'+ksr_label_submit+'"></td></tr></table></form>';
	return result;
}

function checkout ()
{
	var isvalid = true;
	var name = document.getElementById ( 'Nombre' );
	var phone = document.getElementById ( 'Telefono' );
	
	// validate values
	if ( trim ( name.value ) != '' && trim ( phone.value ) != '' )
		clearCart ();
	
	return isvalid;
}

function Crear_Lista ( num, iNum, iName )
{
	var mynum = ( iNum != null && iNum != 'null' ? iNum : '' );
	var myname = ( iName != null && iName != 'null' ? iName : '' );
	addItem ( mynum + '|' + myname );
}

// display a red cart if there's something in it
function Recupera_2 ()
{
	if ( document.getElementById ( 'scart' ) )
	{
		var cart = unescape ( getCookie ( cart_name ) );
		var cartimg = '';
		var imgpath = '';
		var img = document.getElementById ( 'scart' );
		
		switch ( true )
		{
			case location.pathname.indexOf ( 'dt' ) > -1:
			case location.pathname.indexOf ( 'es' ) > -1:
			case location.pathname.indexOf ( 'eng' ) > -1:
			case location.pathname.indexOf ( 'links' ) > -1:
			case location.pathname.indexOf ( 'scripts' ) > -1:
				imgpath = '../';
				break;
			default:
				imgpath = '';
				break;
		}
		
		imgpath += (location.pathname.indexOf ( 'details' ) > -1 ? '../' : '');
		
		if ( cart != '' && cart != 'null' && cart != null && cart != 'false' && cart != false && cart.indexOf ( 'undefined' ) == -1 )
		{
			// red cart
			img.src = imgpath+'img/cesta_2.gif';
		}
		else
		{
			img.src = imgpath+'img/cesta_1.gif';
		}
	}
}

initCart ();

/**** Menu highlighting functions ****/
// i figure out which menu item to highlight and return its index
function ksr_getMenuItemIndex ()
{
	if ( document.getElementById ( 'menuprincipal' ) )
	{
		var result = '';
		var mypath = location.pathname.toLowerCase ();
		var mainmenu = document.getElementById ( 'menuprincipal' );
	
		switch ( true )
		{
			case mypath.indexOf ( 'ofertas.html' ) > -1:
			case mypath.indexOf ( 'ofertames.html' ) > -1:
			case mypath.indexOf ( 'details' ) > -1:
			case mypath.indexOf ( 'appartements.html' ) > -1:
			case mypath.indexOf ( 'pisos.html' ) > -1:
			case mypath.indexOf ( 'comercios.html' ) > -1:
			case mypath.indexOf ( 'chalets.html' ) > -1:
				result = 2;
				break;
			case mypath.indexOf ( 'anfrage.html' ) > -1:
				result = 3;
				break;
			case mypath.indexOf ( 'broschuere.html' ) > -1:
			case mypath.indexOf ( 'finanz.html' ) > -1:
			case mypath.indexOf ( 'gc_Entfernungen.html' ) > -1:
			case mypath.indexOf ( 'gc_Geografie.html' ) > -1:
			case mypath.indexOf ( 'gc_index.html' ) > -1:
			case mypath.indexOf ( 'links_index.html' ) > -1:
			case mypath.indexOf ( 'recht' ) > -1:
			case mypath.indexOf ( 'service.html' ) > -1:
			case mypath.indexOf ( 'veroeffentlichung.html' ) > -1:
			case mypath.indexOf ( 'links/link' ) > -1:
				result = 4;
				break;
			case mypath.indexOf ( 'verkauf.html' ) > -1:
				result = 5;
				break;
			case mypath.indexOf ( 'kontakt.html' ) > -1:
				result = 6;
				break;
			case mypath.indexOf ( 'recomendacion' ) > -1:
				switch ( getCookie ( 'lang' ) )
				{
					case 'en':
						mainmenu = document.getElementById ( 'english_menu' );
						break;
					case 'de':
						mainmenu = document.getElementById ( 'german_menu' );
						break;
					default:
						mainmenu = document.getElementById ( 'spanish_menu' );
						break;
				}
				result = 7;
				break;
			case mypath.indexOf ( 'es/' ) > -1:
			case mypath.indexOf ( 'eng/' ) > -1:
			case mypath.indexOf ( 'dt/' ) > -1:
				result = 1;
				break;
		}
		var children = mainmenu.getElementsByTagName ( 'a' );
		children[result - 1].style.color = 'red';
	}
	else
	{
		switch ( getCookie ( 'lang' ) )
		{
			case 'en':
				mainmenu = document.getElementById ( 'english_menu' );
				break;
			case 'de':
				mainmenu = document.getElementById ( 'german_menu' );
				break;
			default:
				mainmenu = document.getElementById ( 'spanish_menu' );
				break;
		}
		result = 7;
//		var children = mainmenu.getElementsByTagName ( 'a' );
//		children[result - 1].style.color = 'red';
	}
}

