﻿// Cookies - Write, Read, Array support
function cookieWrite(name, value, hours) {
  var expire = "";
  if(hours != null) {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  var path="; path=/";
  document.cookie = name + "=" + escape(value) + expire + path;
}

function cookieRead(name) {
  var cookieValue = "";
  var searchString = name + "=";
  if(document.cookie.length > 0) {
    offset = document.cookie.indexOf(searchString);
    if (offset != -1) { 
      offset += searchString.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end));
    }
  }
  return cookieValue;
}

function cookieArrayWrite(name, v, hours) {
	var valueArray=new Array();
	var a=0;
	var i;
	for (i in v) {
		valueArray.push(i+"^"+v[i]);
	};
	var valueJoined=valueArray.join("~");
	cookieWrite(name, valueJoined, 750);
}

function cookieArrayRead(name) {
	var v=""+cookieRead(name);
	var newValue=new Array();
	if (v.length>0) {
		v=v.split("~");
		for (var i in v) {
			v[i]=v[i]+"";
			if (v[i].length>0){
				temp=v[i].split("^");
				newValue[temp[0]]=temp[1];
			}
		}
	}
	return newValue;
}

$(document).ready(function(){
	( function( $ ) {
		$.dequeue = function( a , b ){
		return $(a).dequeue(b);
		};
	})( jQuery );
	
	// Dropdown Options
	$(".order_by > span > a, .green_cell_our_cottage > a").each( function (i) {
		$(this).mouseover(function() {
			$(this).parent().parent().find(".roll_over").show().bind("mouseleave",function(){
				$(this).hide();
			});
		});
	});

	// AutoHide value of INPUT field
	$("input[autohide]").each( function (i) {
		$(this)
		.focus(function() {
			this.value='';
		})
		.blur(function() {
			if (this.value=='') this.value=$(this).attr("autohide");
		});
	});

  	// Format Nice Tables
	$("table.nice").each( function (i) {
		if ($(this).find("td").length==0) {
			$(this).hide();
			return;
		}
		var cols=$(this).find("tr:eq(1) td").length;
		$(this).find("th:first").addClass("left");
		$(this).find("th:last").addClass("right");
		$(this).find("tr:last").each( function (i) {
			$(this).find("td").each(function (i) {
				$(this).addClass("noBorder");
			});
			var a="<tr>";
			for (i=0; i<cols; i++) {
				a=a+"<td>&nbsp;</td>";
			}
			a=a+"</tr>";
			$(this).after(a);
		});
		$(this).find("tr").each( function (i) {
			$(this).find("td:first").addClass("left");
			$(this).find("td:last").addClass("right");
		});
		$(this).find("tr:last").addClass("last");
	});
	
	// Favorites
	$('[addtofavs]').bind("click", function() {
		var data=$(this).attr("addtofavs");
		var favCookie=cookieArrayRead("favCookie");
		var thisIndex=favCookie.length;
		var stored=0;
		for (i in favCookie) {
			if (favCookie[i]==data) {
				stored=1; var storedAs=i;
				break;
			}
		}
		if (stored==0) {
			if (thisIndex==10) {
				return false;
			}
			favCookie[thisIndex]=data;
			cookieArrayWrite("favCookie", favCookie);
			if ($(this).html().length>0) {
				$(this).html("Vymazať z výberu");
			}
			updateFavorites();

			$(this).TransferTo({
				duration: 300,
				to: 'fav'+thisIndex,
				className: 'transferer1',
				easing: 'easein'
			}).addClass("selected");
	
			var nameParsed=data.split(",,");
			var namePos=nameParsed[0].lastIndexOf("/");
			nameParsed=nameParsed[0].substr(namePos+1);
			$.ajax({
				type: "GET",
				url: "http://www.vsetkoprebyvanie.sk/ajax/favorites_count.php",
				data: "id="+nameParsed,
				dataType: "text"
			});
		} else {
			delete favCookie[storedAs];
			cookieArrayWrite("favCookie", favCookie);
			thisIndex=storedAs;
			if ($(this).html().length>0) {
				$(this).html("Pridať do výberu");
			} else {
				$(this).removeClass("selected");
			}
			updateFavorites();
		}
		return false;
	});

	$('[addtofavs]').each(function(i) {
		var data=$(this).attr("addtofavs");
		var favCookie=cookieArrayRead("favCookie");
		if (favCookie.length>0) {
			for (i in favCookie) {
				if (favCookie[i]==data) {
					if ($(this).html().length>0) {
						$(this).html("Vymazať z výberu");
					} else {
						$(this).addClass("selected")
					}
				}
			}
		}
	});
	
	// Update Favorites
	updateFavorites();


	// Battles links
	$(".battleTable[onClick]").each( function (i) {
		$(this).mouseover(function() {
			$(this).addClass("active").bind("mouseleave",function(){
				$(this).removeClass("active");
			});
		});
	});


	// Main Form validation
	$('form.main :text, form.main :password, form.main textarea, form.main select').bind("blur change", formValidateField);
	$('form.main :file').bind("change", formValidateField);
	$('form.main input:radio, form.main input:checkbox').bind("change click", formValidateField);

	// Quick Search
	$("#searchForm select, #searchForm input").bind("change keyup", function() {
		$.ajax({
			type: "GET",
			url: "http://"+thisDomain+"/ajax/search_results.php",
			data: $("#searchForm").serialize(),
			dataType: "text",
			success: function(msg, status){
				$("#searchForm .resultsResponse").css("display", "block").html(msg);
			}
		});
	});

});

