﻿$(function() {
	var _hidden = ["registration_dealeraddress_address1", "registration_dealeraddress_address2", "registration_dealeraddress_address3", "registration_dealeraddress_postcode"];
	var _templates = {
        text: function(data) {
            if($.inArray(data.id, _hidden) != -1)
               return $([]);
            var value = $("#" + data.id).val();
            value = value ? value : "";
            return $("<div></div>").addClass("field").addClass(data.cssClass)
                .append($("<label/>").text(data.label).attr({ "for": data.id }))
                .append($("<input/>").attr({ id: data.id, name: data.name, type: "text" }).val(value));
        },
        select: function(data) {
            if($.inArray(data.id, _hidden) != -1)
                return $([]);;
            var value = $("#" + data.id).val();
            value = value ? value : "";
            var select = $("<select></select>").attr({
                id: data.id,
                name: data.name,
                disabled: "disabled"
            }).append("<option selected=\"selected\">Loading...</option>");
            data.source(function(regions) {
                select.html("");
                $.each(regions, function(i, item) {
                    select.append($("<option></option>").text(item.text).attr({ value: item.value }));
                });
                select.removeAttr("disabled").val(value);
            });
            return $("<div></div>").addClass("field").addClass(data.cssClass)
                .append($("<label></label>").text(data.label).attr({ "for": data.id }))
                .append(select);
        }
    };
	$("#serialLocationsLink").click(function(e) {
	    window.open('/SerialLocations.html', 'SerialLocations', 'status=0,location=0,height=250px,width=640px');
	});
	$("#addressContainer").globalAddress("#registration_address_country", {
	    fields: {
	        address1: { id: "registration_address_address1", name:"registration.address.address1", cssClass: "field address1" },
	        address2: { id: "registration_address_address2", name:"registration.address.address2", cssClass: "field address2" },
	        address3: { id: "registration_address_address3", name:"registration.address.address3", cssClass: "field address3" },
	        locality: { id: "registration_address_locality", name:"registration.address.locality", cssClass: "field locality" },
	        region: { id: "registration_address_region", name:"registration.address.region", cssClass: "field region" },
	        postCode: { id: "registration_address_postcode", name:"registration.address.postcode", cssClass: "field postCode" }
	    },
	    templates: _templates
	})
	$("#dealerAddressContainer").globalAddress("#registration_dealeraddress_country", {
	    fields: {
	        address1: { id: "registration_dealeraddress_address1", name:"registration.dealeraddress.address1", cssClass: "field dealerAddress1" },
	        address2: { id: "registration_dealeraddress_address2", name:"registration.dealeraddress.address2", cssClass: "field dealerAddress2" },
	        address3: { id: "registration_dealeraddress_address3", name:"registration.dealeraddress.address3", cssClass: "field dealerAddress3" },
	        locality: { id: "registration_dealeraddress_locality", name:"registration.dealeraddress.locality", cssClass: "field dealerLocality" },
	        region: { id: "registration_dealeraddress_region", name:"registration.dealeraddress.region", cssClass: "field dealerRegion" },
	        postCode: { id: "registration_dealeraddress_postcode", name:"registration.dealeraddress.postcode", cssClass: "field dealerPostCode" }
	    },
	    templates: _templates
	});
	$("#registration_address_country").change(function(e) {
	    $("#registration_dealeraddress_country").val($(this).val()).trigger("change");
	});
});