// JavaScript Document

/*==================================================*
	$Id: bootCompany.js,v 1.4 2009/08/31 17:43:56 hobsona Exp $
	Copyright 2000-2003 Patrick Fitzgerald
 	http://slideshow.barelyfitz.com/

 	This program is free software; you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
 	the Free Software Foundation; either version 2 of the License, or
 	(at your option) any later version.

 	This program is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.

 	You should have received a copy of the GNU General Public License
 	along with this program; if not, write to the Free Software
 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*==================================================*/

// There are two objects defined in this file:
// "slide" - contains all the information for a single slide
// "slideshow" - consists of multiple slide objects and runs the slideshow

//==================================================
// slide object
//==================================================
function slide(src,link,text,target,attr) {
	// This is the constructor function for the slide object.
  	// It is called automatically when you create a new slide object.
  	// For example:
  	// s = new slide();

  	// Image URL
  	this.src = src;

  	// Link URL
  	this.link = link;

  	// Text to display
  	this.text = text;

  	// Name of the target window ("_blank")
  	this.target = target;

  	// Custom duration for the slide, in milliseconds.
  	// This is an optional parameter.
  	// this.timeout = 3000

  	// Attributes for the target window:
  	// width=n,height=n,resizable=yes or no,scrollbars=yes or no,
  	// toolbar=yes or no,location=yes or no,directories=yes or no,
  	// status=yes or no,menubar=yes or no,copyhistory=yes or no
  	// Example: "width=200,height=300"
  	this.attr = attr;

  	// Create an image object for the slide
  	if (document.images) {
    	this.image = new Image();
  	}

  	// Flag to tell when load() has already been called
  	this.loaded = false;

  	//--------------------------------------------------
  	this.load = function() {
    	// This method loads the image for the slide

    	if (!document.images) { return; }

    	if (!this.loaded) {
      		this.image.src = this.src;
	  		this.image.title = this.text;
	  		this.image.alt = this.text
      		this.loaded = true;
    	}
  	}

  	//--------------------------------------------------
  	this.hotlink = function() {
    	// This method jumps to the slide's link.
    	// If a window was specified for the slide, then it opens a new window.

    	var mywindow;

    	// If this slide does not have a link, do nothing
    	if (!this.link) return;

    	// Open the link in a separate window?
    	if (this.target) {

      		// If window attributes are specified,
      		// use them to open the new window
      		if (this.attr) {
        		mywindow = window.open(this.link, this.target, this.attr);
  
      		} else {
        		// If window attributes are not specified, do not use them
        		// (this will copy the attributes from the originating window)
        		mywindow = window.open(this.link, this.target);
      		}

      		// Pop the window to the front
      		if (mywindow && mywindow.focus) mywindow.focus();

    	} else {
      		// Open the link in the current window
      		location.href = this.link;
	  		location.title = this.text;
    	}
  	}
}

