function Forms() {
}

Forms.baseUrl = "http://www.directreal.sk/sk/formulare/";



Forms.validateEmail = function(email) {
	return email.match(/^[a-z, 0-9]+[a-z, 0-9, \., _, -]*[a-z, 0-9]+@[a-z, 0-9]+[a-z, 0-9, \., _, -]*[a-z, 0-9]+\.[a-z]+$/);
};


Forms.checkRequiredInput = function(value, name) {
	if(value == null || value.length == 0) {
		alert("Vstupné pole " + name + " nemôže byť prázdne");
		return false;
	} else {
		return true;
	}
};


Forms.checkEmailInput = function(value, name) {
	if(!Forms.validateEmail(value)) {
		alert("Nesprávne zadaný email v poli " + name);
		return false;
	} else {
		return true;
	}
};


Forms.checkSelectBoxSelected = function(value, name) {
	if(value == 0) {
		alert("Vyberte jednu z možností vo výbere " + name);
		return false;
	} else {
		return true;
	}
};


/**
 * Call ajax 
 * @param path
 * @param postData
 * @param successCallback
 * @param errorCallback
 */
Forms.ajaxCall = function(path, postData, successCallback, errorCallback) {
	
	if(!successCallback) {
		successCallback = Forms.onAjaxSuccess;
	}
	
	if(!errorCallback) {
		errorCallback = Forms.onAjaxError;
	}
	
	
	//alert(postData);
	
	$.ajax({
		type: 'POST',
		data: postData,
		url: Forms.baseUrl + path,
		success: function(html)
		{ 
			html = jQuery.trim(html);
			if(html.substr(0, 2) == "OK") {
				successCallback(html);
			} else {
				errorCallback(jQuery.trim(html.substr(5)));				
			}
		},
		error: Forms.onAjaxFailure
	});
};


/**
 * Default callback function on ajax call success
 * @param html
 */
Forms.onAjaxSuccess = function(html) {
	alert("Správa bola úspešne odoslaná");
};


/**
 * Default callback function on ajax call error
 * @param html
 */
Forms.onAjaxError = function(html) {
	if(html.length > 0) {
		alert(html);
	} else {
		alert("Nastala neznáma chyba. Ak sa chyba opakuje, kontaktujte nás prosím");
	}
	
};


/**
 *  Ajax call failure callback
 */
Forms.onAjaxFailure = function(msg) {
	alert("Nastala chyba komunikácie so serverom. Ak sa chyba opakuje, kontaktujte nás prosím.\n\n" + msg);
};


/**
 * Send agent contact form
 * @param agent
 */
Forms.contactAgent = function(agent) {
	Forms.contactAgentFull(agent, 0);
};


/**
 * Send agent contact form
 * @param agent
 * @param estate
 */
Forms.contactAgentEstate = function(agent, estate) {
	Forms.contactAgentFull(agent, estate);
};


/**
 * Send agent contact form
 * @param agent
 * @param estate
 */
Forms.contactAgentFull = function(agent, estate) {
	
	var email = "";
	var message = "";
	var captcha = "";
	
	if($(".contact_form").html() != null) {
		email = $(".contact_form #email").val();
		message = $(".contact_form #message").val();
		captcha = $(".contact_form #captcha").val();
	} else {
		email = $(".form_contact #email").val();
		message = $(".form_contact #message").val();
		captcha = $(".form_contact #captcha").val();
	}
		
		
	var validForm = Forms.checkRequiredInput(message, "Správa");
	validForm = validForm && Forms.checkEmailInput(email, "Váš e-mail");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	message = encodeURIComponent(message);
	email = encodeURIComponent(email);
	
	var postData = "agent=" + agent + "&email=" + email + "&message=" + message + "&captcha=" + captcha + "&estate=" + estate;
		
	var successCallback = function(html) {
		$('.contact_form form').toggle('fast', function() {});
		$('.form_contact').toggle('fast', function() {});
		//Forms.onAjaxSuccess(html);
		alert("Správa maklérovi bola úspešne odoslaná");
	};
	
	Forms.ajaxCall("kontaktujMaklera", postData, successCallback);
};


/**
 * Send send to friend form
 * @param estate
 */
Forms.sendToFriend = function(estate) {
	
	var userEmail = $(".form_friend #my_email").val();
	var friendEmail = $(".form_friend #friend_email").val();
	var message = $(".form_friend #message").val();
	var captcha = $(".form_friend #captcha").val();
	
				
	var validForm = Forms.checkEmailInput(userEmail, "Váš e-mail");
	validForm = validForm && Forms.checkEmailInput(friendEmail, "E-mail príjemcu");
	validForm = validForm && Forms.checkRequiredInput(message, "Správa");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	message = encodeURIComponent(message);
	userEmail = encodeURIComponent(userEmail);
	friendEmail = encodeURIComponent(friendEmail);
		
	
	var postData = "estate=" + estate + "&my_email=" + userEmail + "&friend_email=" + friendEmail + "&message=" + message + "&captcha=" + captcha;
		
	var successCallback = function(html) {
		$('.form_friend').toggle('fast', function() {});
		alert("Správa priateľovi bola úspešne odoslaná");
		//Forms.onAjaxSuccess(html);
	};
	
	Forms.ajaxCall("posliPriatelovy", postData, successCallback);
	
};


