// -------------------------------------------------------------------------------------
var domQueue = new Array();
var domReady = false;
// -------------------------------------------------------------------------------------
document.observe("dom:loaded", function() {
  domReady==true;
  for (var a=0;a<domQueue.length;a++){
	var func = domQueue[a];
	try{
		eval (func);
	} catch (err) {
		addLoadEvent(func);
	}
  }
});
// -------------------------------------------------------------------------------------
function addLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func;
		}
	}
}
// -------------------------------------------------------------------------------------
function addUnLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	var oldunonload = window.onunload;
	if (typeof window.onunload != 'function'){
    	window.onunload = func;
	} else {
		window.onunload = function(){
		oldunonload();
		func();
		}
	}
}
// -------------------------------------------------------------------------------------

function addDomLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	if (domReady==true) {
		eval (func);
	} else {
		domQueue.push(func);
	}
}

//-------------------------------------------------------------

function set_errorfiled(name,message){
 var el = document.getElementById(name);
 $(el).addClassName('formError');
 var em = document.createElement('em');
 em.className="err";
 em.innerHTML = " "+message;
 el.parentNode.appendChild(em);
}
//-------------------------------------------------------------
function SetCookie(sName, sValue,sTime)
{
    document.cookie = sName + "=" + escape(sValue) + "; path=/";
}
//-------------------------------------------------------------
function getCookie(name){
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1){
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else{
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1){
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

//-------------------------------------------------------------
function api(obj, action, data, callback, delay){
	window.setTimeout (function() {
		var params='obj='+obj+'&action='+action+'&lang='+defaultLang;
		if(data) {
			params +="&"+ data;
		}
		if (callback==null) callback = loadContent;
		var def = Math.random();
		params+='&t='+def;
		if (params.lenght>2000) var sendMethod= 'post'; else 
		var sendMethod='get';
		var url=baseUrl+'api.php';
		var MyAjax = new Ajax.Request(
			url,
			{
				encoding: 'UTF-8',
				method: sendMethod,
				parameters: params,
				onComplete: callback
			});
	}, delay*1000);
}
//-------------------------------------------------------------
function loadContent(received) {
	try {
		if (received.responseXML){
			var xmldoc = received.responseXML; 
			if (xmldoc.getElementsByTagName("JavaScript")){
				var js = xmldoc.getElementsByTagName("JavaScript")[0].firstChild.nodeValue;
				if (js) eval(js);				
			}
		} else if (received.responseJSON) {
			var data = eval(received.responseJSON);
		}
	} catch (err){
		debug(err);
	}
}
//-------------------------------------------------------------
function debug(text){
	alert (text);
}
//-------------------------------------------------------------
var fpq = false;
function filter(page) {
	if (fpq ==true) return;
	var data = 'code=' + $('code').value;
	data += '&name=' + $('name').value;
	data += '&category=' + $('category').value;	
	if (page) data += '&page=' + page;
	api('orders','',data,buildTable);
	fpq = true;
	$('productloader').update('<img src="'+IMG_path+'ajax-loader.gif" alt="Loading..."/>');
}

//-------------------------------------------------------------
function addSlashes(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
//-------------------------------------------------------------
function stripSlashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\0/g,'\0');
str=str.replace(/\\\\/g,'\\');
return str;
}

function setHeight(el){
	var elements = $$(el);
	var maxHeight = 0;
	var currElementHeight;
	for (a=0; a<elements.length;a++) {
		currElementHeight = elements[a].getHeight();
		if (currElementHeight>maxHeight) maxHeight = currElementHeight;
	}
	for (a=0; a<elements.length;a++) {
		elements[a].style.height = (maxHeight-10)+"px";
	}
	
}
//-------------------------------------------------------------
function createMarker(object) {
  var marker = new GMarker(new GLatLng(object.lat, object.lng));
	var html  = ['<div class="gminfo">',
			   '<a href="?view=',object.id,'">',
			   '<b>', object.name, '</b>',
			   '<br />',object.city,'<br />',
			   '<em style="font-weight: normal">',object.address,'</em>',
			   '</a>',
			   '</div>'
			   ].join('');
		GEvent.addListener(marker, 'click', function(e) {
			marker.html = html ;
		    marker.openInfoWindowHtml(marker.html);
			//stopClick();
			//Event.stop(e);
		});
  return marker;
}
//-------------------------------------------------------------
function changeLocations(id) {
	$('locations').update("<li><em>"+TXT_Updating_locations+"...</em></li>");
	api('locations','get','id='+id);
}
//-------------------------------------------------------------
function modifySearch(type){
	switch(type){
	case 'edit':
		var postdata = data; 
		break;
	case 'new':
		var postdata = '';
		break
	}
	api('search','show','srch='+postdata);
	return true;
}
//-------------------------------------------------------------
function submitSearch(forma){
	//if (forma.serialize().length>2000) forma.method="post";
	var locations = new Array();
	var types = new Array();
	$$('#locations input:checked').each(function (f){locations.push(f.value); f.value='';});
	$$('#propertytype input:checked').each(function (f){types.push(f.value); f.value='';});
	
	var loc = document.createElement('input');
	loc.type='hidden';
	loc.name='l';
	loc.value = locations.join('.');
	forma.appendChild(loc);
	
	var prop = document.createElement('input');
	prop.type='hidden';
	prop.name='pr';
	prop.value = types.join('.');
	forma.appendChild(prop);
	
	
	return true;
}
//-------------------------------------------------------------
function createApiWindow(closeDelay){
	var winSize = document.viewport.getDimensions();
	var winOffset = document.viewport.getScrollOffsets();
	var divMaxSize = Math.round(winSize.width*.8);
	if (divMaxSize>850) divMaxSize = 850;
	if (divMaxSize<550) divMaxSize = 550;
	if (!$('UIApiWindow')) {
		var UIApiWindow = document.createElement("div");
		UIApiWindow.id="UIApiWindow";
		UIApiWindow.style.zIndex="10000";
		UIApiWindow.style.position="absolute";
		UIApiWindow.style.display="none";
		UIApiWindow.style.width = divMaxSize+"px";

//		var UIApiWindowButton = document.createElement("input");
//		UIApiWindowButton.type = "image";
//		UIApiWindowButton.value = " ";
//		UIApiWindowButton.id = "closeButton";
//		UIApiWindowButton.onclick=function() { CloseApiWindow();}
		
		
//		UIApiWindow.appendChild(UIApiWindowButton);
		var UIApiWinTable = '<table id="UIApiTable"><tr><td class="tl"></td><td class="t"></td><td class="tr"></td></tr><tr><td class="l"></td><td id="UIApiTblInner"><div class="UIHead"><span id="UIHeadTitle"></span><input type="image" src="'+baseUrl+'_templates/images/spacer.gif" id="UIApiCloseButton" onclick="CloseApiWindow();" value="asd"/></div><div id="UIApiWindowInner"></div></td><td class="r"></td></tr><tr><td class="bl"></td><td class="b"></td><td class="br"></td></tr><table>'; 
		UIApiWindow.innerHTML=UIApiWinTable;
		
		document.body.appendChild(UIApiWindow);
		
		var Overlay = document.createElement("div");
		Overlay.id="Overlay";
		document.body.appendChild(Overlay);
		
		
	} else {
		var UIApiWindow = $('UIApiWindow');
	}
	UIApiWindow.style.left = (winSize.width/2-($('UIApiWindow').getWidth()/2))+'px';
	var topPosition = winSize.height/2 - 200;
	UIApiWindow.style.top = (winOffset.top+topPosition)+'px';
	$$('select').each(function (f) {f.style.visibility='hidden'; } );
	if (closeDelay) {
		setTimeout(function() { CloseApiWindow();},closeDelay*1000);
	}
	return;
}
//-------------------------------------------------------------
function  CloseApiWindow(){
	if (!$('UIApiWindow')) return;
	$('UIApiWindow').parentNode.removeChild($('UIApiWindow'));
	$('Overlay').parentNode.removeChild($('Overlay'));
	$$('select').each(function (f) {f.style.visibility='visible'; } );
}
//-------------------------------------------------------------
function updateApiWindow(data,delay) {
	createApiWindow(delay);
	$('UIApiWindowInner').update(data);
	$('UIApiWindow').appear({duration: .5});
}
//-------------------------------------------------------------
function toggleCheckbox(id,trigger){
	var position = trigger.checked; 
	$$('#'+id+' input[type=checkbox]').each(function (f){ f.checked=position;});
}
//-------------------------------------------------------------
function sendmail(data){
	showLoadingIndicator();
	api ('mail','send',data.serialize());
}
//-------------------------------------------------------------
function sendmailCont(data){
	showLoadingIndicator();
	api ('contact_mail','send',data.serialize());
}
//-------------------------------------------------------------
var prevLink = '';
function showResults() {
	showLoadingIndicator();
	$('resultcontainer').show();
	$('offercontainer').hide();
	$('offercontainer').update('aaaa');
	$('srchresbtn').hide();
	//window.location.href=(prevLink!=''?prevLink:'#');
	var page = prevLink.match(/page=(\d+)/);
	document.title=pageTitle;
	//ajaxHistory.addPage("page="+(page?page[1]:1),"offersPage("+(page?page[1]:'1')+")");
	hideLoadingIndicator();
}
//-------------------------------------------------------------
function viewOffer(id){
	prevLink = window.location.href;
	showLoadingIndicator();
	api('offer','view','id='+id);
	//window.location.href='#offer/'+id+'/';
	//ajaxHistory.addPage('offer/'+id+'/',"api('offer','view','id="+id+"')");
	//return false;
}
//-------------------------------------------------------------
function showLoadingIndicator(){
	var winOffset = document.viewport.getScrollOffsets();
	$('loadingIndicator').style.top = winOffset.top+'px'; 
	$('loadingIndicator').show();
}
//-------------------------------------------------------------
function hideLoadingIndicator(){
	$('loadingIndicator').hide();
}
//-------------------------------------------------------------
function offersPage(page) {
	showLoadingIndicator();
	api('offerlisting','view','page='+page+'&srch='+data);
	//window.location.href = '#page='+page;
	//ajaxHistory.addPage("page="+page,"api('offerlisting','view','page="+page+"&srch="+data+"');");
	//return false;
}
//-------------------------------------------------------------
function changeFeatImage(imagenumber){
	var openImage = '';
	var closeImage = '';
	$('imageholder').style.height = $('imageholder').getHeight()+'px';
	$$('#featured #feat_'+currOffer+' .ui-tabs-nav li').each(
		function(f,nm){
			if(f.hasClassName('ui-tabs-selected')) {
				f.removeClassName('ui-tabs-selected');
				openImage = 'fragment-'+currOffer+'-'+(nm+1);
			}
			if (nm+1==imagenumber) {
				f.addClassName('ui-tabs-selected')
				closeImage = 'fragment-'+currOffer+'-'+(nm+1);
			}
		}
	);
	new Effect.Fade($(openImage),{ queue: 'front',duration:.5 });
	new Effect.Appear($(closeImage),{ queue: 'end',duration:.3 });
	//Effect.Fade($(openImage),{duration:.3});
	//Effect.Appear($(closeImage),{duration:.3});
}
//-------------------------------------------------------------
function rotateImages(){
	if (currElement == 1 && firstShow==false){
		currOffer++
		if (currOffer>offers) { currOffer = 1;}
		changeOffer(currOffer);
	}
	
	var totalimages = $$('#featured #feat_'+currOffer+' .ui-tabs-nav li').length;
	firstShow=false;
	if (currElement==totalimages) {
		currElement=1;
	}
	else currElement++;
	window.setTimeout (function() {
		changeFeatImage(currElement);
		rotateImages();
	}, 5000);
}

//-------------------------------------------------------------
function changeOffer(offer){
	if (offer==1) var prevOffer = offers; else prevOffer = offer-1;
	$('featured').style.height=$('featured').getHeight()+'px';
	new Effect.Fade($('feat_'+prevOffer),{ queue: 'end',duration:.5 });
	new Effect.Appear($('feat_'+offer),{ queue: 'front',duration:.5});

	$$('.featofferdiv').each(function(f){$(f).hide()});
}
//-------------------------------------------------------------
function initPage(){ 
	var loc = window.location.href.split("#");
	if (loc[1]) {
		var newUrl = baseUrl+loc[1];
		window.location = newUrl.replace("/\/+/","/");
	}
//	alert(loc[1]);
}
//-------------------------------------------------------------
function showMap(){
	updateApiWindow('<div id="googleMap"></div>');
	$('UIHeadTitle').update(TXT_map);
	loadScript();
}
//-------------------------------------------------------------
function subscribeNewsletter (form) {
	$('statusInd').show();
	api ("newsletter","subscribe",form.serialize());
}
//-------------------------------------------------------------
function showMap1(){
	window.setTimeout (function() {
		if (map) {
			fitBounds();
			map.checkResize();
			fitBounds();
			newMarker();
		}
	},10);	
}
document.observe("dom:loaded", function() {
	//initPage();
});
