var fullTextFlag = 0;
addthis_pub  = 'ChildFriendly';

var photoProductsResponseItems = [];


var loaded = false;

function startLoading() {
    loaded = false;
    window.setTimeout('showLoadingImage()', 1000);
}

function showLoadingImage() {
    var el = $("ajaxLoading");
    if (el && !loaded) {
        new Effect.Appear('ajaxLoading');
    } else {
        var el = $("defaultAjaxLoading");
        if (el && !loaded) {
            new Effect.Appear('defaultAjaxLoading');
        }
    }
}

function stopLoading() {
    var el = $("ajaxLoading");
    if (el) {
        Element.hide('ajaxLoading');
    } else {
        var el = $("defaultAjaxLoading");
        if (el) {
            Element.hide('defaultAjaxLoading');
        }
    }
    loaded = true;
}

Ajax.Responders.register({
    onCreate : startLoading,
    onComplete : stopLoading
});


function wireFrame() {
    var introText = document.getElementById('introText');
    var fullText  = document.getElementById('fullText');
    var wLabel    = document.getElementById('wLabel');

    if (fullTextFlag == 0) {
        fullTextFlag = 1;
        wLabel.innerHTML = 'Hide details';
        fullText.style.display = 'block';
    } else {
        fullTextFlag = 0;
        wLabel.innerHTML = 'Read more';
        fullText.style.display = 'none';
    }
}

function getPageSize(){
    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else if (document.documentElement && document.documentElement.scrollHeight > document.documentElement.offsetHeight){ // Explorer 6 strict mode
        xScroll = document.documentElement.scrollWidth;
        yScroll = document.documentElement.scrollHeight;
    } else { // Explorer Mac...would also work in Mozilla and Safari
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;
    if (self.innerHeight) { // all except Explorer
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }

    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }

    return {'pageWidth': pageWidth,
             'pageHeight': pageHeight,
             'windowWidth': windowWidth,
             'windowHeight': windowHeight};
}

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