//==================================================
// slideshow object
//==================================================
function slideshow( slideshowname ) {
  	// This is the constructor function for the slideshow object.
  	// It is called automatically when you create a new object.
  	// For example:
  	// ss = new slideshow("ss");

  	// Name of this object
  	// (required if you want your slideshow to auto-play)
  	// For example, "SLIDES1"
  	this.name = slideshowname;

  	// When we reach the last slide, should we loop around to start the
  	// slideshow again?
  	this.repeat = true;

  	// Number of images to pre-fetch.
  	// -1 = preload all images.
  	//  0 = load each image is it is used.
  	//  n = pre-fetch n images ahead of the current image.
  	// I recommend preloading all images unless you have large
  	// images, or a large amount of images.
  	this.prefetch = -1;

  	// IMAGE element on your HTML page.
  	// For example, document.images.SLIDES1IMG
  	this.image;

  	// ID of a DIV element on your HTML page that will contain the text.
  	// For example, "slides2text"
  	// Note: after you set this variable, you should call
  	// the update() method to update the slideshow display.
  	this.textid;

  	// TEXTAREA element on your HTML page.
  	// For example, document.SLIDES1FORM.SLIDES1TEXT
  	// This is a depracated method for displaying the text,
  	// but you might want to supply it for older browsers.
  	this.textarea;

  	// Milliseconds to pause between slides.
  	// Individual slides can override this.
  	this.timeout = 3000;

  	// Hook functions to be called before and after updating the slide
  	// this.pre_update_hook = function() { }
  	// this.post_update_hook = function() { }

  	// These are private variables
  	this.slides = new Array();
  	this.current = 0;
  	this.timeoutid = 0;

  	//--------------------------------------------------
  	// Public methods
  	//--------------------------------------------------
  	this.add_slide = function(slide) {
    	// Add a slide to the slideshow.
    	// For example:
    	// SLIDES1.add_slide(new slide("s1.jpg", "link.html"))
  
    	var i = this.slides.length;
  
    	// Prefetch the slide image if necessary
    	if (this.prefetch == -1) {
      		slide.load();
    	}

    	this.slides[i] = slide;
  	}

  	//--------------------------------------------------
  	this.play = function(timeout) {
    	// This method implements the automatically running slideshow.
    	// If you specify the "timeout" argument, then a new default
    	// timeout will be set for the slideshow.
  
    	// Make sure we're not already playing
    	this.pause();
  
    	// If the timeout argument was specified (optional)
    	// then make it the new default
    	if (timeout) {
      		this.timeout = timeout;
    	}
  
    	// If the current slide has a custom timeout, use it;
    	// otherwise use the default timeout
    	if (typeof this.slides[ this.current ].timeout != 'undefined') {
      		timeout = this.slides[ this.current ].timeout;
    	} else {
      		timeout = this.timeout;
    	}

    	// After the timeout, call this.loop()
    	this.timeoutid = setTimeout( this.name + ".loop()", timeout);
  	}

  	//--------------------------------------------------
  	this.pause = function() {
    	// This method stops the slideshow if it is automatically running.
  
    	if (this.timeoutid != 0) {

      		clearTimeout(this.timeoutid);
      		this.timeoutid = 0;
    	}
  	}

  	//--------------------------------------------------
  	this.update = function() {
    	// This method updates the slideshow image on the page

    	// Make sure the slideshow has been initialized correctly
    	if (! this.valid_image()) { return; }
  
    	// Call the pre-update hook function if one was specified
    	if (typeof this.pre_update_hook == 'function') {
      		this.pre_update_hook();
    	}

    	// Convenience variable for the current slide
    	var slide = this.slides[ this.current ];

    	// Determine if the browser supports filters
    	var dofilter = false;
    	if (this.image && typeof this.image.filters != 'undefined' && typeof this.image.filters[0] != 'undefined') {
      		dofilter = true;
    	}

    	// Load the slide image if necessary
    	slide.load();
  
    	// Apply the filters for the image transition
    	if (dofilter) {

      		// If the user has specified a custom filter for this slide,
      		// then set it now
      		if (slide.filter &&
         		this.image.style &&
          		this.image.style.filter) {

       			this.image.style.filter = slide.filter;

      		}
      		this.image.filters[0].Apply();
    	}

    	// Update the image.
    	this.image.src = slide.image.src;

    	// Play the image transition filters
    	if (dofilter) {
      		this.image.filters[0].Play();
    	}

    	// Update the text
    	this.display_text();

    	// Call the post-update hook function if one was specified
    	if (typeof this.post_update_hook == 'function') {
      		this.post_update_hook();
    	}

    	// Do we need to pre-fetch images?
    	if (this.prefetch > 0) {

      		var next, prev, count;

      		// Pre-fetch the next slide image(s)
      		next = this.current;
      		prev = this.current;
      		count = 0;
      		do {

        		// Get the next and previous slide number
        		// Loop past the ends of the slideshow if necessary
        		if (++next >= this.slides.length) next = 0;
        		if (--prev < 0) prev = this.slides.length - 1;

        		// Preload the slide image
        		this.slides[next].load();
        		this.slides[prev].load();

        		// Keep going until we have fetched
        		// the designated number of slides

      		} while (++count < this.prefetch);
    	}
  	}

  	//--------------------------------------------------
  	this.goto_slide = function(n) {
    	// This method jumpts to the slide number you specify.
    	// If you use slide number -1, then it jumps to the last slide.
    	// You can use this to make links that go to a specific slide,
    	// or to go to the beginning or end of the slideshow.
    	// Examples:
    	// onClick="myslides.goto_slide(0)"
    	// onClick="myslides.goto_slide(-1)"
    	// onClick="myslides.goto_slide(5)"
  
    	if (n == -1) {
      		n = this.slides.length - 1;
    	}
  
    	if (n < this.slides.length && n >= 0) {
      		this.current = n;
    	}
  
    	this.update();
  	}


  	//--------------------------------------------------
  	this.goto_random_slide = function(include_current) {
    	// Picks a random slide (other than the current slide) and
    	// displays it.
    	// If the include_current parameter is true,
    	// then 
    	// See also: shuffle()

    	var i;

    	// Make sure there is more than one slide
    	if (this.slides.length > 1) {

      		// Generate a random slide number,
      		// but make sure it is not the current slide
      		do {
        		i = Math.floor(Math.random()*this.slides.length);
      		} while (i == this.current);
 
      		// Display the slide
      		this.goto_slide(i);
    	}
  	}

  	//--------------------------------------------------
  	this.next = function() {
    	// This method advances to the next slide.

    	// Increment the image number
    	if (this.current < this.slides.length - 1) {
      		this.current++;
    	} else if (this.repeat) {
      		this.current = 0;
    	}

    	this.update();
  	}

  	//--------------------------------------------------
  	this.previous = function() {
    	// This method goes to the previous slide.
  
    	// Decrement the image number
    	if (this.current > 0) {
      		this.current--;
    	} else if (this.repeat) {
      		this.current = this.slides.length - 1;
    	}
  
    	this.update();
  	}

  	//--------------------------------------------------
  	this.shuffle = function() {
    	// This method randomly shuffles the order of the slides.

    	var i, i2, slides_copy, slides_randomized;

    	// Create a copy of the array containing the slides
    	// in sequential order
    	slides_copy = new Array();
    	for (i = 0; i < this.slides.length; i++) {
      		slides_copy[i] = this.slides[i];
    	}

    	// Create a new array to contain the slides in random order
    	slides_randomized = new Array();

    	// To populate the new array of slides in random order,
    	// loop through the existing slides, picking a random
    	// slide, removing it from the ordered list and adding it to
    	// the random list.

    	do {
			// Pick a random slide from those that remain
      		i = Math.floor(Math.random()*slides_copy.length);

      		// Add the slide to the end of the randomized array
      		slides_randomized[ slides_randomized.length ] = slides_copy[i];

      		// Remove the slide from the sequential array,
      		// so it cannot be chosen again
      		for (i2 = i + 1; i2 < slides_copy.length; i2++) {
        		slides_copy[i2 - 1] = slides_copy[i2];
      		}
      		slides_copy.length--;

      		// Keep going until we have removed all the slides

    	} while (slides_copy.length);

    	// Now set the slides to the randomized array
    	this.slides = slides_randomized;
  	}

  	//--------------------------------------------------
  	this.get_text = function() {
    	// This method returns the text of the current slide
  
    	return(this.slides[ this.current ].text);
  	}

  	//--------------------------------------------------
  	this.get_all_text = function(before_slide, after_slide) {
    	// Return the text for all of the slides.
    	// For the text of each slide, add "before_slide" in front of the
    	// text, and "after_slide" after the text.
    	// For example:
    	// document.write("<ul>");
    	// document.write(s.get_all_text("<li>","\n"));
    	// document.write("<\/ul>");
  
    	all_text = "";
  
    	// Loop through all the slides in the slideshow
    	for (i=0; i < this.slides.length; i++) {
  
      		slide = this.slides[i];
    
      		if (slide.text) {
        		all_text += before_slide + slide.text + after_slide;
      		}
      	}
  
    	return(all_text);
  	}


  	//--------------------------------------------------
  	this.display_text = function(text) {
    	// Display the text for the current slide
  
    	// If the "text" arg was not supplied (usually it isn't),
    	// get the text from the slideshow
    	if (!text) {
      		text = this.slides[ this.current ].text;
    	}
  
    	// If a textarea has been specified,
    	// then change the text displayed in it
    	if (this.textarea && typeof this.textarea.value != 'undefined') {
      		this.textarea.value = text;
    	}

    	// If a text id has been specified,
    	// then change the contents of the HTML element
    	if (this.textid) {

      		r = this.getElementById(this.textid);
      		if (!r) { return false; }
      		if (typeof r.innerHTML == 'undefined') { return false; }

      		// Update the text
      		r.innerHTML = text;
    	}
  	}

  	//--------------------------------------------------
  	this.hotlink = function() {
    	// This method calls the hotlink() method for the current slide.
  
    	this.slides[ this.current ].hotlink();
  	}

  	//--------------------------------------------------
  	this.save_position = function(cookiename) {
    	// Saves the position of the slideshow in a cookie,
    	// so when you return to this page, the position in the slideshow
    	// won't be lost.
  
    	if (!cookiename) {
      		cookiename = this.name + '_slideshow';
    	}
  
    	document.cookie = cookiename + '=' + this.current;
  	}

  	//--------------------------------------------------
  	this.restore_position = function(cookiename) {
  		// If you previously called slideshow_save_position(),
  		// returns the slideshow to the previous state.
  
    	//Get cookie code by Shelley Powers
  
    	if (!cookiename) {
      		cookiename = this.name + '_slideshow';
    	}
  
    	var search = cookiename + "=";
  
    	if (document.cookie.length > 0) {
      		offset = document.cookie.indexOf(search);
      		// if cookie exists
      		if (offset != -1) { 
        		offset += search.length;
        		// set index of beginning of value
        		end = document.cookie.indexOf(";", offset);
        		// set index of end of cookie value
        		if (end == -1) end = document.cookie.length;
        		this.current = parseInt(unescape(document.cookie.substring(offset, end)));
        	}
     	}
  	}

  	//--------------------------------------------------
  	this.noscript = function() {
    	// This method is not for use as part of your slideshow,
    	// but you can call it to get a plain HTML version of the slideshow
    	// images and text.
    	// You should copy the HTML and put it within a NOSCRIPT element, to
    	// give non-javascript browsers access to your slideshow information.
    	// This also ensures that your slideshow text and images are indexed
    	// by search engines.
  
    	$html = "\n";
  
    	// Loop through all the slides in the slideshow
    	for (i=0; i < this.slides.length; i++) {
  
      		slide = this.slides[i];
  
      		$html += '<P>';
  
      		if (slide.link) {
        		$html += '<a href="' + slide.link + '">';
      		}
  
      		$html += '<img src="' + slide.src + '" ALT="slideshow image">';
  
      		if (slide.link) {
        		$html += "<\/a>";
      		}
  
      		if (slide.text) {
        		$html += "<BR>\n" + slide.text;
      		}
  
      		$html += "<\/P>" + "\n\n";
    	}
  
    	// Make the HTML browser-safe
    	$html = $html.replace(/\&/g, "&amp;" );
    	$html = $html.replace(/</g, "&lt;" );
    	$html = $html.replace(/>/g, "&gt;" );
  
    	return('<pre>' + $html + '</pre>');
  	}


  	//==================================================
  	// Private methods
  	//==================================================

  	//--------------------------------------------------
  	this.loop = function() {
    	// This method is for internal use only.
    	// This method gets called automatically by a JavaScript timeout.
    	// It advances to the next slide, then sets the next timeout.
    	// If the next slide image has not completed loading yet,
    	// then do not advance to the next slide yet.

    	// Make sure the next slide image has finished loading
    	if (this.current < this.slides.length - 1) {
      		next_slide = this.slides[this.current + 1];
      		if (next_slide.image.complete == null || next_slide.image.complete) {
        		this.next();
      		}
    	} else { // we're at the last slide
      		this.next();
    	}
    
    	// Keep playing the slideshow
    	this.play( );
  	}


  	//--------------------------------------------------
  	this.valid_image = function() {
    	// Returns 1 if a valid image has been set for the slideshow
  
    	if (!this.image) {
      		return false;
    	} else {
      		return true;
    	}
  	}

  	//--------------------------------------------------
  	this.getElementById = function(element_id) {
    	// This method returns the element corresponding to the id

    	if (document.getElementById) {
      		return document.getElementById(element_id);
    	} else if (document.all) {
      		return document.all[element_id];
    	} else if (document.layers) {
      		return document.layers[element_id];
    	} else {
      		return undefined;
    	}
  	}
}