jQuery.fn.extend({
  check: function() {
    return this.each(function() { this.checked = true; });
  },
  uncheck: function() {
    return this.each(function() { this.checked = false; });
  },
  toggleCheck: function() {
    return this.each(function() {
		if (this.checked == false) {
			this.checked = true;
		} else {
			this.checked = false;
		}
	 });
  }
});


function setSearchStatus() {
	$("#searchForm #lfArea").val(searchStatus[0]);
	$("#searchForm #lfFocus").val(searchStatus[1]);
}

function friendSubmit() {
	var valData=new Object();
	var fields=new Array("message", "email_to");

	for (i in fields) {
		formValidateField(true, $("#friendForm #"+fields[i]));
	}

	var wrongCount=$("#friendForm .inv").length;
	if (wrongCount==0) {
		$("#friendForm #friendsResponse").css("display", "block").html("Posielam odkaz...");
		$.ajax({
			type: "GET",
			url: "http://www.vsetkoprebyvanie.sk/ajax/send_to_friend.php",
			data: $("#friendForm").serialize(),
			dataType: "text",
			success: function(msg, status){
				$("#friendForm #friendsResponse").css("display", "block").html("Odkaz úspešne odoslaný.");
			}
		});
	} else {
		alert("Vyplňte, prosím, obe políčka správne.");
	}
	return false;
}

function reservationSubmit() {
	var valData=new Object();
	var fields=new Array("message", "name", "email", "phone", "delivery_place", "delivery_date");

	for (i in fields) {
		formValidateField(true, $("#mainForm #"+fields[i]));
	}

	var wrongCount=$("#mainForm .inv").length;

	alert("http://www.vsetkoprebyvanie.sk/ajax/demand.php?"+$("#mainForm").serialize());
	if (wrongCount==0) {
		$("#mainForm #resultsResponse").css("display", "block").html("Posielam dopyt...");
		$.ajax({
			type: "GET",
			url: "http://www.vsetkoprebyvanie.sk/ajax/demand.php",
			data: $("#mainForm").serialize(),
			dataType: "text",
			success: function(msg, status){
				alert(msg);
				$("#mainForm #resultsResponse").css("display", "block").html("Dopyt bol úspešne odoslaný.");
			}
		});
	} else {
		alert("Vyplňte, prosím, všetky políčka správne.");
	}
	return false;
}

function reservationFocus() {
	$("#reservationForm #name")
	.animate({backgroundColor: "#9FB224"}, 100 )
	.animate({backgroundColor: ""}, 100 )
	.animate({backgroundColor: "#9FB224"}, 100 )
	.animate({backgroundColor: ""}, 100 )
	.focus()
}

// Form Validation
function validateForm(formObject, valData, resultObject) {
	var formData=new Object();
	$(formObject).find("input, textarea").each(function(i) {
		formData[$(this).attr("name")]=$(this).val();
	});
	var problems=new Array();
	for (i in valData) {
		var v=formData[i];
		eval('var result='+valData[i].cond+';');
		if (result==true) {
			$(formObject).find("#"+i).removeClass("inv");
		} else {
			$(formObject).find("#"+i).addClass("inv");
			problems[problems.length]=valData[i].text;

		}
	}
	if (problems.length>0) {
		$(resultObject).css("display", "block").html("Niektoré políčka sú nesprávne vyplnené.");
		return false;
	} else {
		return true;
	}
}

function formIsEmail(value) {
	var regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return regex.test(value);
}