function reviewsPodRequest(productTypeId, div) {
    setCookie('reviewsPod-productTypeId', productTypeId);
    
    var els = document.getElementsByName('productTypeId');
    for (i = 0; i < els.length; i++) {
        if ($(els[i]).value == productTypeId) {
            $(els[i]).parentNode.className = 'selected';
        } else {
            $(els[i]).parentNode.className = '';
        }
    }
    
    div.update("<img style='left: 50%; margin-left: -28px; margin-top: -3px; top: 50%; position: relative;' src='/i/admin/wait.gif'>");
	new Ajax.Request('/reviews/podResult', {
		method: 'post',
		postBody: 'productTypeId='+productTypeId,
		onSuccess: function(transport) {
			var json = eval('('+transport.responseText+')');
			if ($('productTypeHeadTitle') != undefined && json.productTypeTitle != undefined) {
			    $('productTypeHeadTitle').update(json.productTypeTitle.replace(/s$/, '').replace('Out', 'out')+' reviews');
			}
			var els = document.getElementsByName('productTypeId');
			if ($('seeMoreReviews') != undefined) {
				$('seeMoreReviews').setAttribute('href', json.seeMoreReviews);
			}
			if ($('reviewsPodContainer') != undefined) {
				$('reviewsPodContainer').update('');
				for (i=0; i<json.items.length; i++) {
					var item = json.items[i];
					var row = new Element('div');
					row.writeAttribute('class', 'row');
					row.writeAttribute('id', 'row' + i);
					
					var left = new Element('div');
					left.writeAttribute('class', 'left');
					left.writeAttribute('id', 'left' + i);
					
					var div  = new Element('div');
					
					var a = new Element('a');
					a.setAttribute('href', item.product.url);
					a.update(item.product.title);
					
					div.appendChild(a);
					div.update(div.innerHTML+', '+item.product.city.title);
					
					left.appendChild(div);
					
					row.appendChild(left);
					
					var right = new Element('div');
					right.writeAttribute('class', 'right');
					right.writeAttribute('id', 'right' + i);
					right.update(item.ratingHtml);
					
					row.appendChild(right);
					
					$('reviewsPodContainer').appendChild(row);
					
					document.getElementById('row' + i).setAttribute('class', 'row');
					document.getElementById('left' + i).setAttribute('class', 'left');
					document.getElementById('right' + i).setAttribute('class', 'right');
				}
			}
		}
	});
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function strpos(haystack, needle, offset) {
	var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
	return i === -1 ? false : i;
}

function bindProductPhoto(i) {
	var item = photoProductsResponseItems[i];
	for (i=0; i<=4; i++) {
		document.getElementById('bindEl'+i).style.display = 'none';
	}
	document.getElementById('bindId').value = (document.getElementById('productTypeId').value > 0 ? 
											   		document.getElementById('productTypeId').value : 
											   		item.productTypeId)+':'+item.id;
	document.getElementById('unbindEl0').style.display    = 'block';
	if (document.getElementById('photoBind')) {
		document.getElementById('photoBind').style.display    = 'none';
	}
	if (document.getElementById('pagination')) {
		document.getElementById('pagination').style.display   = 'none';
	}
	document.getElementById('bindTitle').innerHTML  = item.country+', '+item.region+', '+item.city+', '+item.title;
	document.getElementById('bindTitle').innerHTML += ' <a href="javascript:void(0);" onClick="unbindProductPhoto()" style="font-weight: bold;">Change</a>';
}

function unbindProductPhoto() {
	document.getElementById('bindId').value = '0';
	document.getElementById('unbindEl0').style.display = 'none';
	for (i=0; i<=4; i++) {
		document.getElementById('bindEl'+i).style.display = 'block';
	}
}

function reviewsSearchRequest(str, userId) {
	if (str) {
		new Ajax.Request('/user/reviews/', {
			method: 'post',
			postBody: 'q='+str+'&userId='+userId,
			onSuccess: reviewsResponse
			});
	} else {
		new Ajax.Request('/user/reviews/', {
			method: 'post',
			postBody: 'userId='+userId,
			onSuccess: reviewsResponse
			});
	}
}

// *******************************************************************
function facilitiesRequest(productTypeId) {
	new Ajax.Request('/profile_reviews/resultFacilities', {
		method: 'post',
		postBody: 'productTypeId='+productTypeId,
		onSuccess: facilitiesResponse
	});	
}

function facilitiesResponse(transport) {
	var json = eval('('+transport.responseText+')');
	var result = $('facilitiesResult');
	if (json.items.length > 0) {
		result.update('');
		for (i=0; i<json.items.length; i++) {
			var item = json.items[i];
			var div = new Element('DIV');
			div.setStyle({float: 'left', width: '110px'})
			var input   = new Element('INPUT', {type: 'checkbox',
												autocomplete: 'off'});
			input.name  = 'facilityIds[]';
			input.value = item.id;
			div.appendChild(input);
			div.appendChild(document.createTextNode(' '+item.title));
			result.appendChild(div);
		}
		$('facilitiesContainer').style.display = 'block';
	} else {
		$('facilitiesContainer').style.display = 'none';
	}
}

function reviewsRequest(str) {
	document.getElementById('resultContainer').style.display = 'none';
	if (document.getElementById('pagination')) {
		document.getElementById('pagination').style.display  = 'none';
	}
	if (str != undefined) {
		new Ajax.Request('/user/reviews', {
			method: 'post',
			postBody: str,
			onSuccess: reviewsResponse
		});
	} else {
		alert('Internal error');
	}
}

function eventsRequest(str) {
	document.getElementById('resultContainer').style.display = 'none';
	if (document.getElementById('pagination')) {
		document.getElementById('pagination').style.display  = 'none';
	}
	if (str != undefined) {
		new Ajax.Request('/user/events', {
			method: 'post',
			postBody: str,
			onSuccess: eventsResponse
		});
	} else {
		alert('Internal error');
	}
}

function deleteReviewsRequest(id) {
    $('delete' + id).setStyle({
        color: 'gray'
    });
    $('delete' + id).writeAttribute('href', 'javascript: void(0);')
    $('edit' + id).setStyle({
        color: 'gray'
    });
    $('edit' + id).writeAttribute('href', 'javascript: void(0);')
	new Ajax.Request('/profile_reviews/delete', {
		method: 'post',
		postBody: 'id='+id,
		onSuccess: deleteReviewsResponse
	});	
}

function deleteReviewsResponse(transport) {
	var json = eval('('+transport.responseText+')');
	if (json.success) {
		$('edit'+json.id).style.visibility = 'hidden';
		$('delete'+json.id).update('Deleted');
		$('delete'+json.id).setStyle({
	        color: 'white'
	    });
	} else {
		alert('Internal Error');
	}
}

function pagination(obj, code, total, limit, page) {
	var pages = Math.floor(total/limit);
	pages = (total%limit > 0 ? pages+1 : pages);
	if (pages > 1) {
		var pagination = obj;
		pagination.style.display = 'block';
		pagination.innerHTML = '';
		for (i=1; i<=pages; i++) {
			if (i == 1) {
				if (page-1 > 0) {
					var a = document.createElement('A');
					a.innerHTML = 'Prev';
					a.href = code.replace('%d', (page-1));
					a.setAttribute('class','arrPrev');
					//a.addClassName('arrPrev');
					pagination.appendChild(a);
					pagination.appendChild(document.createTextNode("\n"));
				}else{
					var a = document.createElement('A');
					a.innerHTML = 'Prev';
					a.href = '#';
					a.setAttribute('class','arrPrev');
					//a.addClassName('arrPrev');alert(pages);
					pagination.appendChild(a);
					pagination.appendChild(document.createTextNode("\n"));
				}
				var s = document.createElement('SPAN');
				s.innerHTML = '|';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var s = document.createElement('SPAN');
			s.innerHTML = '|';
			if (i>1) {
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var a = document.createElement('A');
			a.innerHTML = i;
			a.href = code.replace('%d', i);
			if (i == page) {
				a.style.color = '#0099FF';
				a.style.textDecoration = 'none';
				a.style.fontWeight = 'bold';
				a.style.height = '16px';
				a.style.lineHeight = '16px';
			}else{
				a.style.color = '#666666';
				a.style.textDecoration = 'none';
				a.style.fontWeight = 'normal';
				a.style.height = '16px';
				a.style.lineHeight = '16px';
			}
			pagination.appendChild(a);
			pagination.appendChild(document.createTextNode("\n"));
			if (i == pages) {
				var s = document.createElement('SPAN');
				s.innerHTML = '|';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
				if (page+1 > pages) {
					var a = document.createElement('A');
					a.innerHTML = 'Next';
					a.href = '#';
					//a.addClassName('arrNext');
					a.setAttribute('class','arrNext');
					pagination.appendChild(a);
					pagination.appendChild(document.createTextNode("\n"));					
				}else{
					var a = document.createElement('A');
					a.innerHTML = 'Next';
					a.href = code.replace('%d', (page+1));
					//a.addClassName('arrNext');
					a.setAttribute('class','arrNext');
					pagination.appendChild(a);
					pagination.appendChild(document.createTextNode("\n"));
				}
			}
		}
	}
}

function reviewsResponse(transport) {
	var json = eval('('+transport.responseText+')');
	var container = document.getElementById('resultContainer');
	container.innerHTML = '';
	if (json.total > 0) {
		container.style.display = 'block';
	} else {
		container.innerHTML = '<div style="text-align: center; font-weight: bold; margin-top: 15px;">Not found.</div>';
	}
	for (i=0; i<json.items.length; i++) {
		var item = json.items[i];
		
		var div0 = new Element('DIV');
		div0.addClassName('headhot');
		var div1 = new Element('DIV');
		div1.addClassName('namehot');
		if (item.product.id != undefined) {
			var s = item.product.url;
		} else {
			var s = 'javascript:void(0);';
		}
		div1.update('<div style="float: left;"><a href="'+s+'" style="text-decoration: none;">'+item.product.title+'</a></div>'+item.htmlRating);
		div0.appendChild(div1);
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.addClassName('boxhot');
		var div1 = new Element('DIV');
		div1.addClassName('imghot');
		var a = new Element('a', {'href': s});
		var img  = new Element('img', {'border': '0'});
		if (item.product.images != undefined && item.product.images.length > 0) {
			img.src  = '/image/?path='+item.product.images[0]+'&w=121&h=92';
		} else {
			img.src  = '/image/?path=/i/error.jpg&w=121&h=92';
		}
		a.appendChild(img);
		div1.appendChild(a);
		div0.appendChild(div1);
		
		var div1 = new Element('DIV');
		div1.addClassName('conthot');
		
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.setStyle({float: 'left'});
		div2.innerHTML = item.title;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.setStyle({float: 'right'});
		div2.innerHTML = item.curDatetime;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('desc');
		div2.innerHTML = item.text;
		div1.appendChild(div2);
	
		/*
		var div2 = new Element('DIV');
		div2.addClassName('select');
		div2.setStyle({float: 'right',
					   marginTop: '5px'});
		div2.innerHTML = '<a href="'+s+'" id="select'+item.id+'">Select</a>';
		div1.appendChild(div2);
		*/
		if (json.auth == true) {
			var div2 = new Element('DIV');
			div2.addClassName('select');
			div2.setStyle({float: 'right',
					marginTop: '5px'});
			div2.innerHTML = '<a href="/profile_reviews/edit/id/'+item.id+'/page/'+json.page+'" class="bt2" id="edit'+item.id+'">Edit</a>';
			div1.appendChild(div2);
		
			var div2 = new Element('DIV');
			div2.addClassName('select');
			div2.setStyle({float: 'right',
							marginTop: '5px',
							marginRight: '10px'});
			div2.innerHTML = '<a href="javascript:void(0);" onClick="deleteReviewsRequest('+item.id+');" class="bt2" id="delete'+item.id+'">Delete</a>';
			div1.appendChild(div2);
		}
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.setStyle({clear: 'both',
					   paddingTop: '3px'});
		container.appendChild(div0);
	}
	$('pagination').style.display = 'none';
	if (json.q != undefined) {
		$('searchQ').value = json.q;
		pagination($('pagination'), "javascript:reviewsRequest('page=%d&q="+json.q+"&userId="+json.userId+"')", json.total, json.limit, json.page);
	} else {
		pagination($('pagination'), "javascript:reviewsRequest('page=%d&userId="+json.userId+"')", json.total, json.limit, json.page);
	}
}

function eventsResponse(transport) {
	var json = eval('('+transport.responseText+')');
	var container = document.getElementById('resultContainer');
	container.innerHTML = '';
	if (json.total > 0) {
		container.style.display = 'block';
	} else {
		container.innerHTML = '<div style="text-align: center; font-weight: bold; margin-top: 15px;">Not found.</div>';
	}
	for (i=0; i<json.items.length; i++) {
		var item = json.items[i];
		
		var div0 = new Element('DIV');
		div0.addClassName('headhot');
		var div1 = new Element('DIV');
		div1.addClassName('namehot');
		if (item.product.id != undefined) {
			var s = item.product.url;
		} else {
			var s = 'javascript:void(0);';
		}
		div1.update('<div style="float: left;"><a href="'+s+'" style="text-decoration: none;">'+item.product.title+'</a></div>'+item.htmlRating);
		div0.appendChild(div1);
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.addClassName('boxhot');
		var div1 = new Element('DIV');
		div1.addClassName('imghot');
		var a = new Element('a', {'href': s});
		var img  = new Element('img', {'border': '0'});
		if (item.product.images != undefined && item.product.images.length > 0) {
			img.src  = '/image/?path='+item.product.images[0]+'&w=121&h=92';
		} else {
			img.src  = '/image/?path=/i/error.jpg&w=121&h=92';
		}
		a.appendChild(img);
		div1.appendChild(a);
		div0.appendChild(div1);
		
		var div1 = new Element('DIV');
		div1.addClassName('conthot');
		
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.setStyle({float: 'left'});
		div2.innerHTML = item.title;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.setStyle({float: 'right'});
		div2.innerHTML = item.curDatetime;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('desc');
		div2.innerHTML = item.text;
		div1.appendChild(div2);
			
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.setStyle({clear: 'both',
					   paddingTop: '3px'});
		container.appendChild(div0);
	}
	$('pagination').style.display = 'none';
	if (json.q != undefined) {
		$('searchQ').value = json.q;
		pagination($('pagination'), "javascript:eventsRequest('page=%d&q="+json.q+"&userId="+json.userId+"')", json.total, json.limit, json.page);
	} else {
		pagination($('pagination'), "javascript:eventsRequest('page=%d&userId="+json.userId+"')", json.total, json.limit, json.page);
	}
}

function reviewsProductsRequest(str) {
	$('informationBlock').setStyle({display: 'none'});
	$('searchBlock').setStyle({marginTop: '0px'});
	if (trim($('place').value) != '' && trim($('location').value) != '') {
		$('resultH').update('Results for &quot;'+trim($('place').value)+'&quot; in &quot;'+trim($('location').value)+'&quot;');
	} else if (trim($('place').value) != '') {
		$('resultH').update('Results for &quot;'+trim($('place').value)+'&quot;');
	} else if (trim($('location').value) != '') {
		$('resultH').update('Results in &quot;'+trim($('location').value)+'&quot;');
	} else {
		$('resultH').update('Results');
	}
	document.getElementById('result').style.display     = 'none';
	document.getElementById('pagination').style.display = 'none';
	if (str != undefined) {
		new Ajax.Request('/profile_reviews/products', {
			method: 'post',
			postBody: str,
			onSuccess: reviewsProductsResponse
		});
	} else {
		new Ajax.Request('/profile_reviews/products', {
			method: 'post',
			postBody: 'place='+$('place').value+'&location='+$('location').value,
			onSuccess: reviewsProductsResponse
		});
	}
}

function reviewsProductsResponse(transport) {
	var json = eval('('+transport.responseText+')');
	if (json.total > 0) {
		var container = document.getElementById('resultContainer');
		container.innerHTML = '';
		document.getElementById('result').style.display = 'block';
	}
	if ($('place-block') != undefined) {
		$('place-block').setStyle({'display': 'block'});
	}
	photoProductsResponseItems = json.items;
	for (i=0; i<json.items.length; i++) {
		var item = json.items[i];
		var div0 = new Element('DIV');
		div0.addClassName('headhot');
		var div1 = new Element('DIV');
		div1.addClassName('namehot');
		var a    = new Element('a');
		a.setStyle({textDecoration: 'none'});
		a.setAttribute('href', item.url);
		a.update(item.title);
		div1.appendChild(a);
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.addClassName('boxhot');
		var div1 = new Element('DIV');
		div1.addClassName('imghot');
		var a = new Element('a', {'href': item.url});
		var img  = new Element('IMG', {'border': '0'});
		if (item.image != '') {
			img.src  = '/image/?path='+item.image+'&w=121&h=92';
		} else {
			img.src  = '/image/?path=/i/error.jpg&w=121&h=92';
		}
		img.setStyle({width:  '121px',
					  height: '92px'});
		a.appendChild(img);
		div1.appendChild(a);
		div0.appendChild(div1);
		var div1 = new Element('DIV');
		div1.addClassName('conthot');
		var div2 = new Element('DIV');
		div2.addClassName('title');
		if (item.category == false) {
			div2.innerHTML = item.productTypeTitle;
		} else {
			div2.innerHTML = item.productTypeTitle+' / '+item.category.title;
		}
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.innerHTML = item.country+', '+item.region+', '+item.city;
		if (item.postcode) {
			div2.innerHTML += ', '+item.postcode;
		}
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('desc');
		div2.innerHTML = item.about;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('select');
		div2.setStyle({float: 'right',
					   marginTop: '5px'});
		div2.innerHTML = '<a href="/profile_reviews/add/productTypeId/'+item.productTypeId+'/id/'+item.id+'" class="bt2">Review</a>';
		div1.appendChild(div2);
			
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.setStyle({clear: 'both',
					   paddingTop: '3px'});
		container.appendChild(div0);
	}
	
	var page        = json.page;
	var total       = json.total;
	var itemsOnPage = json.limit;
	var pages = Math.floor(total/itemsOnPage);
	pages = (total%itemsOnPage > 0 ? pages+1 : pages);
	if (pages > 1) {
		var pagination = document.getElementById('pagination');
		pagination.style.display = 'block';
		pagination.innerHTML = '';
		for (i=1; i<=pages; i++) {
			if (i == 1) {
				var s = document.createElement('SPAN');
				s.innerHTML = '&lt;';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var s = document.createElement('SPAN');
			s.innerHTML = '|';
			if (i>1) {
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var a = document.createElement('A');
			a.innerHTML = i;
			var s = 'location='+json.location+'&place='+json.place+'&page='+i;
			a.href = "javascript:reviewsProductsRequest('"+s+"')";
			if (i == page) {
				a.style.color = '#494949';
				a.style.textDecoration = 'none';
			}
			pagination.appendChild(a);
			pagination.appendChild(document.createTextNode("\n"));
			if (i == pages) {
				var s = document.createElement('SPAN');
				s.innerHTML = '&gt;';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
		}
	}
}

function photoProducts1Request(str) {
	var productTypeId = document.getElementById('productTypeId').value;
	var countryId     = document.getElementById('countryId').value;
	var regionId      = document.getElementById('regionId').value;
	var cityId        = document.getElementById('cityId').value;
	
	document.getElementById('photoBind').style.display = 'none';
	document.getElementById('pagination').style.display = 'none';

	if (str != '') {
		new Ajax.Request('/profile_photo/products', {
			method: 'post',
			postBody: str,
			onSuccess: photoProductsResponse
		});		
	} else {
		new Ajax.Request('/profile_photo/products', {
			method: 'post',
			postBody: 'productTypeId='+productTypeId+'&countryId='+countryId+'&regionId='+regionId+'&cityId='+cityId,
			onSuccess: photoProductsResponse
		});
	}
}

function photoProductsResponse(transport) {
	var container = document.getElementById('photoBindContainer');
	container.innerHTML = '';
	document.getElementById('photoBind').style.display = 'block';
	var json = eval('('+transport.responseText+')');
	photoProductsResponseItems = json.items;
	for (i=0; i<json.items.length; i++) {
		var item = json.items[i];
		var div0 = new Element('DIV');
		div0.addClassName('headhot');
		var div1 = new Element('DIV');
		div1.addClassName('namehot');
		div1.update(item.title);
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.addClassName('boxhot');
		var div1 = new Element('DIV');
		div1.addClassName('imghot');
		var img  = new Element('IMG');
		img.src  = '/image/?path='+item.image+'&w=121&h=92';
		div1.appendChild(img);
		div0.appendChild(div1);
		var div1 = new Element('DIV');
		div1.addClassName('conthot');
		var div2 = new Element('DIV');
		div2.addClassName('title');
		div2.innerHTML = item.country+', '+item.region+', '+item.city;
		div1.appendChild(div2);
		var div2 = new Element('DIV');
		div2.addClassName('desc');
		div2.innerHTML = item.description;
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('select');
		div2.setStyle({float: 'right',
					   marginTop: '5px'});
		div2.innerHTML = '<a href="javascript:void(0);" onClick="bindProductPhoto('+i+')">Bind</a>';
		div1.appendChild(div2);
		
		var div2 = new Element('DIV');
		div2.addClassName('select');
		div2.setStyle({float: 'right',
					   marginRight: '10px',
					   marginTop: '5px'});
		div2.innerHTML = '<a href="'+item.url+'" target="_blank">Select</a>';
		div1.appendChild(div2);
		
		div0.appendChild(div1);
		container.appendChild(div0);
		var div0 = new Element('DIV');
		div0.setStyle({clear: 'both',
					   paddingTop: '3px'});
		container.appendChild(div0);
	}
	
	var page        = json.page;
	var total       = json.total;
	var itemsOnPage = json.limit;
	var pages = Math.floor(total/itemsOnPage);
	pages = (total%itemsOnPage > 0 ? pages+1 : pages);
	if (pages > 1) {
		var pagination = document.getElementById('pagination');
		pagination.style.display = 'block';
		pagination.innerHTML = '';
		for (i=1; i<=pages; i++) {
			if (i == 1) {
				var s = document.createElement('SPAN');
				s.innerHTML = '&lt;';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var s = document.createElement('SPAN');
			s.innerHTML = '|';
			if (i>1) {
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
			var a = document.createElement('A');
			a.innerHTML = i;
			var s = 'productTypeId='+json.productTypeId+'&countryId='+json.countryId+'&regionId='+json.regionId+'&cityId='+json.cityId+'&page='+i;
			a.href = "javascript:photoProductsRequest('"+s+"')";
			if (i == page) {
				a.style.color = '#494949';
				a.style.textDecoration = 'none';
			}
			pagination.appendChild(a);
			pagination.appendChild(document.createTextNode("\n"));
			if (i == pages) {
				var s = document.createElement('SPAN');
				s.innerHTML = '&gt;';
				pagination.appendChild(s);
				pagination.appendChild(document.createTextNode("\n"));
			}
		}
	}
}

function photoBindRequest(obj) {
	if (obj.value != '0' && obj.id == 'countryId') {
		$('regionId').style.display = 'block';
	} else if (obj.id != 'regionId' && obj.id != 'cityId') {
		$('regionId').style.display = 'none';
	} else if (obj.value != '0' && obj.id == 'regionId') {
		$('cityId').style.display = 'block';		
	} else if (obj.id != 'cityId') {
		$('cityId').style.display = 'none';
	}
	
	if (obj.value == '0' && obj.id == 'productTypeId') {
		$('countryId').style.display = 'none';
		$('regionId').style.display  = 'none';
		$('cityId').style.display    = 'none';
		document.getElementById('photoBind').style.display = 'none';
		document.getElementById('pagination').style.display = 'none';
	} else {
		new Ajax.Request('/profile_photo/bind', {
			method: 'post',
			postBody: 'productTypeId='+$('productTypeId').value+'&key='+obj.id+'&value='+obj.value,
			onSuccess: photoBindResponse
		});
	}
}

function photoBindResponse(transport) {
	var json = eval('('+transport.responseText+')');
	if (json.countries) {
		var box = document.getElementById('countryId'); 
		box.options.length = 0;
		for (i=-1; i<json.countries.length; i++) {
			var option = document.createElement('OPTION');
			if (i == -1) {
				option.value     = '0';
				option.innerHTML = 'All';
			} else {
				var country      = json.countries[i];
				option.value     = country.id;
				option.innerHTML = country.title;
			}
			box.appendChild(option);
		}
		$('countryId').style.display = 'block';
	}
	if (json.regions) {
		var box = document.getElementById('regionId');
		box.options.length = 0;
		for (i=-1; i<json.regions.length; i++) {
			var option = document.createElement('OPTION');
			if (i == -1) {
				option.value     = '0';
				option.innerHTML = 'All';
			} else {
				var region       = json.regions[i];
				option.value     = region.id;
				option.innerHTML = region.title;				
			}
			box.appendChild(option);
		}
	}
	if (json.cities) {
		var box = document.getElementById('cityId');
		box.options.length = 0;
		for (i=-1; i<json.cities.length; i++) {
			var option       = document.createElement('OPTION');
			if (i == -1) {
				option.value     = '0';
				option.innerHTML = 'All';
			} else {
				var city         = json.cities[i];
				option.value     = city.id;
				option.innerHTML = city.title;				
			}
			box.appendChild(option);
		}
	}
}

function showFacilityHint(title) {
}

function hideFacilityHint() {
}

function changeStatus(statusBanner) {
  window.status = statusBanner;
  return true;
}

function showDestinations()
{
  flag = true;
  if (document.getElementById("destinations_block").style.display == "none") {
    document.getElementById("destinations_block").style.display = "block";
    flag = false;
  }
  if (document.getElementById("destinations_block").style.display == "block" && flag) {
    document.getElementById("destinations_block").style.display = "none";
  }
}

function print_r(obj)
{
  str="";
  for(i in obj) {
    str+=i+":"+obj[i]+"\n";
  }
  return str;
}

function showDestinationsCountry(countryId)
{
  flag = true;
  var objects;
  var tmpid;
  if (document.getElementById("destinations_block"+countryId).style.display == "none") {
    objects = document.getElementById("destinations_block").getElementsByTagName("div");
    for(i = 0; i < objects.length; i++) {
      objects[i].style.display = "none";
      tmpid = objects[i].id;
      document.getElementById(tmpid+"_").style.color = "#797979";
    }
    document.getElementById("destinations_block"+countryId).style.display = "block";
    document.getElementById("destinations_block"+countryId+"_").style.color = "#4f4f4f";
    flag = false;
  }
  if (document.getElementById("destinations_block"+countryId).style.display == "block" && flag) {
    document.getElementById("destinations_block"+countryId).style.display = "none";
    document.getElementById("destinations_block"+countryId+"_").style.color = "#797979";
  }
}

function findUsersRequest(str, page) {
	var pagination  = $('pagination');
	pagination.update('');
	var resultBlock = $('resultBlock');
	resultBlock.style.display = 'none';
	var wait = $('wait');
	wait.style.display = 'inline';
	new Ajax.Request('/profile_friends/result', {
		method: 'post',
		postBody: 'limit=8&q='+str+'&page='+page,
		onSuccess: findUsersResponse
	});
}

function friendFriendRequest(userId, page, limit) {
	var resultBlock = $('resultBlock');
	resultBlock.style.display = 'none';
	var wait = $('wait');
	wait.style.display = 'inline';
	new Ajax.Request('/user/friendsResult', {
		method: 'post',
		postBody: 'limit='+limit+'&userId='+userId+'&page='+page,
		onSuccess: findUsersResponse
	});	
}

function userFriendRequest(userId, limit, page, type, container)
{
	new Ajax.Request('/profile_friends/result', {
		method: 'post',
		postBody: 'limit='+limit+'&userId='+userId+'&page='+page+'&container='+container+'&type='+type,
		onSuccess: userFriendResponse
	}); 
}

function bindUserFriendRequest(userId, toggle, mess, obj) {
	var div = obj.parentNode;
	if (div) {
		var img = document.createElement('IMG');
		img.setAttribute('align', 'texttop');
		img.setAttribute('style', 'border: 0; float: none; margin-left: 3px;');
		img.setAttribute('src', '/i/wait.gif');
		img.setAttribute('id', 'wait_'+userId);
		div.appendChild(img);
	}
	new Ajax.Request('/profile_friends/bind', {
		method: 'post',
		postBody: 'userId='+userId+'&toggle='+toggle,
		onSuccess: bindUserFriendResponse(userId, toggle, obj, mess, img)
	});
}

function bindUserFriendResponse(userId, toggle, obj, mess, img)
{
	if (toggle == false) {
		obj.innerHTML = mess;
		obj.setAttribute('style', 'color: #ff0000;');
		obj.setAttribute('onClick', '');
	} else {
		obj.innerHTML = mess+' &gt;';
		obj.setAttribute('style', 'color: #38abff;');
		obj.setAttribute('onClick', '');
	}
	img.parentNode.removeChild(img);
}

function userFriendResponse(transport) {
	var json          = eval('('+transport.responseText+')');
	var users         = json.items;
	var total         = json.total;
	var q             = json.q;
	var page          = json.page;
	var limit         = json.limit;
	var userId        = json.userId;
	var containerName = json.container; 
	var type          = json.type;
	q = q.split('"').join("'");
	q = q.split("'").join("\\\"");

	var container = $(containerName);	
	container.update('');

	var itemsOnPage = limit;
	var pages = Math.floor(total/itemsOnPage);
	pages = (total%itemsOnPage > 0 ? pages+1 : pages);
	pagination($(containerName+'Pagination'), "javascript:userFriendRequest('"+userId+"', "+limit+", '%d', '"+type+"', '"+containerName+"');", total, limit, page);

	var k    = 2;
	var mod  = users.length%k;
	var rows = Math.floor(users.length/k);
	if (mod > 0) rows += 1;

	for (i=0; i<rows; i++) {
		var tr0 = new Element('TR');
		var tr1 = new Element('TR');
		for (j=(i*k); j<((i*k)+k); j++) {
			var td0 = new Element('TD');
			if (users[j]) {
				// image 
				var img = new Element('IMG');
				img.setAttribute('src', '/image/?path='+users[j].photo+'&w=100&h=120');
				td0.appendChild(img);

				// link
				var a = new Element('A');
				a.setAttribute('href', users[j].href);
				if (users[j].username.length > 13 && (users[j].username.indexOf(' ') > 13 || users[j].username.indexOf(' ') <= 0)) {
					a.update(trim(users[j].username.substr(0, 10))+'...');
				} else {
					a.update(users[j].username);
				}
				a.setAttribute('title', users[j].username);
				td0.appendChild(a);

				var div0 = new Element('DIV');
				// city
				if (trim(users[j].city) != '') {
					var div  = new Element('DIV');
					div.update(users[j].city);
					div0.appendChild(div);
				}

				// join
				var div  = new Element('DIV');
				div.update('Joined '+users[j].curDatetime);
				div0.appendChild(div);

				// points
				var div  = new Element('DIV');
				div.update(users[j].points+' points');
				div0.appendChild(div);
				
				td0.appendChild(div0);

				// link
				var div0 = new Element('DIV');
				div0.setStyle({'clear': 'both'});
				var a = new Element('A');
				a.update('Remove as friend &gt;');
				a.setAttribute('href', 'javascript:void(0);');
				a.setAttribute('onClick', 'bindUserFriendRequest('+users[j].id+', false, \'Removed\', this);');
				div0.appendChild(a);
				td0.appendChild(div0);
			} else {
				td0.innerHTML = '';
			}
			tr0.appendChild(td0);
		}
		container.appendChild(tr0);
	}
}

function findUsersResponse(transport) {
	var resultBlock = $('resultBlock');
	resultBlock.style.display = 'block';

	var wait = $('wait');
	wait.style.display = 'none';

	var json      = eval('('+transport.responseText+')');
	var users     = json.items;
	var total     = json.total;
	var q         = json.q;
	var page      = json.page;
	q = q.split('"').join("'");
	q = q.split("'").join("\\\"");

	var container = $('tbody');	
	container.update('');
	if (json.type != '-1') {
		pagination($('pagination'), "javascript:friendFriendRequest("+json.userId+", %d, "+json.limit+");", total, json.limit, page);
	} else {
		pagination($('pagination'), "javascript:findUsersRequest('"+q+"', %d);", total, json.limit, page);
	}
		
	var k    = 4;
	var mod  = users.length%k;
	var rows = Math.floor(users.length/k);
	if (mod > 0) rows += 1;

	for (i=0; i<rows; i++) {
		var tr0 = document.createElement('TR');
		var tr1 = document.createElement('TR');
		for (j=(i*k); j<((i*k)+k); j++) {
			var td0 = document.createElement('TH');
			if (users[j]) {
				var a = document.createElement('A');
				a.setAttribute('href', users[j].href);
				if (users[j].username.length > 16) {
					a.innerHTML = users[j].username.substring(0, 16)+'... &gt;';
				} else {
					a.innerHTML = users[j].username+' &gt;';
				}
				a.setAttribute('title', users[j].username);
				td0.appendChild(a);
			}
			tr0.appendChild(td0);

			var td1 = document.createElement('TD');
			if (users[j]) {
				var a   = document.createElement('A');
				a.setAttribute('href', users[j].href);
				var img = document.createElement('IMG');
				img.setAttribute('src', '/image/?path='+users[j].photo+'&w=100&h=120');
				a.appendChild(img);
				td1.appendChild(a);
			} else {
				td1.innerHTML = '';
			}
			tr1.appendChild(td1);
		}
		container.appendChild(tr0);
		container.appendChild(tr1);
	}
	if (rows == 0) {
		container.innerHTML = 'Sorry, but user not found.'
	}
}

function removePhotoRequest(id, mess) {
	new Ajax.Request('/profile_photo/remove/id/'+id, {
		method: 'post',
		postBody: 'mess='+mess,
		onSuccess: removePhotoResponse
	}); 
}

function removePhotoResponse(transport) {
	var json = eval('('+transport.responseText+')');
	var mess = json.mess;
	if (json.flag) {
		if ($('removeLink'+json.id) && $('link'+json.id)) {
			var link         = $('removeLink'+json.id);
			link.href        = 'javascript:void(0);';
			link.style.color = '#ff0000';
			link.innerHTML   = mess;
			var link         = $('link'+json.id);
			link.href        = 'javascript:void(0);';
			link.rel         = 'no';
			Lightbox.updateImageList();
		} else {
			alert('Internal error');
		}
	} else {
		alert('Internal error');
	}
}

// refresh photo list
function photoRequest(userId, page, limit) {
	new Ajax.Request('/user/photoResult', {
		method: 'post',
		postBody: 'userId='+userId+'&page='+page+'&sortBy='+$('sortBy').value+'&limit='+limit,
		onSuccess: photoResponse
	}); 
}

function photoResponse(transport) {
	var json      = eval('('+transport.responseText+')');
	var items     = json.items;
	var total     = json.total;
	var page      = json.page;

	$('result').update('');
	pagination($('pagination'), "javascript:photoRequest("+json.userId+", '%d', "+json.limit+")", total, json.limit, page);
	
	var k    = 3;
	var mod  = items.length%k;
	var rows = Math.floor(items.length/k);
	if (mod > 0) rows += 1;
	for (i=0; i<rows; i++) {
		var tr0 = document.createElement('TR');
		for (j=(i*k); j<((i*k)+k); j++) {		
			var td0 = new Element('TD');
			td0.setStyle({width: Math.floor(100/json.limit)+'%',
						  verticalAlign: 'bottom'});
			if (items[j]) {
				// title
				var div = document.createElement('DIV');
				if (items[j]['object']) {
					var a = document.createElement('A');
					a.setAttribute('href', items[j]['object']['url']);
					a.setAttribute('title', items[j]['title']);
					a.innerHTML = items[j]['object']['title'];
					div.appendChild(a);
				} else {
					var div1 = new Element('div');
					div1.setStyle({fontWeight: 'bold'});
					div1.update(items[j]['title']);
					div.appendChild(div1);
				}
				td0.appendChild(div);
				
				// img
				var div = document.createElement('DIV');
				var a   = new Element('a');
				a.setAttribute('href', '/image/resize?path='+items[j].imageSrc+'&w=800');
				a.setAttribute('rel', 'lightbox[0]');
				a.setAttribute('title', items[j].title);
				var img = document.createElement('IMG');
				img.src = '/image?path='+items[j].imageSrc+'&w=130&h=97';
				a.appendChild(img);
				div.appendChild(a);
				td0.appendChild(div);
				
				// remove link
				var div = document.createElement('DIV');
				if (json.auth) {
					var a   = document.createElement('A');
					a.setAttribute('id', 'removeLink'+items[j]['id']);
					a.innerHTML = 'Delete photo &gt;';
					a.href = "javascript:removePhotoRequest('"+items[j]['id']+"', 'Deleted')";
					div.appendChild(a);
				}
				td0.appendChild(div);
			}
			tr0.appendChild(td0);
		}
		$('result').appendChild(tr0);
	}
	Lightbox.updateImageList();
}

function showLocationDiv() {
    t = $('seachBoxLocation'); 
    $('as_dropdown_o').style.display = 'block';
    
}

function closeLocationDiv() {
    t = $('seachBoxLocation'); 
    $('as_dropdown_o').style.display = 'none';
    
} 

function showWhereDiv() {
    t = $('seachBoxWhere'); 
    $('where_dropdown_o').style.display = 'block';
    
} 

function closeWhereDiv() {
    t = $('seachBoxWhere'); 
    $('where_dropdown_o').style.display = 'none';
    
}


function showLocationDivEvent() {
    t = $('seachBoxLocationEvent'); 
    $('as_dropdown_oEvent').style.display = 'block';
    
}

function closeLocationDivEvent() {
    t = $('seachBoxLocationEvent'); 
    $('as_dropdown_oEvent').style.display = 'none';
    
} 

function showWhereDivEvent() {
    t = $('seachBoxWhereEvent'); 
    $('where_dropdown_oEvent').style.display = 'block';
    
} 

function closeWhereDivEvent() {
    t = $('seachBoxWhereEvent'); 
    $('where_dropdown_oEvent').style.display = 'none';
    
}

function hideHintWhat() { 
    $('hintWhat').style.display = 'none';
    
}


function showLocationDivBusiness() {
    t = $('seachBoxLocationBusinesst'); 
    $('as_dropdown_oBusiness').style.display = 'block';
    
}

function closeLocationDivBusiness() {
    t = $('seachBoxLocationBusiness'); 
    $('as_dropdown_oBusiness').style.display = 'none';
    
} 

function showWhereDivBusiness() {
    t = $('seachBoxWhereBusiness'); 
    $('where_dropdown_oBusiness').style.display = 'block';
    
} 

function closeWhereDivBusiness() {
    t = $('seachBoxWhereBusiness'); 
    $('where_dropdown_oBusiness').style.display = 'none';
    
}

function hideHintWhat() { 
    $('hintWhat').style.display = 'none';
    
}

function showHintWhat() {
    var searchFor = $('searchFor').value;
    if (searchFor == 'Type here' || searchFor == ''){
    	$('hintWhat').style.display = 'block';
    } else {
    	$('hintWhat').style.display = 'none';
    } 
    
}

function hideHintWhere() {
    $('hintWhere').style.display = 'none';
    
}

function showHintWhere() {
    var searchWhere = $('searchWhere').value;
    if (searchWhere == 'Type here' || searchWhere == ''){
    	$('hintWhere').style.display = 'block';
    } else {
    	$('hintWhere').style.display = 'none';
    }  
}

function showDefaultWhat(){
	var searchFor = $('searchFor').value;
	if(searchFor == 'Type here' || searchFor == ''){
		$('searchFor').value = 'Type here';
	}
}

function showDefaultWhere(){
	var searchWhere = $('searchWhere').value;
	if(searchWhere == 'Type here' || searchWhere == ''){
		$('searchWhere').value = 'Type here';
	}
}

function searchFormFilterRequest(url, divId, data, borderDisabled) {
	div = document.getElementById(divId);
	filterDiv = document.getElementById('leftFilterSearch');
	if (div != null && div != undefined) {
		div.update("<div style='background: url(\"/i/border.png\") no-repeat scroll center 0 transparent;height: 220px;'><div style='text-align: center; padding-top: 40px;'><img src='/i/loading_color.gif'></div><b style='display: block; text-align: center;font-size: 16px;color: #FF9600;'>Loading your results...</b></div>");
	}
	if (filterDiv != null && filterDiv != undefined) {
		filterDiv.innerHTML = "<div style='text-align: center;'><img src='/i/loading_color.gif'></div>";
	}
	myAjax.go(url, {method:"post", data: data,eval:"SetSearchFormFilterRequestData('"+divId+"',Req.responseText);"});

}

function SetSearchFormFilterRequestData(dest, data) {
	var valuesArray = data.split('<!-- search where value end -->');
	var contentArray = valuesArray[1].split('<!-- filter column content end -->');
	contentDiv = document.getElementById(dest);
	filterDiv = document.getElementById('leftFilterSearch');
	whereDiv = document.getElementById('searchWhere');
	if (filterDiv!=null && filterDiv!=undefined){ 
		filterDiv.innerHTML = contentArray[0];
	}
	if (contentDiv!=null && contentDiv!=undefined){ 
		contentDiv.innerHTML = contentArray[1];
	}
	if (whereDiv!=null && whereDiv!=undefined){ 
		whereDiv.value = valuesArray[0];
	}
	
}

function eventAddRequest(productTypeId) {
	if (productTypeId == 7){
		var form = document.getElementById('placeForm');
		form.action = '/profile_reviews/event';
		form.submit();
	}
}
