/**
 *
 *	Project:	PMI 2010 Rebuild
 *	File:		Structure
 *	Date:		10.19.10
 *
 *
 */

function init() {
	slideshow();
	accordion();
	format_locs();
}

function slideshow() {
	var img = $('.img-rotator');
	var src = img.attr('src');
	var i   = 1;
			
	img.delay(6000).fadeIn('fast', function() { loop(img, src, i, 1) });
}

function loop( img, src, i, cycle ) {
	var end = Number();
	if( img.attr('id') != "" ) {
		end = img.attr('id');
	} else {
		end = 4;
	}
	
	var next = i < end ? i + 1 : 1;
	img.fadeOut(500,
		function() {
			img.attr('src', src.replace(1, next))
		})
		.delay(100).fadeIn(500).delay(6000);
	if( cycle < 10 ) {
		cycle++;
		loop(img, src, next, cycle);
	}
	
}

function accordion() {
    var $a = $('.accordion');
    var $h = $('.handle');
    var $c = $('.content');

    $h.each(function() {
        var $this = $(this);

        $this.click(function() {
            $this.next().toggle('slow');
            pageTracker._trackEvent('AjaxEvents', 'FAQ', trim($this.text()));
        });
    });

    $c.each(function() {
        var $this = $(this);

        $this.hide();
    });
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}

/**
 * Gift Cards
 */
var card_dollars = new Number();
var card_cents   = new Number();

function pre_submit( file ) {
	
	$.post(file,
		$('form').serialize(),
		function(data) {
			$('.get-data').html(data);
			format_balance();
		}
	);
}

function format_balance() {
	var $balance   = $('.balance');
	var $container = $('.amount-container');
	
	$balance.fadeIn(100);
	$container.fadeIn(100);
	
	var $symbol  = $('.dollar-sign');
	var $dollar  = $('.dollars');
	var $cents   = $('.cents');
	
	var dollarX  = $symbol.innerWidth() + 4;
	var centX    = ($dollar.innerWidth() + $symbol.innerWidth()) + 8;
	
	var dollars  = $dollar.html();
	var cents    = $cents.html();
	card_dollars = dollars;
	card_cents	 = cents;
	
	$dollar.html('0');
	$cents.html('00');
	
	count_dollars();
	count_cents();
	
	
	$dollar.css({ left:dollarX });
	$cents.css({ left:centX });
}

function count_dollars() {
	var $dollar = $('.dollars');
	var current = parseInt($dollar.html());
	
	$dollar.text(current + 1);
	
	if( (current + 1) != card_dollars ) {
		setTimeout('count_dollars()', 50);
	}
}

function count_cents() {
	var $cents = $('.cents');
	var current = parseInt($cents.html());
	
	$cents.text(current + 1);
	
	if( (current + 1) != card_cents ) {
		setTimeout('count_cents()', 25);
	}
}

function get_cities(val) {
    var $cities = $('.cities');
    var $current = $('#' + val);

    $cities.children('select').each(function() {
        $(this).attr('disabled', true);
        $(this).css({ display: 'none' });
    });

    $current.attr('disabled', false);
    $current.fadeIn();
}

function format_locs() {
	$.ajax({
		url : 'results.xml',
		dataType: 'xml',
		success : xml_parser
	});
}

function xml_parser( xml ) {
	var i    = Number();
	var html = String();
	
	html = '<table class="results" cellpadding="0" cellspacing="0" width="100%">';
	i = 1;
	
	$(xml).find("storelocation").each(function() {
		var name   = $(this).attr('storeName');
		var street = $(this).attr('address');
		var city   = $(this).attr('city');
		var state  = $(this).attr('stateProv');
		var zip    = $(this).attr('zip');
		
		// HTML
		html += '	<tr>'
			  + '		<td align="left" class="font-10" rowspan="3" width="30">'
			  + 			i
			  + '		</td>'
			  + '		<td class="font-11 uppercase">'+ name +'</td>'
			  + '		<td rowspan="3">'
			  + '			<img src="images/content/store-locator/googlemap-FPO.jpg" height="50" />'
			  + '		</td>'
			  + '	</tr>'
			  + '	<tr>'
			  + '		<td class="font-11">'
			  + 			street
			  + '			<span class="horizontal-div">|</span>'
			  + 			city
			  + '			<span class="horizontal-div">|</span>'
			  +	'			(555) 555-5555'
			  + '		</td>'
			  + '	</tr>'
			  + '	<tr>'
			  + '		<td class="font-10">'
			  + '			<a class="bold" href="" target="_blank">View Full Map</a>'
			  + '		</td>'
			  + '	</tr>'
			  + '	<tr>'
			  + '		<td height="18"></td>'
			  + '	</tr>'
		i++;
	});
	
	html += '</table>';
	$('.return').html(html);
}

/* Additional Functions */