/**
 * Suggest better price for estate
 * @param estate
 */
Forms.suggestBetterPrice = function(estate) {
	
	var name = $(".better_price_form #name").val();
	var phone = $(".better_price_form #phone").val();
	var email = $(".better_price_form #email").val();
	var price = $(".better_price_form #best_price").val();
	var message = $(".better_price_form #message").val();
	var captcha = $(".better_price_form #captcha").val();
	
	
	var validForm = Forms.checkEmailInput(email, "Váš e-mail");
	validForm = validForm && Forms.checkRequiredInput(name, "Meno a priezvisko");
	validForm = validForm && Forms.checkRequiredInput(phone, "Telefón");
	validForm = validForm && Forms.checkRequiredInput(message, "Správa");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(validForm && price == 0) {
		validForm = false;
		alert("Cena nemôže byť 0");
	}
	
	if(!validForm) {
		return false;
	}
	
	
	name = encodeURIComponent(name);
	phone = encodeURIComponent(phone);
	email = encodeURIComponent(email);
	price = encodeURIComponent(price);
	message = encodeURIComponent(message);
	
	var postData = "name=" + name + "&phone=" + phone + "&email=" + email + "&best_price=" + price + "&message=" + message + "&estate=" + estate + "&captcha=" + captcha;
	
	var successCallback = function(html) {
		$('.better_price_form').toggle('fast', function() {});
		//Forms.onAjaxSuccess(html);
		alert("Správa maklérovi bola úspešne odoslaná");
	};
	
	Forms.ajaxCall("navrhniLepsiuCenu", postData, successCallback);
	
};

/**
 * Post new estate advice question
 * @param formId
 */
Forms.newEstateAdviceQuestion = function(formId) {
	
	formId = "#" + formId;
	
	var locality = $(formId + " #locality").val();
	var message = $(formId + " #message").val();
	var name = $(formId + " #name").val();
	var surname = $(formId + " #surname").val();
	var phone = $(formId + " #phone").val();
	var email = $(formId + " #email").val();
	var captcha = $(formId + " #captcha").val();
	
	
	var validForm = Forms.checkRequiredInput(locality, "Lokalita");
	validForm = validForm && Forms.checkRequiredInput(name, "Text otázky");
	validForm = validForm && Forms.checkRequiredInput(name, "Meno");
	validForm = validForm && Forms.checkRequiredInput(surname, "Priezvisko");
	validForm = validForm && Forms.checkRequiredInput(phone, "Telefón");
	validForm = validForm && Forms.checkEmailInput(email, "Email");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	locality = encodeURIComponent(locality);
	message = encodeURIComponent(message);
	name = encodeURIComponent(name);
	surname = encodeURIComponent(surname);
	phone = encodeURIComponent(phone);
	email = encodeURIComponent(email);
			
	var postData = "locality=" + locality + "&message=" + message + "&name=" + name + "&surname=" + surname + "&phone=" + phone + "&email=" + email + "&captcha=" + captcha; 
	
	var successCallback = function(html) {
		$(formId).toggle('fast', function() {});
		//Forms.onAjaxSuccess(html);
		alert("Váša otázka bola úspešne vložená");
	};
	
	Forms.ajaxCall("poradnaNovaOtazka", postData, successCallback);
	
};


/**
 * Add new estate offer or query
 */