function showSlideShow() {
	var sURL = unescape(window.location.pathname);
	window.location.href = sURL;
}

function showABOUT() {
	document.getElementById('ss_img_div').innerHTML = '<img src="../images/bootCompany/about_boot_co.jpg" alt="About Timberland Boot Company" width="600" height="620" />';
}

function showCONTACT() {
	document.getElementById('ss_img_div').innerHTML = '<div id="contactDivEmbed"><div id="contactBootCoDiv"><div id="contactBootCopy"><table border="0" cellpadding="0" cellspacing="0" class="booCoContactTable"><tr><td colspan="3"><br /><strong>For inquiries regarding becoming a Timberland Boot Company retailer,<br />please see the regional contacts below:</strong><br /><br /><br /></td></tr><tr><td>United States - East</td><td>Lecia McCullough<br /><a href="mailto:lmccullough@timberland.com" class="bootCoLink">lmccullough@timberland.com</a></td><td>1-603-275-9023</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>United States - West</td><td>Myles Matias<br /><a href="mailto:mymatias@timberland.com" class="bootCoLink">mymatias@timberland.com</a></td><td>603-892-6302</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td width="131">United Kingdom</td><td width="229">Dipak Parmar<br /><a href="mailto:dparmar@timberland.com" class="bootCoLink">dparmar@timberland.com</a></td><td width="115">+44 770 940 8657</td></tr> <tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr> <tr><td>Japan</td><td>Hajime Takeda<br /><a href="mailto:htakeda@timberland.com " class="bootCoLink">htakeda@timberland.com </a></td><td>+81 3 6863-5780</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>Spain</td><td>Yago Lopez<br /><a href="mailto:ylopez@timberland.com" class="bootCoLink">ylopez@timberland.com</a></td><td>+34 659 456 871</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>Italy</td><td>Paolo Lucchetti<br /><a href="mailto:paololuc.p@libero.it" class="bootCoLink">paololuc.p@libero.it</a></td><td>+39 328 571 9153</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>Germany</td><td>Uwe Waidmann<br /><a href="mailto:uwaidmann@timberland.com" class="bootCoLink">uwaidmann@timberland.com</a></td><td>+49 163 872 2409</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>France</td><td>Frédéric Cazebonne<br /><a href="mailto:fcazebonne@timberland.com" class="bootCoLink">fcazebonne@timberland.com</a></td><td>+33 614 196 352</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td>Benelux</td><td>Martin Schaasberg<br /><a href="mailto:mschaasberg@timberland.com" class="bootCoLink">mschaasberg@timberland.com</a></td><td>+31 621 822 189</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td colspan="3"><br /><br /><strong>For customer service inquiries, please contact our regional offices below:</strong><br /><br /><br /></td></tr><tr><td>United States</td><td colspan="2">1-888-802-9947<br /><a href="http://www.timberland.com/helpdesk/index.jsp?display=store&subdisplay=contact" class="bootCoLink">http://www.timberland.com/helpdesk</a></td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>United Kingdom</td><td colspan="2">+44 1753 497000<br /><a href="mailto:customerservice@timberlandonline.co.uk" class="bootCoLink">customerservice@timberlandonline.co.uk</a></td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Japan</td><td colspan="2">+81 3 6863 5711</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Spain</td><td colspan="2">+34 902 116 169</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Italy</td><td colspan="2">+39 039 684 3217</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Germany</td><td colspan="2">+49 89 748838-26</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>France</td><td colspan="2">+33 1 55 62 55 00</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Denmark</td><td colspan="2">+45 402 59691</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Belgium</td><td colspan="2">+32 230 6527</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Luxemburg</td><td colspan="2">+32 230 6527</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Netherlands</td><td colspan="2">+31 347 322 772</td></tr><tr><td colspan="3"><img src="../images/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Norway</td><td colspan="2">+47 219 39000</td></tr><tr><td colspan="3"><img src="../images/contact_line.jpg" alt="line" width="448" height="2" vspace="5" /></td></tr><tr><td>Sweden</td><td colspan="2">+46 8 545 16230</td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td colspan="3"><br /><br /><strong>For online shopping outside of the United States:</strong><br /><br /><a href="http://www.timberlandbootcompany.co.uk" target="_blank" class="bootCoLink">www.timberlandbootcompany.co.uk</a><br /><br /></td></tr><tr><td colspan="3"><img src="../images/bootCompany/contact_line.jpg" alt="line" width="448" height="2" vspace="10" /></td></tr><tr><td colspan="3"><br /><br /><strong>Download our latest Timberland Boot Company catalogs:</strong><br />Important: You must have Adobe® Acrobat® reader 7.0 or higher to view these files correctly.<br /><br /><a href="http://get.adobe.com/reader/" target="_blank"><img src="../images/bootCompany/get_adobe_reader.png" alt="Download Adobe® Acrobat®" border="0" /></a><br /><br /><a href="../images/bootCompany/TimberlandBootCompanyMensF09.pdf" target="_blank" class="bootCoLink">Fall 2009 Men&#8217;s Catalog</a><br /><br /><a href="../images/bootCompany/TimberlandBootCompanyWomensF09.pdf" target="_blank" class="bootCoLink">Fall 2009 Women&#8217;s Catalog</a><br /><br /></td></tr></table></div></div></div>';
}