function updateFavorites() {
	var favCookie=cookieArrayRead("favCookie");var favHtml=""; var newFavs=new Array();
	var ii=0;
	if (favCookie.length>0) {
		for (var i=0; i<favCookie.length; i++) {
			if (favCookie[i]) {
				var data=favCookie[i].split(",,");
				if (data.length==3) {
					newFavs[ii]=favCookie[i];
					favHtml=favHtml+'<a class="fav'+ii+'" id="fav'+ii+'" href="'+data[0]+'" title="'+data[1]+'"><span><img src="'+data[2]+'" alt="'+data[1]+'" width="100"/>'+data[1]+'</span></a>';
					ii++;
				}
			}
		}
	}
	$(".favorites_cottage").html(favHtml);
	cookieArrayWrite("favCookie", newFavs);
}

function deleteFavorites() {
	cookieArrayWrite("favCookie", "");
	updateFavorites();
	return false;
}

function formValidateField(event, t) {
	if (t) {
		var el=t;
	} else {
		var el=$(this);
	}
	if (el.attr("type")=="checkbox" || el.attr("type")=="radio") {
		var parentDiv=el.parents("div.row");
		var c=parentDiv.find(":checked").length;
		if (!parentDiv.attr("valCond")) return;
		eval('var result='+parentDiv.attr("valCond")+';');
		if (result==true) {
			parentDiv.find("label.form_help").html("").hide();
			parentDiv.find(".radio_group").removeClass("inv");
		} else {
			parentDiv.find("label.form_help").html(parentDiv.attr("valText")).show();
		}
	} else if (el.attr("type")=="file") {
		if (!el.attr("valCond")) return;
		var v=el.val();
		var types=el.attr("valCond").split(",");
		var matched=0;
		for (i in types) {
			if (v.indexOf("."+types[i])>0) matched++
		}
		if (matched>0) {
			el.parent().find("label.form_help").html("");
			el.removeClass("inv");
			if (formtext.autosubmit==1) {
				$("form.main").find("#mainFormResponse").html("Posielam...");
				$("form.main").submit();
			}
		} else {
			el.parent().find("label.form_help").html(el.attr("valText"));
		}
	} else {
		if (!el.attr("valCond")) return;
		var v=el.val();
		eval('var result='+el.attr("valCond")+';');
		if (result==true) {
			el.parent().find("label.form_help").html("");
			el.removeClass("inv");
			if ((el.attr("type")=="text" || el.attr("type")=="password") && event.keyCode==13) formValidateMain() ;
		} else {
			el.parent().find("label.form_help").html(el.attr("valText"));
			el.addClass("inv");
		}
	}
}

function formValidateMain() {
	var checkedFields=new Object();
	var invalidFields=0;
	var formEl=$("form.main");
	formEl.find(":text, :checkbox, :radio, :file, textarea, select, :password").map( function (i) {
		var el=$(this);
		if (checkedFields[el.attr("name")]==1) {
			return false;
		} else {
			checkedFields[el.attr("name")]=1;
			if (el.attr("type")=="checkbox" || el.attr("type")=="radio") {
				var parentDiv=el.parents("div.row");
				var c=parentDiv.find(":checked").length;
				if (!parentDiv.attr("valCond")) return false;
				eval('var result='+parentDiv.attr("valCond")+';');
				if (result==true) {
					parentDiv.find("label.form_help").html("").hide();
					parentDiv.find(".radio_group").removeClass("inv");
				} else {
					parentDiv.find("label.form_help").html(parentDiv.attr("valText")).show();
					parentDiv.find(".radio_group").addClass("inv");
					invalidFields++
				}
			} else if (el.attr("type")=="file") {
				if (!el.attr("valCond")) return false;
				var v=el.val();
				var types=el.attr("valCond").split(",");
				var matched=0;
				for (i in types) {
					if (v.indexOf("."+types[i])>0) matched++
				}
				if (matched>0) {
					el.parent().find("label.form_help").html("");
					el.removeClass("inv");
				} else {
					el.parent().find("label.form_help").html(el.attr("valText"));
					invalidFields++
				}
			} else {
				if (!el.attr("valCond")) return false;
				var v=el.val();
				eval('var result='+el.attr("valCond")+';');
				if (result==true) {
					el.parent().find("label.form_help").html("");
					el.removeClass("inv");
				} else {
					el.parent().find("label.form_help").html(el.attr("valText"));
					el.addClass("inv");
					invalidFields++
				}
			}
		}
		return false;
	});
	if (invalidFields>0) {
		//formEl.find("#mainFormResponse").html("Niektoré políčka sú nesprávne vyplnené.")
		formEl.find(".inv:first").focus();
	} else {
		changesMade=false;
		var t=formEl.find("#mainFormResponse");
		formEl.find("#mainFormResponse").html("Posielam...");
		formEl.submit();
	}
	return false;
}

function onlyChars(text, validChars) {
	var Char;
	for (i = 0; i < text.length; i++) { 
		Char = text.charAt(i);
		if (validChars.indexOf(text.charAt(i)) == -1) return false;
	}
	return true;
}
