function startIncrementing(layer, timedout) {
	if (incrementing) {
		if (timedout) increment(layer);
//		setTimeout("startIncrementing('" + layer + "', true)", mSeconds);
	}
	return true;
}
function stopIncrementing(layer) {
	return true;
}
function startDecrementing(layer, timedout) {
	if (decrementing) {
		if (timedout) decrement(layer);
//		setTimeout("startDecrementing('" + layer + "', true)", mSeconds);
	}
	return true;
}
function stopDecrementing(layer) {
	return true;
}
function decrement(layer){
	var fontSize = styleToNum(getStyle(layer, "fontSize"));
	fontSize = !fontSize ? defaultSize : fontSize;
	if(fontSize-- >= smallSize){
		setStyle(layer, "fontSize", fontSize+"px");
		setCookie(layer, fontSize+"px", expire);
	}
	return true;
}
function restore(layer) {
	setStyle(layer, "fontSize", defaultSize+"px");
	setCookie(layer, defaultSize+"px", expire);
	return true;
}

function increment(layer) {
	var fontSize = styleToNum(getStyle(layer, "fontSize"));
	fontSize = !fontSize ? defaultSize : fontSize;
	if(fontSize++ <= bigSize){
		setStyle(layer, "fontSize", fontSize+"px");
		setCookie(layer, fontSize+"px", expire);
	}
	return true;
}

function init(){
   //skinSearchForm();
   updateCurtain();
   setStyles("curtain", [["position", "absolute"],["left", "0"],["top", "0"],["width", "100%"],["height", "100%"]]);
   //setStyle("curtain", "backgroundColor", "#FDF7F1");
   setTimeout(updateCurtain, 400);
   //setStyle("curtain", "border", "1px solid red");
}

// search form initialization
function skinSearchForm(){
    if(document.getElementsByTagName){
        replaceSearchForm();
        //showElements("advancedform");

        // hide all elements with display:none in css
        hideElements("curtain");//, "floors", "bedrooms", "bathrooms");
        //hideElements("form", "curtain", "floors", "bedrooms", "bathrooms");
        // search form
        // set all selects
        var links = document.getElementsByTagName("a");
        for(var i=0; i < links.length; i++){
            if(links[i].className.match("trigger")){
                selects.push(links[i].parentNode.id+"-select") ;
                links[i].onclick = function(){
                    onTriggerClick(this)
                }
                //onclick="switchElements("trigger-floors-select");showElements("curtain");"
            }
        }
        // set all options

        var lis = document.getElementsByTagName("li");
        for(var i=0; i < lis.length; i++){
            if(lis[i].parentNode.className.match("select")){
                lis[i].onclick = function(){
                    onOptionClick(this)
                }
            }
        }
    }
}
function replaceSearchForm(){
	var form = element("form");
	var selects_arr = [];
	var selects = form.getElementsByTagName("select");
	var select;
	for(var i=0; i < selects.length; i++){
		//alert(i+" "+selects[i].id+" "+selects[i].options[0].innerHTML);
		select = [selects[i].id, selects[i].options[0].innerHTML, []];
		var len = selects[i].options.length;
		for(var o=0; o < len; o++){
			select[2].push(selects[i].options[o].innerHTML);
		}
		selects_arr.push(select);
    }
	
	var formContainer = form.parentNode;
	
	var newForm = document.createElement("DIV");
	newForm.setAttribute("id", "advancedform");
	
	newFormEl = formContainer.insertBefore(newForm, form);
	newFormEl.innerHTML = getSearchFormHtml(selects_arr);
	showElements("advancedform");
	
	for(var i=0; i < selects_arr.length; i++){
		hideElements("trigger-"+selects_arr[i][0]+"-select");
	}
	hideElements(form);
	// formContainer.removeChild(form);
}
function getSearchFormHtml(selects){
	var s = "";
	for(var i=0; i < selects.length; i++){
		s += generateSelect(selects[i][0], selects[i][1], selects[i][2]);
	}
	//alert(s);
	return s;
}
function generateSelect(id, name, options){
	//alert("generateSelect id="+id+" name="+name+" options="+options)
	var s = "";
	s += "  <div class='trigger' id='trigger-"+id+"'>";
	s += "      <a href='javascript:;' class='trigger'>";
	s += "          <span id='trigger-"+id+"-value'>"+name+"</span>";
	s += "      </a>";
	s += "      <ul class='select' id='trigger-"+id+"-select'>";
	s += "          <li class='disabled'>"+name+"</li>";
	for(var i=1; i < options.length; i++){
		s += "          <li>"+options[i]+"</li>";
	}
	s += "      </ul>"
	s += "  </div>"
	return s;
}
function onCurtainClick(){
	//alert("onCurtainClick");
	closeAllSelects();
	hideElements("curtain");
}
function onTriggerClick(trigger){
    //alert("onTriggerClick");
    var selectId = trigger.parentNode.id+"-select";
    var vis = isVisible(selectId);
    closeAllSelects();
    if(vis){
        hideElements("curtain");
    } else {
        showElements(selectId);
        showElements("curtain");
    }
}
function onOptionClick(option){
	//alert("option: "+option.innerHTML+" "+ option.parentNode.id);
	if(option.className != "disabled"){
		element(option.parentNode.parentNode.id+"-value").innerHTML = option.innerHTML;
	}
	var selectId = option.parentNode.id.split("-")[1];
	setSelectedOption(element(selectId), option.innerHTML);
	hideElements("curtain", option.parentNode.id);
}
function closeAllSelects(){
	for(var i=0; i < selects.length; i++){
			hideElements(selects[i]);
	}
}
function setSelectedOption(select, str){
	for(var i=0; i < select.options.length; i++){
		if(select.options[i].innerHTML == str){
			select.options[i].selected= "selected";
		} else {
			select.options[i].selected= "";
		}
	}
}
function updateCurtain(){
    var w = getInnerWidth();
    var h = getInnerHeight();
    setStyles(
        "curtain",
        [
          ["height", h+"px"]
        ]
    );
}
function onPageScroll(){
    onCurtainClick();
}
function onPageResize(){
    updateCurtain();
}