function PopupCenter(pageURL, title,w,h) {
	var left = (screen.width/2)-(w/2);
	var top = (screen.height/2)-(h/2);
	var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
} 

function moveWindow (anchorName){
		//document.getElementById('locationDiv').location.hash = anchorName;
		window.location.hash = anchorName;
		//abPopup(550, 680, 'filter', 'bgImage', 'box');
}

function loadAbHeader() {
	var error = "";
	var file = "xml/bootCompanyStores.xml";
	var xmlDoc=null;
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(file);
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			xmlDoc=document.implementation.createDocument("","",null);
			xmlDoc.async=false;
			xmlDoc.load(file);
		}
		catch(e)
		{
			try //Google Chrome
			{
				var xmlhttp = new window.XMLHttpRequest();
				xmlhttp.open("GET",file,false);
				xmlhttp.send(null);
				xmlDoc = xmlhttp.responseXML.documentElement;
			}
			catch(e)
			{
				error=e.message;
				
			}
		}
	}
	
	
	if (xmlDoc!=null) 
	{
		var x=xmlDoc.getElementsByTagName("store");
		
		var curState = "0";
		
		for (var i=0;i<x.length;i++)
		{ 
			
			var nextState = x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue;
			
			if (curState != nextState) {
				if (curState != 0) {
					document.write(" - ");
				}
				else {
					document.write('<a name="top"></a>');
				}
				document.write('<a href="#" onclick="moveWindow(\'');
				document.write(x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue);
				document.write('\'); return false;">');
				document.write(x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue);
				document.write('</a>');
				curState = x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue;
			}
			
		}
	
	}

}

