var errors = new Array("empty", "valid_email", "duplicate", "short", "error"); // possible input errors

function ajaxify(e, target, ok) {
		
		var url = $(target).getAttribute("action");
		new Ajax.Request(
				url,
				{
						method: "post",
						parameters: $(target).serialize() + '&ajax=true', // ajax parameter if js disabled
						onLoading: $(target + "_loading").show(),
						onComplete: function(transport) {
								//alert(transport.responseText);
								var response = eval('(' + transport.responseText + ')'); // get JSON response
								var properties = new Array();
								var i = 0;
								for (property in response) { //get object properties
									properties[i] = property;
									i++;
									}
								var state = "ok"; // control variable
								for (i = 0; i < properties.length; i++) {
									if (in_array(eval("response." + properties[i]), errors)) { //if current field has error
										if (state == "ok") { // switch control variable
											state = "error";
											$(properties[i]).focus(); // focus first error input
											}
										if ($(properties[i]).up("td")) {
											$(properties[i]).up("td").next("td").childElements()[0].addClassName('error'); // colorize info span
											}
										} else {
											$(properties[i]).up("td").next("td").childElements()[0].removeClassName('error') // decolorize info span
											}
									}
								$(target + "_loading").hide();
								if (state == "ok") { // success
									successSlide(target, ok);
									}
							}
					}
				);
		Event.stop(e);
		}

function  newsletterSubscribe(e) {

	var email = $F("nletter_email");
	
	new Ajax.Request(
			root_ + "newsletter",
			{
					method: "post",
					parameters: $("nletter").serialize(),
					onComplete: function(transport) {
							if (transport.responseText) {
								var response = eval('(' + transport.responseText + ')'); // get JSON response
								$("nletter_loading").hide(); // hide loading image
								var response = eval('(' + transport.responseText + ')'); // get JSON response
								if (response == "valid_email") {
									var error_text = "Adresa de e-Mail nu este valida!";
									} else if (response == "duplicate") {
										var error_text = "Adresa de e-Mail este deja inscrisa!";
										} else {
											var error_text = "Va multumim!";
											}
								$("tooltip").update(error_text);
								showTooltip();
								setTimeout("showTooltip()", 2000); 
								} // if response
							}
			}
			);
	Event.stop(e);
	}


function showTooltip() {

	new Effect.toggle('tooltip', 'appear');

	}

function successSlide(target, ok) { // slide ajaxify() response

	$(target).disable();
	if ($(ok).tagName == "FORM") { // if new form comming up (multiple step submission)
		new Effect.toggle(target, 'slide'); // show success with some cool effects :)
		new Effect.toggle(ok, 'slide'); // show success with some cool effects :)
		Event.observe(ok, 'submit', function(e) {ajaxify(e, ok, 'success')}); // succcess = id of final div
		} else {
			new Effect.ScrollTo(ok, {offset: -1, duration: 0.5});
			new Effect.toggle(ok, 'appear'); // show success with some cool effects :)
			}

	}

function getOrase(e) {

	var element = Event.element(e); // get element
	var parent = element.getAttribute("id"); // get select ID
	var id_judet = element.getValue(); // get value of select
	
	switch (parent) { // multiple selects per page
		
		case 'judet_filtrare' : var target = "oras_filtrare";
		break;

		case 'judet_inregistrare' : var target = "oras_inregistrare";
		break;
	
		}
	
	if (id_judet == "0" || id_judet == "all") { // disable child select if parent select not selected
		$(target).disable();
		}
	
	if (id_judet != "0" && id_judet != "all") { // else 
		new Ajax.Request(
				root_ + "get-orase-ajax",
				{
						method: "post",
						parameters: 'id_judet=' + id_judet,
						onLoading: $(parent + "_loading").show(), // show loading image
						onComplete: function(transport) {
								$(parent + "_loading").hide(); // hide loading image
								var orase = eval('(' + transport.responseText + ')'); // get JSON response
								
								var update = '<option value="0">orasul</option>';
								update += '<option value="0" disabled="disabled">&nbsp;</option>';
								update += id_judet == 10 ? '<option value="all">Toate sectoarele</option>' : '<option value="all">Toate orasele</option>';
								
								for (var i = 0; i < orase.length; i++) { // format response
									update += '<option value="' + orase[i].id + '">' + orase[i].nume + '</option>\n';
									}
								$(target).update(update);
								$(target).enable(); // enable previous disabled child select
								}                     
				}
				);
		}
	Event.stop(e);
	}

function suggestSpecs(e) { // gets specifications for phone (on add)
	
	new Ajax.Request(
			root_ + "suggest-specs",
			{
					method: "post",
					parameters: $("schimb-telefon").serialize(),
					onComplete: function(transport) {
							if (transport.responseText) {
								var response = eval('(' + transport.responseText + ')'); // get JSON response
								var properties = new Array();
								var i = 0;
								for (property in response) { //get object properties
									properties[i] = property;
									i++;
									}
								for (i = 0; i < properties.length; i++) {
									if ($(properties[i] + "_da") && eval("response." + properties[i]) == "da") { // if property = radio input with value yes
										$(properties[i] + "_da").setAttribute("checked", "checked"); // check it if true
										} else if ($(properties[i] + "_nu") && eval("response." + properties[i]) == "nu") {  // if property = radio input with value no
											$(properties[i] + "_nu").setAttribute("checked", "checked"); // check it if true
											} else if ($(properties[i]).tagName == "SELECT") {
												for (j = 0; j < 3; j++) { // 3 types of bateries
													if ($(properties[i]).childElements()[j].getAttribute("value") == eval("response." + properties[i])) {
														$(properties[i]).childElements()[j].selected = true;
														}
													}
												} else {
												if ($(properties[i]) && eval("response." + properties[i])) { // if input text and the response exists
													$(properties[i]).setAttribute("value", eval("response." + properties[i])); // fill the text input with the response
													} // if input text
												} // else
									} // for properties
								} // if response
							}
			}
			);
	Event.stop(e);
	}

function rate(e, id_telefon) {
	
	var element = Event.element(e);
	var nota = element.getAttribute("title").split("/")[0];
	
	new Ajax.Request(
			root_ + "rate-item",
			{
					method: "post",
					parameters: "nota=" + nota + '&id_telefon=' + id_telefon,
					onLoading: $("current_grade").update('<img src="' + root_ + '_client/img/loading.gif" alt="" class="loading" />'),
					onComplete: function(transport) {
							$("star-rating").update(transport.responseText);
							}                    
				}
				);
	Event.stop(e);
	}

onloadQueue(function() { 
	$$(".judete_select").each(function(e) {
		Event.observe(e, 'change', getOrase);
		});
	});