﻿/// <reference name="MicrosoftAjax.js" />
/// <reference name="Util.js" />
if (!window.__rootNamespaces || window.__rootNamespaces.length == 0) {
	window.__rootNamespaces = [];
	window.__registeredTypes = {};
	var rootObject = window;
	var currentPart = "kia";
	var i;
	var ns = rootObject[currentPart];
	if (!ns) {
		ns = rootObject[currentPart] = {};
		if (i === 0) {
			window.__rootNamespaces[window.__rootNamespaces.length] = ns;
		}
		ns.__namespace = true;
		ns.__typeName = currentPart + ".";
	}
	rootObject = ns;
}
kia = function() { }

kia.constants = function() {
	///<summary>Provides access to constants</summary>
}
kia.constants.prototype = {
	currentModel: "",
	currentContent: "",
	models: [
		[13,"Cerato Koup","kia_cerato_koup.htm",["img/cerato/koup/ceratofill.jpg","img/cerato/koup/cerato_clear_white.jpg","img/cerato/koup/cerato_santorini_blue.jpg","img/cerato/koup/cerato_titanium_silver.jpg","img/cerato/koup/cerato_bright_silver.jpg","img/cerato/koup/cerato_ebony_black.jpg","img/cerato/koup/cerato_racing_red.jpg"]],
		[2,"Cerato","kia_cerato.htm",["img/cerato/sedan/ceratofill.jpg","img/cerato/sedan/cerato_bright_silver.jpg","img/cerato/sedan/cerato_clear_white.jpg","img/cerato/sedan/cerato_dark_cherry.jpg","img/cerato/sedan/cerato_ebony_black.jpg","img/cerato/sedan/cerato_light_graphite.jpg","img/cerato/sedan/cerato_metal_bronze.jpg","img/cerato/sedan/cerato_santorini_blue.jpg","img/cerato/sedan/cerato_spicy_red.jpg","img/cerato/sedan/cerato_titanium_silver.jpg"]],
		[3, "Picanto", "kia_picanto.htm", ["img/picanto/picantofill.jpg", "img/picanto/picanto_bright_silver.jpg", "img/picanto/picanto_clear_white.jpg", "img/picanto/picanto_cool_blue.jpg", "img/picanto/picanto_diamond_blue.jpg", "img/picanto/picanto_fresh_yellow.jpg", "img/picanto/picanto_galaxy_black.jpg", "img/picanto/picanto_nav.jpg", "img/picanto/picanto_scarlet_red.jpg", "img/picanto/picanto_soda_orange.jpg", "img/picanto/picanto_titanium_silver.jpg"]],
		[4, "Rio", "kia_rio.htm", ["img/rio/riofill.jpg", "img/rio/rio_cashmere_beige.jpg", "img/rio/rio_clear_silver.jpg", "img/rio/rio_clear_white.jpg", "img/rio/rio_midnight_black.jpg", "img/rio/rio_nav.jpg", "img/rio/rio_olive_grey.jpg", "img/rio/rio_polar_silver.jpg", "img/rio/rio_sapphire_blue.jpg", "img/rio/rio_soft_green.jpg", "img/rio/rio_sunset_orange.jpg", "img/rio/rio_tropical_red.jpg"]],
		[5, "Sedona", "kia_sedona.htm", ["img/sedona/sedonafill.jpg", "img/sedona/sedona_cherry_kiss_cocktail.jpg", "img/sedona/sedona_clear_silver.jpg", "img/sedona/sedona_clear_white.jpg", "img/sedona/sedona_crystal_blue.jpg", "img/sedona/sedona_evening_sailing_gold.jpg", "img/sedona/sedona_indigo_blue.jpg", "img/sedona/sedona_midnight_black.jpg", "img/sedona/sedona_nav.jpg", "img/sedona/sedona_olive_grey.jpg"]],
		[14, "Sorento", "kia_sorento.htm", ["img/sorento/sorentofill.jpg", "img/sorento/sorento_clear_silver.jpg", "img/sorento/sorento_clear_white.jpg", "img/sorento/sorento_ebony_black.jpg", "img/sorento/sorento_greyish_purple.jpg", "img/sorento/sorento_ice_blue.jpg", "img/sorento/sorento_indigo_blue.jpg", "img/sorento/sorento_ivy_green.jpg", "img/sorento/sorento_nav.jpg", "img/sorento/sorento_radiant_red.jpg", "img/sorento/sorento_sand_beige.jpg", "img/sorento/sorento_sport_blue.jpg"]],
		[7, "Sportage", "kia_sportage.htm", ["img/sportage/sportagefill.jpg", "img/sportage/sportage_bright_silver.jpg", "img/sportage/sportage_cherry_black.jpg", "img/sportage/sportage_clear_white.jpg", "img/sportage/sportage_greyish_silver.jpg", "img/sportage/sportage_nav.jpg", "img/sportage/sportage_shiny_gold.jpg"]],
		[8, "Proceed", "kia_proceed.htm", ["img/proceed/proceedfill.jpg", "img/proceed/proceed_abyss_blue.jpg", "img/proceed/proceed_black_pearl.jpg", "img/proceed/proceed_cassa_white.jpg", "img/proceed/proceed_dakar_yellow.jpg", "img/proceed/proceed_machine_silver.jpg", "img/proceed/proceed_nav.jpg", "img/proceed/proceed_piston_grey.jpg"]],
		[9, "K2700", "kia_k2700.htm", ["img/k2700/K2700fill.jpg", "img/k2700/K2700.jpg", "img/k2700/K2700_nav.jpg"]],
		[10, "Soul", "kia_soul.htm", ["img/soul/soulfill.jpg", "img/soul/soul_black_cherry.jpg", "img/soul/soul_blue_stone.jpg", "img/soul/soul_bright_silver.jpg", "img/soul/soul_clear_white.jpg", "img/soul/soul_cocktail_orange.jpg", "img/soul/soul_moonlight_blue.jpg", "img/soul/soul_nav.jpg", "img/soul/soul_titanium_silver.jpg", "img/soul/soul_tomato_red.jpg", "img/soul/soul_vanilla_shake.jpg"]],
		[15, "New Sportage", "kia_new_sportage.htm", ["img/new_sportage/sportagefill.jpg", "img/new_sportage/sportage_nav.jpg"]]

	]
}
kia.constants = kia.constants.prototype;