Forms.addEstateOfferOrQuery = function() {
	
	var queryType = $("#query_type").val();
	var district = $("#id_district").val();
	var type = $("#id_type").val();
	var locality = $("#locality").val();
	var description = $("#description").val();
	var name = $("#name").val();
	var surname = $("#surname").val();
	var phone = $("#phone").val();
	var email = $("#email").val();
	var captcha = $("#captcha").val();
	
	var validForm =  Forms.checkSelectBoxSelected(type, "Kategória");
	validForm = validForm && Forms.checkSelectBoxSelected(district, "Kraj");
	validForm = validForm && Forms.checkRequiredInput(locality, "Lokalita");
	validForm = validForm && Forms.checkRequiredInput(description, "Popis");
	validForm = validForm && Forms.checkRequiredInput(name, "Meno");
	validForm = validForm && Forms.checkRequiredInput(surname, "Priezvisko");
	validForm = validForm && Forms.checkRequiredInput(phone, "Telefón");
	validForm = validForm && Forms.checkEmailInput(email, "Email");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	locality = encodeURIComponent(locality);
	description = encodeURIComponent(description);
	name = encodeURIComponent(name);
	surname = encodeURIComponent(surname);
	phone = encodeURIComponent(phone);
	email = encodeURIComponent(email);
		
	var postData = "query_type=" + queryType + "&id_district=" + district + "&id_type=" + type + "&locality=" + locality;
	postData += "&description=" + description + "&name=" + name + "&surname=" + surname + "&phone=" + phone + "&email=" + email + "&captcha=" + captcha;
	
	var successCallback = function(html) {
		//$(formId).toggle('fast', function() {});
		//Forms.onAjaxSuccess(html);
		if(queryType == 1) {
			alert("Vaša ponuka bola úspešne vložená");
		} else {
			alert("Váš dopyt bol úspešne vložený");
		}
	};
	
	Forms.ajaxCall("vlozitPonukuAleboDopyt", postData, successCallback);
	
};

/**
 * Add new job request
 */
Forms.addJobRequest = function() {
	
	var office = $("#agent-office").val();
	var locality = $("#agent-county").val();
	var name = $("#name").val();
	var surname = $("#surname").val();
	var phone = $("#phone").val();
	var email = $("#email").val();
	var note = $("#note").val();
	
	var captcha = $("#captcha").val();
		
	var validForm = Forms.checkRequiredInput(name, "Meno");
	validForm = validForm && Forms.checkRequiredInput(surname, "Priezvisko");
	validForm = validForm && Forms.checkRequiredInput(phone, "Telefón");
	validForm = validForm && Forms.checkEmailInput(email, "Email");
	validForm = validForm && Forms.checkRequiredInput(locality, "Lokalita");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	name = encodeURIComponent(name);
	surname = encodeURIComponent(surname);
	phone = encodeURIComponent(phone);
	email = encodeURIComponent(email);
	note = encodeURIComponent(note);
	
	var postData = "office=" + office + "&locality=" + locality + "&name=" + name + "&surname=" + surname;
	postData += "&phone=" + phone + "&email=" + email + "&note=" + note + "&captcha=" + captcha;
	
	var successCallback = function(html) {
		$('#cvForm').toggle('fast', function() {});
		Forms.onAjaxSuccess(html);
	};
	
	Forms.ajaxCall("vlozitZaujemOPracu", postData, successCallback);
	
};


/**
 * Add new collaboration request
 */
Forms.addCollaborationRequest = function(franchise) {
	
	var locality = $("#collaboration-county").val();
	var name = $("#name").val();
	var surname = $("#surname").val();
	var phone = $("#phone").val();
	var email = $("#email").val();
	var note = $("#note").val();
	var collaborationType = franchise ? 1 : 0; 
	
	var captcha = $("#captcha").val();
	
	
	var validForm = Forms.checkRequiredInput(name, "Meno");
	validForm = validForm && Forms.checkRequiredInput(surname, "Priezvisko");
	validForm = validForm && Forms.checkRequiredInput(phone, "Telefón");
	validForm = validForm && Forms.checkEmailInput(email, "Email");
	validForm = validForm && Forms.checkRequiredInput(locality, "Lokalita");
	validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	name = encodeURIComponent(name);
	surname = encodeURIComponent(surname);
	phone = encodeURIComponent(phone);
	email = encodeURIComponent(email);
	note = encodeURIComponent(note);
	
	var postData = "locality=" + locality + "&name=" + name + "&surname=" + surname;
	postData += "&phone=" + phone + "&email=" + email + "&note=" + note + "&collaborationType=" + collaborationType + "&captcha=" + captcha;
	
	var successCallback = function(html) {
		Forms.onAjaxSuccess(html);
	};
	
	Forms.ajaxCall("vlozitZaujemOSpolupracu", postData, successCallback);
	
};

/**
 * Send website bug report
 */
Forms.sendBugReport = function() {
	var email = $("#email").val();
	var message = $("#message").val();
	var captcha = $("#captcha").val();
        
	
	var validForm = Forms.checkRequiredInput(message, "Popis chyby");
	var validForm = validForm && Forms.checkEmailInput(email, "Email");
	var validForm = validForm && Forms.checkRequiredInput(captcha, "Overovací kód");
	
	if(!validForm) {
		return false;
	}
	
	email = encodeURIComponent(email);
	message = encodeURIComponent(message);
		
	var postData = "message=" + message + "&email=" + email + "&captcha=" + captcha;
	
	var successCallback = function(html) {
		Forms.onAjaxSuccess(html);
		window.location.replace("http://www.directreal.sk");
	};
	
	Forms.ajaxCall("poslatSpravuOChybe", postData, successCallback);
	
};
