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("newsletter_email");
	var name = $F("newsletter_name");
	
	new Ajax.Request(
			root_ + "newsletter",
			{
					method: "post",
					parameters: $("newsletterform").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 if (response == 'name') {
											var error_text = "Nu ati completat numele!";
											} else {
												var error_text = "Va multumim!";
												}
								alert(error_text);
								//$("tooltip").update(error_text);
								//showTooltip();
								//setTimeout("showTooltip()", 2000); 
								} // if response
							}
			}
			);
	Event.stop(e);
	}

function  cartAdd(e) {
	
	var element = Event.element(e);
	var id_produs = element.getAttribute('rel');
	var marime = element.previous("ul").down("select[name=marime]").getValue();
	var culoare = element.previous("ul").down("select[name=culoare]").getValue();
	
	new Ajax.Request(
			root_ + "cart-add",
			{
					method: "post",
					parameters: 'id_produs=' + id_produs + '&culoare=' + culoare + '&marime=' + marime,
					onComplete: function(transport) {
							if (transport.responseText) {
								$('cart').down("b").update(transport.responseText);
								new Effect.Highlight('cart', {startcolor: '#006699', endcolor: '#FFFFFF'});
								}
							}
			}
			);
	Event.stop(e);
	}


function showTooltip() {

	new Effect.toggle('tooltip', 'appear');

	}

function deleteImage(e) {

	var element = Event.element(e); // get element
	var pic = element.getAttribute("alt"); // get select ID
	var id = $F("id_produs"); // get value of select

	new Ajax.Request(
				root_ + "delete-image-ajax",
				{
						method: "post",
						parameters: 'id=' + id + '&pic=' + pic,
						onComplete: function(transport) {
								var response = transport.responseText;
								$("delete_images").update(transport.responseText);
								$$('.delete_pic').each(function(e) {
									Event.observe(e, 'click', function(f) {
										if (confirm("Esti sigur ca vrei sa stergi imaginea?")) {
											deleteImage(f);
											}
										});
									});
								}
				}
				);
	Event.stop(e);
	}

function successSlide(target, ok) { // slide ajaxify() response

	$(target).disable();

	if ($("upload")) {
		$("upload").disable();
		}

	if ($(ok).tagName == "FORM") { // if new form comming up (multiple step submission)
		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

	var form = element.up("form").getAttribute("id");
		
	var target = "oras";
	
	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: $("loading").update("asteptati..."), // show loading image
						onComplete: function(transport) {
								var orase = eval('(' + transport.responseText + ')'); // get JSON response
								
								var update = '<option value="0" id="loading">orasul</option>';
								update += '<option value="0" disabled="disabled">&nbsp;</option>';
								
								for (var i = 0; i < orase.length; i++) { // format response
									update += '<option value="' + orase[i].id + '">' + orase[i].nume + '</option>\n';
									}

								if (form == "register_form" || form == "edit_profile_form" || form == "add_form" || form == "edit_form") {
									update += '<option value="oras_nou">alt oras</option>\n';
									}
	
								$(target).update(update);
								$(target).enable(); // enable previous disabled child select
								}                     
				}
				);
		}
	Event.stop(e);
	}

function getModele(e) {

	var element = Event.element(e); // get element
	var parent = element.getAttribute("id"); // get select ID
	var id_marca = element.getValue(); // get value of select
	var form = element.up("form").getAttribute("id");
	
	var target = element.getAttribute("title");
		
	if (id_marca == "0" || id_marca == "all") { // disable child select if parent select not selected
		$(target).disable();
		}
	
	if (id_marca != "0" && id_marca != "all") { // else 
		new Ajax.Request(
				root_ + "get-modele-ajax",
				{
						method: "post",
						parameters: 'id_marca=' + id_marca,
						onLoading: $("loading").update("asteptati..."), // show loading image
						onComplete: function(transport) {
								var modele = eval('(' + transport.responseText + ')'); // get JSON response
								
								var update = '<option value="0" id="loading">modelul</option>';
								update += '<option value="0" disabled="disabled">&nbsp;</option>';
																
								for (var i = 0; i < modele.length; i++) { // format response
									update += '<option value="' + modele[i].id + '">' + modele[i].model + '</option>\n';
									}

								if (form == "add_form") {
									update += '<option value="model_nou">alt model</option>\n';
									}

								$(target).update(update);
								$(target).enable(); // enable previous disabled child select
								}                     
				}
				);
		}
	Event.stop(e);
	}

function populateSchimburiAcceptate(e) {
	
	var element = Event.element(e);
	var id_marca = element.getValue(); // get value of select
	var target = "schimburi_acceptate_target";
		
		new Ajax.Request(
				root_ + "get-modele-ajax",
				{
						method: "post",
						parameters: 'id_marca=' + id_marca,
						onComplete: function(transport) {
								var modele = eval('(' + transport.responseText + ')'); // get JSON response
								
								var update = '';
								for (var i = 0; i < modele.length; i++) { // format response
									var temp = $("schimburi_acceptate").getValue();
									var arr = temp.split("#");
									if (in_array(modele[i].id, arr)) {
										update += '<li><a title="' + modele[i].model + '" rel="' + modele[i].id + '" style="background-position: 0 -13px;">' + modele[i].model + '</a></li>\n';
										} else {
											update += '<li><a title="' + modele[i].model + '" rel="' + modele[i].id + '">' + modele[i].model + '</a></li>\n';
											}
									}

								$(target).update(update);
								$$('#schimburi_acceptate_target li a').each(function(e) {
									Event.observe(e, 'click', addSchimbAcceptat);
									});
								}
				}
				);
	Event.stop(e);
	}


function addSchimbAcceptat(e) {
	

	var element = Event.element(e);
	var id_model = element.getAttribute('rel');
	var temp = $("schimburi_acceptate").getValue();

	var arr = temp.split("#");
	if (!in_array(id_model, arr)) {
		$("schimburi_acceptate").setAttribute("value", temp + "#" + id_model);
		element.setStyle({backgroundPosition: '0 -13px'});
		} else {
			var result = '';
			for (var i = 0; i < arr.length; i++) {
				if (arr[i] && arr[i] != id_model) {
					result += '#' + arr[i];
					}
				}
			$("schimburi_acceptate").setAttribute("value", result);
			element.setStyle({backgroundPosition: '0 2px'});
			}

	}

function rate(e) {
	
	var element = Event.element(e);
	var nota = element.getAttribute("title").split("/")[0];
	var url = element.getAttribute("href");
		
	new Ajax.Request(
			url,
			{
					method: "post",
					parameters: "nota=" + nota,
					onComplete: function(transport) {
							$("star-rating").update(transport.responseText);
							}
				}
				);
	Event.stop(e);
	}

onloadQueue(function() { 
	$$(".judete_select").each(function(e) {
		Event.observe(e, 'change', getOrase);
		});
	});

onloadQueue(function() { 
	$$(".marca_select").each(function(e) {
		Event.observe(e, 'change', getModele);
		});
	});