function loadAbStoreList() {
	
	var error = "";
	var file = "xml/bootCompanyStores.xml";
	var xmlDoc=null;
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(file);
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			xmlDoc=document.implementation.createDocument("","",null);
			xmlDoc.async=false;
			xmlDoc.load(file);
		}
		catch(e)
		{
			try //Google Chrome
			{
				var xmlhttp = new window.XMLHttpRequest();
				xmlhttp.open("GET",file,false);
				xmlhttp.send(null);
				xmlDoc = xmlhttp.responseXML.documentElement;
			}
			catch(e)
			{
				error=e.message;
				
			}
		}
	}
	
	if (xmlDoc!=null) 
	{
	
		var x=xmlDoc.getElementsByTagName("store");
		
		var curState = "0";
		
		for (var i=0;i<x.length;i++)
		{ 
			
			var nextState = x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue;
					
			if (curState != nextState) {
				
				if (curState != 0) {
					document.write('<tr class="normal"><td colspan="5"><a style="" href="#" onclick="moveWindow(\'top\'); return false;">Back to top</a>');
					document.write('</td></tr>');
				}
				
				document.write('<tr class="normalActive"><td colspan="5"><a style="font-weight: bold;" name="');
				document.write(x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue);
				document.write('">');
				document.write(x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue);
				document.write('</a>');
				curState = x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue;
				document.write('</td></tr>');
			}
			
			document.write('<tr onmouseover="this.className=\'normalActive\'" onmouseout="this.className=\'normal\'" class="normal">');
			
			document.write('<td >');
			document.write(x[i].getElementsByTagName("storeName")[0].childNodes[0].nodeValue);
			document.write("</td>");
			
			document.write("<td>");
			document.write(x[i].getElementsByTagName("storeAddress1")[0].childNodes[0].nodeValue);
			try {
				document.write(", ");
				document.write(x[i].getElementsByTagName("storeAddress2")[0].childNodes[0].nodeValue);
			}
			catch (e){}
			document.write("</td>");
			
			document.write("<td>");
			document.write(x[i].getElementsByTagName("storeCity")[0].childNodes[0].nodeValue);
			document.write(", ");
			document.write(x[i].getElementsByTagName("storeState")[0].childNodes[0].nodeValue);
			document.write("</td>");
			
			document.write("<td>");
			document.write(x[i].getElementsByTagName("storeZip")[0].childNodes[0].nodeValue);
			document.write("</td>");
			
			document.write("<td>");
			document.write(x[i].getElementsByTagName("storePhone")[0].childNodes[0].nodeValue);
			document.write("</td>");
			
			document.write("</tr>");
		}
	
		document.write('<tr class="normal"><td colspan="5"><a style="" href="#" onclick="moveWindow(\'top\'); return false;">Back to top</a>');
		document.write('</td></tr>');
			
		document.write("</table>");
	}

}