function writeCssBrowser(){
    var cssBrowserFile = "explorer.css";
    if(isOpera())		cssBrowserFile = "opera.css";
    else if(isIE6())	cssBrowserFile = "explorer.css";
    else if(isIE7())	cssBrowserFile = "explorer7.css";
    else if(isMoz())	cssBrowserFile = "moz.css";
    var cssBrowserStyle = "<link rel='stylesheet' type='text/css' href='styles/"+cssBrowserFile+"' />";
    //alert("cssBrowserStyle: "+cssBrowserStyle);
    document.write(cssBrowserStyle);
}
// Set CSS for different resolutions
function writeCssResolution(){
    var res = getQueryParamValue("res");
    // Set CSS for different resolutions
    if(isNaN(res) || !res.length){
        res = screen.width;
    }
    var cssResFile = "r800.css";
    if(res >= 1024){
        // this is default resolution and already exist in htm page
        //return;
        cssResFile = "r1024.css";
    }
    var pageResStyle = "<link rel='stylesheet' type='text/css' href='styles/"+cssResFile+"' />"  ;
    //alert("pageResStyle: "+pageResStyle);
    document.write(pageResStyle);
}
function validateEmail(email){
	return email.match(/\w+@\w+\.\w+/);
}

// submit data methods
function onCommentSubmit(lang){
	//alert("12312");
	window.lang = lang;
	var form = document.getElementById("requestForm");
	var error = "";
	if(form.name.value.length < 1){
		error += getMessage(lang, "shortName", { length:form.name.value.length });
	}
	if(!validateEmail(form.email.value)){
		error += getMessage(lang, "invalidEmail", { email:form.email.value });
	}
	if(form.comments.value.length < 1){
		error += getMessage(lang, "emptyComment");
	}
	if(error.length){
		showError(error);
	} else {
		sendComment(form.name.value, form.email.value, form.comments.value);
	}
}
function onRequestSubmit(lang){
	//alert("12312");
	window.lang = lang;
	var form = document.getElementById("requestForm");
	var error = "";
	if(form.name.value.length < 1){
		error += getMessage(lang, "shortName", { length:form.name.value.length });
	}
	if(!validateEmail(form.email.value)){
		error += getMessage(lang, "invalidEmail", { email:form.email.value });
	}
	if(form.comments.value.length < 1){
		error += getMessage(lang, "emptyComment");
	}
	if(error.length){
		showError(error);
	} else {
		sendRequest(form.name.value, form.email.value, form.comments.value, form.referer.value, form.offer_name.value);
	}
};
function onRecommendSubmit(lang){
	//alert("12312");
	window.lang = lang;
	var form = document.getElementById("requestForm");
	var error = "";
	if(form.name.value.length < 1){
		error += getMessage(lang, "shortName", { length:form.name.value.length });
	}
	if(!validateEmail(form.email.value)){
		error += getMessage(lang, "invalidEmail", { email:form.email.value });
	}
	if(!validateEmail(form.myemail.value)){
		error += getMessage(lang, "invalidEmail", { email:form.myemail.value });
	}
	if(form.comments.value.length < 1){
		error += getMessage(lang, "emptyComment");
	}
	if(error.length){
		showError(error);
	} else {
		sendRecommend(form.name.value, form.email.value, form.myemail.value, form.comments.value, form.referer.value, form.offer_name.value, form.offer_id.value);
		//sendRecommend(name, email, mEmail, message, referer, offer){
	}
};
function showError(error){
	//alert("showError error="+error);
	document.getElementById("requestForm_input").style.display = "none";
	document.getElementById("requestForm_error").style.display = "block";
	document.getElementById("requestForm_error_content").innerHTML = error;
	//document.getElementById("requestForm_error_content").innerHTML = "<label><strong>Name:</strong></label>";
	resizePopup(document.getElementById("requestForm").offsetWidth,document.getElementById("requestForm").offsetHeight);
}
function hideError(){
	//alert("hideError");
	document.getElementById("requestForm_input").style.display = "block";
	document.getElementById("requestForm_error").style.display = "none";
	resizePopup(document.getElementById("requestForm").offsetWidth,document.getElementById("requestForm").offsetHeight);
}
function showMessage(title, message){
	//alert("showMessage title="+title+" message="+message);
	document.getElementById("requestForm_input").style.display = "none";
	document.getElementById("requestForm_message").style.display = "block";
	document.getElementById("requestForm_message_title").innerHTML = title;
	document.getElementById("requestForm_message_content").innerHTML = message;
	resizePopup(document.getElementById("requestForm").offsetWidth,document.getElementById("requestForm").offsetHeight);
}
function hideMessage(){
	document.getElementById("requestForm_input").style.display = "block";
	document.getElementById("requestForm_message").style.display = "none";
	resizePopup(document.getElementById("requestForm").offsetWidth,document.getElementById("requestForm").offsetHeight);
}
function sendComment(name, email, message){
	//alert("sendmail.php?n="+name+"&e="+email+"&m="+message);
	showMessage(getMessage(lang, "sendCommentTitle"), getMessage(lang, "sendComment"));
	if(!loadDoc("sendmail.php?n="+name+"&e="+email+"&m="+message, createDelegate(this, onCommentResult))){
		// ajax error
		showMessage(lang, "ERROR", "Ajax error");
	}
}
function onCommentResult(doc){
	//alert("onCommentResult result="+doc.responseText);
	if(doc.responseText == "1"){
		showMessage(getMessage(lang, "sendCommentTitle"), getMessage(lang, "sendеdComment"));
	} else {
		showMessage(getMessage(lang, "sendCommentTitle"), getMessage(lang, "nonSendеdComment"));
	}
}
function sendRequest(name, email, message, referer, offer){
	//alert("sendmail.php?n="+name+"&e="+email+"&m="+message+"&r="+referer+"&o="+offer);
	showMessage(getMessage(lang, "sendCommentTitle"), getMessage(lang, "sendComment"));
	if(!loadDoc("sendmail.php?n="+name+"&e="+email+"&m="+message+"&r="+referer+"&o="+offer, createDelegate(this, onCommentResult))){
		// ajax error
		showMessage(lang, "ERROR", "Ajax error");
	}
}
function sendRecommend(name, email, mEmail, message, referer, offer, offer_id){
	//alert("sendmail.php?n="+name+"&e="+email+"&me="+mEmail+"&m="+message+"&r="+referer+"&o="+offer+"&oid="+offer_id);
	showMessage(getMessage(lang, "sendCommentTitle"), getMessage(lang, "sendComment"));
	if(!loadDoc("sendmail.php?n="+name+"&e="+email+"&me="+mEmail+"&m="+message+"&r="+referer+"&o="+offer+"&oid="+offer_id, createDelegate(this, onCommentResult))){
		// ajax error
		showMessage(lang, "ERROR", "Ajax error");
	}
}
function getMessage(lang, msg, obj){
	switch(lang){
		case "en":
			switch(msg){
				// errors
				case "shortName": return "<label><strong>Name:</strong> Short name.</label>";
				case "invalidEmail": return "<label><strong>E-mail: </strong><i>\""+obj.email+"\"</i> is not a valid email address.</label>";
				case "emptyComment": return "<label><strong>Comment:</strong> No text.</label>";
				// messages
				case "sendComment": return "<label><strong>Status:</strong> Sending message...</label>";
				case "sendеdComment": return "<label><strong>Status:</strong> Message was sent.</label><a href='#' class='advanced-button' title='Back to form' onclick='hideMessage(); return false;'><span>New message</span></a>";
				case "nonSendеdComment": return "<label><strong>Status:</strong> An error occured while trying to send message</label><p></p><a href='#' class='advanced-button' title='Back to form' onclick='hideMessage(); return false;'><span>Back</span></a>";
				// titles
				case "sendCommentTitle": return "Sending";
			}
			break;
		case "bg":
			switch(msg){
				// errors
				case "shortName": return "<label><strong>Име:</strong> Късо име.</label>";
				case "invalidEmail": return "<label><strong>E-mail:</strong> Невалиден емайл адрес.</label>";
				case "emptyComment": return "<label><strong>Коментар:</strong> Не сте въвели текст.</label>";
				// messages
				case "sendComment": return "<label><strong>Статус:</strong> Изпращане на съобщението...</label>";
				case "sendеdComment": return "<label><strong>Статус:</strong> Съобщението беше изпратено.</label><a href='#' class='advanced-button' title='Ново съобщение' onclick='hideMessage(); return false;'><span>Ново съобщение</span></a>";
				case "nonSendеdComment": return "<label><strong>Статус:</strong> Възникна грешка при изпращането на съобщението.</label><p></p><a href='#' class='advanced-button' title='Към формата' onclick='hideMessage(); return false;'><span>Назад към формата</span></a>";
				// titles
				case "sendCommentTitle": return "Изпращане";
			}
			break;
		case "ru":
			switch(msg){
				// errors
				case "shortName": return "<label><strong>Имя:</strong> Короткое имя.</label>";
				case "invalidEmail": return "<label><strong>Emailе:</strong> Невалидный еmailе адрес.</label>";
				case "emptyComment": return "<label><strong>Коментар:</strong> Вы не ввели текст.</label>";
				// messages
				case "sendComment": return "<label><strong>Статус:</strong> Изпращане на съобщението...</label>";
				case "sendеdComment": return "<label><strong>Статус:</strong> Съобщението беше изпратено.</label><a href='#' class='advanced-button' title='Ново съобщение' onclick='hideMessage(); return false;'><span>Ново съобщение</span></a>";
				case "nonSendеdComment": return "<label><strong>Статус:</strong> Възникна грешка при изпращането на съобщението.</label><p></p><a href='#' class='advanced-button' title='Назад към формата' onclick='hideMessage(); return false;'><span>Назад към формата</span></a>";
				// titles
				case "sendCommentTitle": return "Изпращане";
			}
			break;
	}
	return "";
}