function ValidateContactUsForm(lnk) {

    // alert('lnk=' + lnk);

    if (lnk.href.indexOf("general") > -1) {
        return true;
    }

    if (lnk.href.indexOf("state") == -1) {
        alert("Please select a state")
        return false;
    }

    if (lnk.href.indexOf("store") == -1) {
        alert("Please select a store")
        return false;
    }

    return true;
}

function check(frm) {
    valid = true;
    var curvis = findObj('staterequested').value;
    if ((frm.staterequested.selectedIndex == "") || (frm.staterequested.options[frm.staterequested.selectedIndex].value == "") || (frm[curvis].selectedIndex == "") || (frm[curvis].options[frm[curvis].selectedIndex].value == "")) {
        valid = false;
    }
    if (valid) {
        frm.submit();
    }
    else {
        alert("You must select a state AND city.");
    }
    return valid;
}

function findObj(n, d) { //v3.0
    var p, i, x; if (!d) d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) { d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p); }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = findObj(n, d.layers[i].document); return x;
}
function hideObj(objName) {
    var obj = findObj(objName); if (obj != null) { obj.disabled = true; if (obj.style) { obj.style.display = 'none'; } }
}
function showObj(objName) {
    var obj = findObj(objName); if (obj != null) { obj.disabled = false; if (obj.style) { obj.style.display = 'block'; } }
}
function switchstates() {
    var curvis = findObj('00N30000001Guzk').value;
    hideObj(lastvis); showObj(curvis); lastvis = curvis;
}

// install order now tracking hooks
function track(category, action, label) {
    pageTracker._trackEvent(category, action, label);
    return true;
}
$(function () {

    // order now links from store finder
    $('.results a.store-locator-order-now').click(function () {
        var store = $(this).attr('href').split('=').pop();
        return track('Location', 'Order', 'order_' + store);
    });

    // order now links in left side navbar
    $('.main-nav-container a[href^="http://order.papamurphys.com/Menu.aspx?StoreNum="]').click(function () {
        return track('Order_now', 'Order', 'order_sidebar');
    });

    // order now links in menu
    var menuOrderNowMap = [
        ['/OurMenu/Overview/Pizzas/Stuffed/5-MeatStuffed',                'order_5Meat'           ],
        ['/OurMenu/Overview/Pizzas/Stuffed/ChicagoStyleStuffed',          'order_chicago'         ],
        ['/OurMenu/Overview/Pizzas/Stuffed/ChickenBaconStuffed',          'order_chickbac_stuffed'],
        ['/OurMenu/Overview/Pizzas/deLITE/ChickenBaconArtichoke',         'order_chickbac_delite' ],
        ['/OurMenu/Overview/Pizzas/deLITE/HerbChickenMediterranean',      'order_herbchick'       ],
        ['/OurMenu/Overview/Pizzas/deLITE/Veggie',                        'order_veg_delite'      ],
        ['/OurMenu/Overview/Pizzas/deLITE/Meat',                          'order_meat_delite'     ],
        ['/OurMenu/Overview/Pizzas/deLITE/Pepperoni',                     'order_pep_delite'      ],
        ['/OurMenu/Overview/Pizzas/Signature/MurphysCombo',               'order_murph_combo'     ],
        ['/OurMenu/Overview/Pizzas/Signature/Cowboy',                     'order_cowboy'          ],
        ['/OurMenu/Overview/Pizzas/Signature/GourmetChickenGarlic',       'order_chickgarlic'     ],
        ['/OurMenu/Overview/Pizzas/Signature/GourmetVegetarian',          'order_gourmet_veg'     ],
        ['/OurMenu/Overview/Pizzas/Signature/Hawaiian',                   'order_hawaiian'        ],
        ['/OurMenu/Overview/Pizzas/Signature/Pepperoni',                  'order_pepperoni'       ],
        ['/OurMenu/Overview/Pizzas/Custom/CustomPizza',                   'order_custom'          ],
        ['/OurMenu/Overview/Sides/SidesHeading/Salads',                   'order_salads'          ],
        ['/OurMenu/Overview/Sides/SidesHeading/CheesyBread',              'order_cheesy bread'    ],
        ['/OurMenu/Overview/Sides/SidesHeading/ChocolateChipCookieDough', 'order_cookie'          ],
        ['/OurMenu/Overview/Sides/SidesHeading/CinnamonWheel',            'order_cinnamon'        ],
        ['/OurMenu/Overview/Sides/SidesHeading/SoftDrinks',               'order_drink'           ],
        ['/OurMenu/Overview',                                             'order_menu_overview'   ],    // <-- must be last, otherwise it matches too eagerly
    ];
    $('table.table-menu-item a[href^="http://order.papamurphys.com/Menu.aspx?StoreNum="], ' +
      'form[action!="StoreLocator"] a[href^="http://order.papamurphys.com/Menu.aspx?StoreNum="]'
      ).click(function () {
        for (var i = 0; i < menuOrderNowMap.length; i++) {
            if (window.location.pathname.indexOf(menuOrderNowMap[i][0]) === 0) {
                return track('Order_now', 'Order', menuOrderNowMap[i][1]);
            }
        }
        return true;
    });

});
