function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}
    
function renderErrorMessage(item, i, cssId) { 
	//for attributes subform
	if (i == 'attributes') {
		$.each(item, function(name,value) {
			if (value.length!=0) {
				$('#attributes-' + name).parent().parent().children('dt').children('label').addClass('form-field-error');
			} else {
				$('#attributes-' + name).parent().parent().children('dt').children('label').removeClass('form-field-error');
			}
		});
	}
	else if(item.length!=0) {
		$('#' +cssId +' #' +i).parent().prev().before('<div class="error">' +item +'</div>');
		$('#' +cssId +' #' +i).addClass('form-field-error');
		$('#' +cssId +' #' +i).click(function() {
			$(this).removeClass('form-field-error');
		});
	} else {
		$('#' +cssId +' #' +i).removeClass('form-field-error');
		$('#' +cssId +' #' +i).unbind("click");
	}
	

}

function renderErrorMessagePostForm(formId) {
	var dd = $('#'  + formId).children('dl').children('dd');
	var errors = dd.children('ul.errors');
	
	$.each(errors, function(i,error) {
		var input = $(error).parent().children('input, textarea');
		
		input.addClass('form-field-error');
		input.click(function() {
			$(this).removeClass('form-field-error');
		});
		
		$(error).hide();
	});
}


function clearFormFieldsFromErrors(formId) {
	var targets = $('#'  + formId).children('dl').children('dd').children('input, textarea');
	
	$.each(targets, function(i,target) {
		$(target).removeClass('form-field-error');
	});
}


function processJson(data, cssId) { 
	$('div.error').remove();
	if(data.successMessage == undefined) {
		$.each(data, function(i,item) {
			renderErrorMessage(item, i, cssId);
			$('p.hint').text('Ole hyvä ja täytä puuttuvat kohdat').addClass('highlight');
		});
	} else {
		$('#' +cssId).empty().append('<div class="confirmation-message">' +data.successMessage +'</div>');
		if(pageTracker && data.GA_url) {
			if(cssId != 'mini') {
				cssId == '';
			}
			pageTracker._trackPageview(data.GA_url +cssId);
		}
		
	}
}

	function trackEmailLinks(pageTracker, email) {
		if(pageTracker) {
			pageTracker._trackPageview('/email/' +email);
		}
	}

$(document).ready(function() {
	 $().ajaxStop(function(){
		 $('input#all').unbind('change');
		 var tog = false; // or true if they are checked on load
		 $("input#all").bind("change", function(){
//		 $('input#all').change(function() {
			var isChecked = $(this).attr('checked');
			if(!isChecked) {
				var tog = true;
			}
		    $("#cities input[type=checkbox]").not('#all').attr("checked",!tog);
		    $('#cities input').trigger('change');
		    tog = !tog;
		 });
	 });

   
    $("a[@rel='external']").click(function(){window.open(this.href); return false;});
    $('#loancalculator').submit(function () {
        var loan = parseInt($('#loan').val().replace(/\ +/g, ''), 10);
        var interest = parseFloat($('#interest').val().replace(/\,/g, '.'), 10);
        
        if (isNaN(interest)) {
            interest = 0;
        }
        
        var months = parseInt($('#time').val(), 10);
        var monthInterestCount = (loan * (interest / 100) / 12);
        var monthlyPayment = (loan / months);
        //var result = Math.round((loan * Math.pow(1.0 + (interest / 100), months / 12)) / months);
        var result = Math.round(monthlyPayment + monthInterestCount);

        if (isNaN(result)) {
            result = '';
        }

        $('#monthlycost').val(result);
		
        return false;		
    });

	$('div.wide_col label.required').append(': *');

    $('form#messageform').ajaxForm({
        dataType:  'json',         
        success: function(data) {
    		processJson(data, 'messageform');
    	}
    }); 
 
    $('form#orderbrochure').ajaxForm({
        dataType:  'json',         
        success: function(data) {
    		processJson(data, 'orderbrochure');
    	}
    }); 

    $('form#mini').ajaxForm({
        dataType:  'json',         
        success: function(data) {
    		processJson(data, 'mini');
    	}
    }); 
    
	$("tbody tr:nth-child(odd)").addClass("odd");
	
	$('a.print, .print a').click( function() {
		window.print();
		return false;
	});

    $(document).pngFix(); 


    var savedSearch = readCookie('savedSearch');
    $('a.savedSearch').attr('href', decodeURIComponent(savedSearch));
    var savedSearchStart = readCookie('savedSearchStart');
    $('a.savedSearchStart').attr('href', decodeURIComponent(savedSearchStart));

   
});