kia.element = function() {
	///<summary>Provides access to dom elements</summary>
}
kia.element.prototype = {
	$: function() {
		///<summary>Cross-browser function that returns an object reference to an element</summary>
		var elements = new Array();
		for (var i = 0; i < arguments.length; i++) {
			var element = arguments[i];
			if (typeof element == "string")
				element = document.getElementById(element);
			if (arguments.length == 1)
				return element;
			elements.push(element);
		}
		return elements;
	},
	find: function(elementToFind, containerElement) {
		///<summary>Cross-browser function that returns an object reference to an element</summary>
		///<param name="elementToFind" type="String">The id of the element</param>
		///<param name="containerElement" type="Object" optional="True">The root level element</param>
		///<returns type="Object">A reference to the element.</returns>
		if (!containerElement)
			containerElement = document;
		if (elementToFind) {
			if (typeof containerElement == "string")
				containerElement = kia.element.$(containerElement) || document.getElementsByName(containerElement)[0] || document.getElementsByTagName(containerElement)[0];
			if (typeof elementToFind == "string")
				elementToFind = kia.element.$(elementToFind) || document.getElementsByName(elementToFind)[0] || document.getElementsByTagName(elementToFind)[0];
			if (containerElement && elementToFind) {
				if (elementToFind != containerElement) {
					if (containerElement.contains) {
						return containerElement.contains(elementToFind);
					}
					else {
						if (!containerElement == document)
							return !!(containerElement.compareDocumentPosition(elementToFind) & 16)
						else
							return false;
					}
				}
			}
		}
		return false;
	},
	search: function(sourceElement, targetElement) {
		///<summary></summary>
		var childNodes = sourceElement.childNodes;
		for (var count = 0; count < childNodes.length; count++) {
			if (childNodes[count] == targetElement)
				return true;
			else {
				for (var count2 = 0; count2 < childNodes[count].childNodes.length; count2++) {
					if (childNodes[count].childNodes[count2] == targetElement)
						return true;
				}
			}
		}
		return false;
	},
	findByClass: function(classNames, tagName, parentElement) {
		///<summary>Find an element based on it's css class name</summary>
		///<param name="classNames" type="String">The class names to search for, comma-seperated</param>
		///<param name="tagName" type="String" optional="True">The html tag name to search for</param>
		///<param name="parentElement" type="Object" optional="True">The root level element</param>
		///<returns type="Object">A reference to the element.</returns>
		if (!parentElement) parentElement = document;
		var valueArray = classNames.split(",");
		var elements = ((!tagName || tagName == "") && parentElement.all) ? parentElement.all : parentElement.getElementsByTagName(tagName);
		var returnElements = [];
		var currentElement;
		var currentValue;
		for (var x = 0; x < elements.length; x++) {
			currentElement = elements[x];
			if (currentElement.className) {
				currentValue = currentElement.className;
				for (var y = 0; y < valueArray.length; y++) {
					if (currentValue == valueArray[y]) {
						returnElements.push(currentElement);
						break;
					}
				}
			}
		}
		return returnElements;
	},
	setOpacity: function(targetElement, opacity) {
		///<summary>Sets the transparency of an element</summary>
		///<param name="targetElement" type="Object">The element to modify</param>
		///<param name="opacity" type="Int">An opacity value between 0 and 100 to apply</param>
		if (targetElement) {
			if (opacity == 120) {
				if (targetElement.style.removeAttribute) {
					targetElement.style.removeAttribute("filter")
					targetElement.style.removeAttribute("opacity")
					targetElement.style.removeAttribute("MozOpacity")
					targetElement.style.removeAttribute("KhtmlOpacity")
				}
				else {
					targetElement.style.removeProperty("filter")
					targetElement.style.removeProperty("opacity")
					targetElement.style.removeProperty("MozOpacity")
					targetElement.style.removeProperty("KhtmlOpacity")
				}
			}
			else {
				targetElement.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + opacity + ")";
				if (opacity > 0)
					opacity = opacity / 100;
				targetElement.style.opacity = opacity;
				targetElement.style.MozOpacity = opacity;
				targetElement.style.KhtmlOpacity = opacity;
			}
		}
	},
	expandCollapse: function(targetElement) {
		///<summary></summary>
		var activeHeader;
		var activeBlock;
		var active = false;
		var activeHeaders = this.findByClass("infoareaheader_expanded", "div", targetElement.parentNode);
		if (activeHeaders.length > 0) {
			active = true;
			activeHeader = activeHeaders[0];
			activeBlock = activeHeader.nextSibling;
		}

		var inactive = false;
		var inactiveBlock;
		if (targetElement.className == "infoareaheader_collapsed") {
			inactive = true;
			targetElement.className = "infoareaheader_expanded"
			targetElement.nextSibling.className = "infoarea_expanded";
			targetElement.nextSibling.style.height = "0px";
			inactiveBlock = targetElement.nextSibling;
		}

		var jumpAmount = 20;
		var expandCollapseInt = setInterval(function() {
			if (!active && !inactive)
				clearInterval(expandCollapseInt);
			else {
				if (active) {
					if (activeBlock.clientHeight - jumpAmount > 0)
						activeBlock.style.height = (activeBlock.clientHeight - jumpAmount) + "px";
					else {
						activeBlock.className = "infoarea_collapsed";
						activeHeader.className = "infoareaheader_collapsed";
						active = false;
					}
				}
				if (inactive) {
					if (inactiveBlock.clientHeight < inactiveBlock.scrollHeight)
						inactiveBlock.style.height = (inactiveBlock.clientHeight + jumpAmount) + "px";
					else {
						inactiveBlock.style.height = inactiveBlock.scrollHeight + "px";
						inactive = false;
					}
				}
			}
			jumpAmount += 5;
		}, 10);
	},
	getModel: function(modelID, itemID) {
		for (var x = 0; x < kia.constants.models.length; x++) {
			if (kia.constants.models[x][0] == modelID) {
				return kia.constants.models[x][itemID];
			}
		}
	},
	getModelByName: function(modelName, itemID) {
	for (var x = 0; x < kia.constants.models.length; x++) {
			if (kia.constants.models[x][1] == modelName) {
				return kia.constants.models[x][itemID];
			}
		}
	},
	swapImage: function(location) {
		kia.element.$("imgHolder").src = location;
	}
}
kia.element = kia.element.prototype;