function setVideo(){
	var neededversion = "8";
	var isValid = FlashObjectUtil.versionIsValid(neededversion);
	var canExpressInstall = FlashObjectUtil.versionIsValid("6.0.65");
	var swf;
	if(isValid || !canExpressInstall){
		swf = new FlashObject("video_container", "video.swf", "video_swf", 700, 556, neededversion, "#FCF3D4");
		swf.addVariable("startVolume", "50");
		swf.addVariable("videoId", "");
	} else {
		swf = new FlashObject("video_container", "expressInstall.swf", "video_swf", 700, 556, "6.0.65", "#FCF3D4", "best");
		swf.addVariable("redirectURL", window.location);
		swf.addVariable("MMplayerType", FlashObjectUtil.getPlayerType());
		swf.addVariable("MMdoctitle", document.title);
	}
	swf.write();
}


// triggers
var selects = new Array();

// text resizer
var incrementing = false;
var decrementing = false;

var mSeconds = 100;
var maxSize = 24;

var smallSize = 9;
var defaultSize = 13;
var bigSize = 16;

var expire = 100; // days

var savedSize = readCookie("content");

var lang = "en";


// Set CSS for Opera & Explorer browsers
writeCssBrowser();
writeCssResolution();

window.onload = init;
window.onscroll = onPageScroll;
window.onresize = onPageResize;

// fix IE6 flickering
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

