var Error = 0;
var Current = 0;

function MouseOver(o) {
	$(o).addClass("Hover");
}

function MouseOut(o) {
	$(o).removeClass("Hover");
}

function SlideShow(ID) {
	var $Images = $("#" + ID + " Img");
	setTimeout(function() { SlideShowFade($Images, 0); }, 3500);
}

function SlideShowFade($Images, Current) {
	var Next = (Current + 1 < $Images.size()) ? Current + 1 : 0;

	$($Images[Current]).fadeOut(1000);
	$($Images[Next]).fadeIn(1000, function() { $(this).removeAttr("filter"); });

	setTimeout(function() { SlideShowFade($Images, Next); }, 3500);
}

function DP2S(X) {
    return String((Math.round(X * 100) + (X < 0 ? -0.1 : 0.1)) / 100).replace(/(.*\.\d\d)\d*/, "$1");
}

var Search_Focus = function(o) {
	$(o).attr("className", "Focus");
	if (o.value == "Hakusana...") $(o).val("");
};

var Search_Blur = function(o) {
	if (o.value == "") $(o).attr("className", "Blur").val("Hakusana...");
	else $(o).attr("className", "Focus");
};

function CopyBillingFields(Checked) {

	var Fields = ["Address", "PostCode", "City", "Country"];

	$(Fields).each(function() {
		var $Billing = $("#Billing" + this);
		var $Shipping = $("#Shipping" + this);

		if (Checked)	$Shipping.attr("readonly", Checked).addClass("ReadOnly").val($Billing.val());
		else			$Shipping.attr("readonly", Checked).removeClass("ReadOnly");

	});

} // CopyBillingFields

var ChangeNodeSet = function(PageNum, PageCount) {
	for(var Count = 1; Count <= PageCount; Count++) {
		var Display = Count == PageNum ? "inline" : "none";
		$("#NodeSet_" + Count).css("display", Display);
	}
};

var ChangeArticleSet = function(PageNum, PageCount) {
	for(var Count = 1; Count <= PageCount; Count++) {
		var Display = Count == PageNum ? "inline" : "none";
		$("#ArticleSet_" + Count).css("display", Display);
	}
};

function Slide(src, width, height) {
	this.src	= src;
	this.width	= width;
	this.height	= height;
}

function PreLoad(ImageArr) {
	var PreLoadArr = new Array();

	for(var Count = 0; Count < ImageArr.length; Count++) {
		PreLoadArr[Count] = new Image();
		PreLoadArr[Count].src = ImageArr[Count].src;
	}
}

function SlideShow2(SlideArr) {
	var SlideCount = SlideArr.length;
	var SlideImage = $("#SlideImage");

	SlideImage.src = SlideArr[Current].src;
	SlideImage.width = SlideArr[Current].width;
	SlideImage.height = SlideArr[Current].height;

	Current = (Current < SlideCount - 1) ? Current + 1 : 0;

	setTimeout("SlideShow(SlideArr)", 5000);
}

function Form_Validate(Form) {
	var Field, Type, Value, Length;

	// Tarkistukset sähköpostin ja URL:n oikeellisuuteen
	var Mail	= /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
	var URL		= /^(http:\/\/|https:\/\/|ftp:\/\/|www.){1}([\w]+)(.[\w]+){1,2}$/;

	var ErrorCount = 0;

	var InputArr = Form.elements;
	var InputCount = InputArr.length;

	for(var Input = 0; Input < InputCount; Input++) {
		Error = 0;

		var Field	= InputArr[Input];
		var Name	= Field.name.toLowerCase();

		// Jos kenttä on vaadittu
		if(Name.substring(0, 4) == "req_") {
			var Node	= Field.nodeName.toLowerCase();
			var Type	= Field.type;
			var Value	= Field.value;

			if((Node == "input" && (Type == "text" || Type == "password")) || Node == "textarea") {

				if(Name.indexOf("email") > 0 || Name.indexOf("sahkoposti") > 0) {

					// Tarkista sähköpostiosoite
					if(Mail.test(Value) != true)	Error = 1;

				} else if(Name.indexOf("url") > 0 || Name.indexOf("kotisivu") > 0) {

					// Tarkista URL
					if(URL.test(Value) != true)		Error = 1;

				} else {

					// Tyhjä kenttä
					if(Value == "")					Error = 1;

				}

			} else if((Node == "input" && (Type == "radio" || Type == "checkbox")) || Node == "select") {
				var OptionArr = Field.options;
				var OptionCount = OptionArr.length;

				for(var Option = 0; Option < OptionCount; Option++) {

				}
			}

			if(Error == 1) {
				ErrorCount++;
				Field.style.backgroundColor = "yellow";
			} else {
				Field.style.backgroundColor = "";
			}
		}
	}

	if(ErrorCount == 0) return true;
	else return false;
}