kia.events = function() {
	///<summary>Provides access to event handling</summary>
}
kia.events.prototype = {
    preload: function(imageArray, loadAfter) {
        window.imageObjects = new Array(imageArray.length);
        window.imageCount = 0;
        for (var x = 0; x < window.imageObjects.length; x++) {
            window.imageObjects[x] = new Image();
            window.imageObjects[x].onload = function() {
                window.imageCount++;
                if (window.imageCount >= window.imageObjects.length) {
                    if (loadAfter)
                        loadAfter();
                }
            }
            window.imageObjects[x].onerror = function() {
                window.imageCount++;
                if (window.imageCount >= window.imageObjects.length) {
                    if (loadAfter)
                        loadAfter();
                }
            }
            window.imageObjects[x].src = imageArray[x];
        }
    },
    curExtraContent: "",
    curModelContent: "",
    fadeInt: "",
    fadeInt2: "",
    getExtraContent: function(e, url, heading) {
        frametitle = (e.srcElement || e.target).title;
        var request;
        if (window.XMLHttpRequest) {
            request = new XMLHttpRequest();
            try {
                request.onreadystatechange = function() { }
                request.abort()
            }
            catch (e) { }
        }
        else if (window.ActiveXObject)
            request = new ActiveXObject("Microsoft.XMLHTTP");
        if (request) {
            if (url == "test_drive.asp" && kia.events.curModelContent) {
                for (var x = 0; x < kia.constants.models.length; x++) {
                    if (kia.constants.models[x][2] == kia.events.curModelContent) {
                        url += "?typeid=" + kia.constants.models[x][2];
                        break;
                    }
                }
            }
            kia.events.curExtraContent = url;
            request.open('GET', url, true);
            request.send(null);
            //var extraContent = kia.element.$("extraContent");
            var extraContent = kia.element.$("framewind");
            kia.events.curOpacity = 100;
            var fadeOut = true;
            if (extraContent.innerHTML.length == 0) {
                kia.events.curOpacity = 0;
            }
            if (kia.events.fadeInt)
                window.clearInterval(kia.events.fadeInt);
            kia.events.fadeInt = window.setInterval(function() {
                if (kia.events.curOpacity == 0 && fadeOut) {
                    if (request.readyState == 4) {
                        logAnalytics(url)
                        kia.element.$("pagecontent").scrollIntoView()
                        kia.element.$("header").innerHTML = frametitle
                        kia.element.$("framecontent").innerHTML = '<div id=scrolltarget></div>';
                        kia.element.$("scrolltarget").scrollIntoView(false);
                        kia.element.$("framecontent").innerHTML = request.responseText;
                        //kia.element.$("framecontent").setAttribute('ischatting','no')
                        kia.element.$("framewind").style.display = 'block';
                        fadeOut = false;
                    }
                }
                else if (kia.events.curOpacity == 120)
                    window.clearInterval(kia.events.fadeInt);
                else {
                    if (fadeOut)
                        kia.events.curOpacity -= 20;
                    else
                        kia.events.curOpacity += 20;
                    //kia.element.setOpacity(kia.element.$("extraContent"), kia.events.curOpacity);
                    kia.element.setOpacity(kia.element.$("framewind"), kia.events.curOpacity);
                }
            }, 10);
        }
    },
    curOpacity: 0,
    getModelContent: function(e, modelName) {
        kia.element.$("crumbtitle").innerHTML = modelName;
        var request;
        if (window.XMLHttpRequest)
            request = new XMLHttpRequest();
        else if (window.ActiveXObject)
            request = new ActiveXObject("Microsoft.XMLHTTP");
        if (request) {
            request.open('GET', kia.element.getModelByName(modelName, 2), true);
            request.send(null);
            this.curModelContent = kia.element.getModelByName(modelName, 2);
            var modelContent = kia.element.$("modelContent");
            kia.events.curOpacity = 0;
            var fadeOut = true;
            if (modelContent.innerHTML.length == 0)
                kia.events.curOpacity = 100;
            if (kia.events.fadeInt2)
                window.clearInterval(kia.events.fadeInt2);
            kia.element.$("loader").style.display = "";
            kia.events.fadeInt2 = window.setInterval(function() {
                if (kia.events.curOpacity == 100) {
                    if (request.readyState == 4) {
                        window.clearInterval(kia.events.fadeInt2);
                        kia.element.$("modelContent").innerHTML = request.responseText;
                        kia.events.preload(kia.element.getModelByName(modelName, 3), function() {
                            kia.events.fadeInt2 = window.setInterval(function() {
                                if (kia.events.curOpacity == 0) {
                                    window.clearInterval(kia.events.fadeInt2);
                                    kia.element.$("loader").style.display = "none";
                                    if (kia.events.curExtraContent) {
                                        for (var x = 0; x < kia.constants.models.length; x++) {
                                            if (kia.constants.models[x][2] == kia.element.getModelByName(modelName, 2)) {
                                                kia.element.$("framewind").style.display = 'none';

                                                //var newExtraContent = kia.events.curExtraContent.replace(/([^\=]*?)\=(.*)/igm, "$1=" + kia.constants.models[x][0]);
                                                // kia.events.getExtraContent(null, newExtraContent);
                                                break;
                                            }
                                        }
                                    }
                                }
                                else {
                                    kia.events.curOpacity -= 20;
                                    kia.element.setOpacity(kia.element.$("loader"), kia.events.curOpacity);
                                }
                            }, 10);
                        });
                    }
                    kia.events.loadEvents(kia.element.$("modelContent"));
                }
                else {
                    kia.events.curOpacity += 20;
                    kia.element.setOpacity(kia.element.$("loader"), kia.events.curOpacity);
                }
            }, 10);
        }
    },
    submitForm: function(action) {
        var postString = "";
        var telValidation = new RegExp("^([0-9]+)$");
        var emailValidation = new RegExp("^[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+)*@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z0-9_\-]{2,4}$");
        var postElements = [kia.element.$("form").getElementsByTagName("input"), kia.element.$("form").getElementsByTagName("select"), kia.element.$("form").getElementsByTagName("textarea")];
        for (var x = 0; x < postElements.length; x++) {
            for (var y = 0; y < postElements[x].length; y++) {
                var curElement = postElements[x][y];
                if (curElement.required == 1 && curElement.value == "") {
                    alert(curElement.title);
                    curElement.focus();
                    return false;
                }
                else if (curElement.validation == "tel" && (curElement.value.length < 10 || !telValidation.test(curElement.value))) {
                    alert("The Contact Number you entered is invalid. Only numbers are allowed, and a minimum of 10 characters are required.");
                    curElement.focus();
                    return false;
                }
                else if (curElement.validation == "email" && !emailValidation.test(curElement.value)) {
                    alert("The email address you entered is invalid.");
                    curElement.focus();
                    return false;
                }
                else {
                    if (postElements[x][y].type == 'radio') {
                        if (postElements[x][y].checked) {
                            postString += "&" + postElements[x][y].id + "=" + encodeURIComponent(postElements[x][y].value);
                        }
                    }
                    else {
                        postString += "&" + postElements[x][y].id + "=" + encodeURIComponent(postElements[x][y].value);
                    }
                }
            }
        }
        if (postString.length > 0) {
            httppost(action, postString.substring(1), function() {
                if (xmlhttp.readyState == 4) {
                    //kia.element.$("extraContent").innerHTML = xmlhttp.responseText;
                    kia.element.$("framecontent").innerHTML = xmlhttp.responseText;
                }
            });
        }
    },
    getVehicles: function() {
        var val = kia.element.$('typeid').value;
        if (val == '')
            kia.element.$('vehicleholder').innerHTML = '';
        else {
            httppost("getvehicles.asp", "typeid=" + val, function() {
                if (xmlhttp.readyState == 4)
                    kia.element.$("vehicleholder").innerHTML = xmlhttp.responseText;
            });
        }
    },
    getDealers: function(type, runafter) {
        var val = kia.element.$('provinceid').value;
        if (val == '')
            kia.element.$('dealerholder').innerHTML = '';
        else {
            postvals = "provinceid=" + val;
            if (type) {
                postvals += "&type=" + type
            }
            httppost("getdealers.asp", postvals, function() {
                if (xmlhttp.readyState == 4) {
                    kia.element.$("dealerholder").innerHTML = xmlhttp.responseText;
                    if (runafter)
                        kia.element.$("dealerid").onchange = function() { kia.events.getDealership(); }
                }
            });
        }
    },
    getDealerships: function() {
        var val = kia.element.$('dealerid').value;
        if (val == '')
            kia.element.$('dealershipdetailholder').innerHTML = '';
        else {
            httppost("dealership_detail.asp", "dealerid=" + val, function() {
                if (xmlhttp.readyState == 4) {
                    kia.element.$("dealershipdetailholder").innerHTML = xmlhttp.responseText;
                }
            });
        }
    },
    getDealershipsInProvince: function() {
        var val = kia.element.$('provinceid').value;
        if (val == '')
            kia.element.$('dealershipholder').innerHTML = '';
        else {
            httppost("dealerships_in_province.asp", "provinceid=" + val, function() {
                if (xmlhttp.readyState == 4) {
                    kia.element.$("dealershipholder").innerHTML = xmlhttp.responseText;
                }
            });
        }
    },
    validate: function() {
        if (kia.element.$("name").value == "") {
            alert("Please provide your name.");
            kia.element.$("name").focus();
            return false;
        }

        if (kia.element.$("contactnum").value == "") {
            alert("Please provide a Contact number.");
            kia.element.$("contactnum").focus();
            return false;
        }

        if (kia.element.$("email").value == "") {
            alert("Please provide an Email address.");
            kia.element.$("email").focus();
            return false;
        }

        if (kia.element.$("typeid").value == "") {
            alert("Please select a Model.");
            kia.element.$("typeid").focus();
            return false;
        }

        if (kia.element.$("vehicleid")) {
            if (kia.element.$("vehicleid").value == "") {
                alert("Please select a Derivative.");
                kia.element.$("vehicleid").focus();
                return false;
            }
        }
        else {
            alert("Please select a Model.");
            kia.element.$("typeid").focus();
            return false;
        }

        if (kia.element.$("provinceid").value == "") {
            alert("Please select a Province.");
            kia.element.$("provinceid").focus();
            return false;
        }

        if (kia.element.$("dealerid")) {
            if (kia.element.$("dealerid").value == "") {
                alert("Please select a Dealership.");
                kia.element.$("dealerid").focus();
                return false;
            }
        }
        else {
            alert("Please select a Province.");
            kia.element.$("provinceid").focus();
            return false;
        }

        if (kia.element.$("servicetypeid")) {
            if (kia.element.$("servicetypeid").value == "") {
                alert("Please select a Type of service.");
                kia.element.$("servicetypeid").focus();
                return false;
            }

            //if (kia.element.$("day").value == "" || kia.element.$("month").value == "" || kia.element.$("year").value == "") {
            if (kia.element.$("day1").value == "" || kia.element.$("month1").value == "") {
                alert("Please select a Preferred Date 1 required in full.");
                kia.element.$("day1").focus();
                return false;
            }
            else {
                return checkdate('1');
            }
            
            if (kia.element.$("day2").value == "" || kia.element.$("month2").value == "") {
                alert("Please select a Preferred Date 2 required in full.");
                kia.element.$("day2").focus();
                return false;
            }
            else {
                return checkdate('2');
            }
            
            if (kia.element.$("day3").value == "" || kia.element.$("month3").value == "") {
                alert("Please select a Preferred Date 3 required in full.");
                kia.element.$("day3").focus();
                return false;
            }
            else {
                return checkdate('3');
            }

            if (kia.element.$("altcontactnum").value == "") {
                alert("Please provide an Alternate contact number.");
                kia.element.$("altcontactnum").focus();
                return false;
            }
        }
        return true;
    },
    brochurevalidate: function() {
        if (kia.element.$("vehicleid").value == '') {
            alert('Please select a Derivative.');
            kia.element.$("vehicleid").focus();
            return false;
        }

        if (kia.element.$("colorid").value == '') {
            alert('Please select a Colour.');
            kia.element.$("colorid").focus();
            return false;
        }

        if (kia.element.$("provinceid").value == '') {
            alert('Please select a Province.');
            kia.element.$("provinceid").focus();
            return false;
        }

        if (kia.element.$("dealerid")) {
            if (kia.element.$("dealerid").value == '') {
                alert('Please select a Dealer.');
                kia.element.$("dealerid").focus();
                return false;
            }
        }
        else {
            alert('Please select a Province and then a Dealer.');
            kia.element.$("provinceid").focus();
            return false;
        }

        return true;
    },
    /*
    chatsurveyvalidate: function() {
        var choicemade = false;

        for (n = 0; n < document.getElementsByName("Polite").length; n++) {
            if (document.getElementsByName("Polite")[n].checked) choicemade = true;
        }

        if (!choicemade) {
            alert('Please indicate if the operator was polite and friendly before submitting the survey.');
            return false;
        }
        else {
            choicemade = false;
        }

        for (n = 0; n < document.getElementsByName("Helpful").length; n++) {
            if (document.getElementsByName("Helpful")[n].checked) choicemade = true;
        }

        if (!choicemade) {
            alert('Please indicate how helpful the operator was before submitting the survey.');
            return false;
        }

        return true;
    },
    */
    initializegmap: function(lat, lon) {
        if (kia.element.$("map_canvas")) {
            if (GBrowserIsCompatible()) {
                var map = new GMap2(kia.element.$("map_canvas"));
                //map.setCenter(new GLatLng(37.4419, -122.1419), 13);
                var latlon = new GLatLng(lat, lon)
                map.setCenter(latlon, 13);
                map.addOverlay(new GMarker(latlon));
                map.setUIToDefault();
            }
        }
    },
    checkdate: function(nnum) {
        var dday = kia.element.$("day" + nnum).value;
        var mt = kia.element.$("month" + nnum);
        var mmontharr = mt.value.split('-');
        var mmonth = mmontharr[0];
        var mmonthname = mt.options[mt.selectedIndex].text;
        //var yyear = kia.element.$("year").value;
        var yyear = mmontharr[1];

        if (dday != "" && mmonth != "" && yyear != "") {
            var cdate = new Date(yyear + "/" + mmonth + "/" + dday);
            var checkday = cdate.getDate();
            if (checkday != parseInt(dday)) {
                alert(dday + " " + mmonthname + " is not a valid date, please select a date that is valid.");
                kia.element.$("day" + nnum).value = "";
                kia.element.$("day" + nnum).focus();
                return false;
            }
        }
        return true;
    },
    popup: function(galleryId) {
        var popupContent = kia.element.$("popupContent");
        kia.element.$('popup').style.display = 'block';
        httppost("getgallery.asp", "galleryid=" + galleryId, function() {
            if (xmlhttp.readyState == 4) {
                popupContent.innerHTML = xmlhttp.responseText;
            }
        });
    },
    popupLoaded: function() {
        var popupContent = kia.element.$("popupContent");
        popupContent.getElementsByTagName('TABLE')[0].style.display = "";
        popupContent.style.width = popupContent.childNodes[0].clientWidth + "px";
        popupContent.style.height = popupContent.childNodes[0].clientHeight + "px";
        popupContent.style.margin = '-' + (popupContent.childNodes[0].clientHeight / 2) + 'px 0 0 -' + (popupContent.childNodes[0].clientWidth / 2) + 'px';
    },
    addEvent: function(element, eventName, code) {
        ///<summary>Add an event handler to an element</summary>
        ///<param name="element" type="Object">The element to attach the event to</param>
        ///<param name="eventName" type="String">The trigger event name</param>
        ///<param name="code" type="Object">The script or function to execute when the event is triggered</param>
        if (typeof (element) == "string")
            element = kia.element.$(element);
        if (element) {
            if (element.addEventListener)
                element.addEventListener(eventName, code, false);
            else
                if (eventName == "mouseover")
                element.attachEvent("onmouseenter", code);
            else if (eventName == "mouseout")
                element.attachEvent("onmouseleave", code);
            else
                element.attachEvent("on" + eventName, code);
        }
    },
    cancelBubbling: function(e) {
        ///<summary>Cancels bubbling of events</summary>
        ///<param name="e" type="Object" optional="false">The captured mouse-event</param>	
        if (window.event) {
            e.returnValue = false;
            e.cancelBubble = true;
        }
        else if (e) {
            e.preventDefault();
            e.stopPropagation();
        }
    },
    menuClick: function(e) {
        var elem = (e.srcElement || e.target)
        kia.events.cancelBubbling(e)
        //kia.element.$("framecontent").scrollTo(0, 0)
        //var elements = kia.events.handleEvent(e);
        if (elem) {
            if (elem.parentNode.tagName.toLowerCase() == "li") {
                for (var x = 0; x < elem.parentNode.parentNode.childNodes.length; x++) {
                    elem.parentNode.parentNode.childNodes[x].className = "";
                }
                elem.parentNode.className = "active";
            }
            if (elem.tagName == 'IMG') elem = elem.parentNode
            if (elem.href) {
                var navtype;
                if (elem.getAttribute)
                    navtype = elem.getAttribute("navtype");
                else
                    navtype = elem.navtype

                if (navtype == "model") {
                    kia.events.getModelContent(e, elem.title);
                }
                else if (navtype == "extra") {
                    kia.events.getExtraContent(e, elem.href);
                }
                else if (navtype == "newslink") {
                    kia.events.getExtraContent(e, elem.href);
                    window.setTimeout('kia.events.loadEvents(kia.element.$("newslinks1"))', 300);
                }
            }
        }
    },
    loadEvents: function(parentElement) {
        parentElement = parentElement || kia.element.$("breadcrumbs");
        var menuItems = parentElement.getElementsByTagName("a");
        for (var x = 0; x < menuItems.length; x++) {
            if (menuItems[x].getAttribute('navtype') != 'link') {
                kia.events.addEvent(menuItems[x], "click", function(e) {
                    kia.events.menuClick(window.event || e);
                });
            }
        }
    }
}
kia.events = kia.events.prototype;

window.onload = function() {
	runload()
}
function logAnalytics(url) {
	try {
		var pageTracker = _gat._getTracker("UA-9846415-1");
		pageTracker._trackPageview(url);
	}
	catch (e) { }

}

function doBrochureLoad(url) {
	vtype = doc('type').value;
	vmodel = doc('vehicleid').options[doc('vehicleid').selectedIndex].text;
	vcolour = doc('colorid').options[doc('colorid').selectedIndex].text;
	trackingurl = 'pdf_' + escape(vtype + '_' + vmodel + '_' + vcolour) + '.htm';
	if (kia.events.brochurevalidate()) {
		logAnalytics(trackingurl);
		window.location.href=url + '?typeid=' + doc('typeid').value + '&vehicleid=' + doc('vehicleid').value + '&colorid=' + doc('colorid').value + '&provinceid=' + doc('provinceid').value + '&dealerid=' + doc('dealerid').value;
	}
}