// prevent background image flicker in IE
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {};

$(document).ready(function() {
	handleLinks();
	cart();
	viewLargerSetup();
	loginInfo();
	submitGallery();
	DD_belatedPNG.fix('.pngfix, #winners_content, #contest_winner_badge')
});

//handle third-party site linking
var domainArray = new Array('poptarts.com','kelloggs.com');

handleLinks = function() {
	var a = document.getElementsByTagName('a');
	var loc = window.location.hostname;		
	for(loop=0;loop<a.length;loop++) {
		if(loc != a[loop].hostname && a[loop].toString().substr(0,4) != 'java' && a[loop].toString().substr(0,4) != 'mail') {
			for(arrayLoop=0; arrayLoop<domainArray.length; arrayLoop++) {
				var thisLink=a[loop]+'';
				if(thisLink.indexOf(domainArray[arrayLoop]) > 0) {
					break;
				} 
				else{
					if(arrayLoop == (domainArray.length-1)) {
						a[loop].onclick=OutsideURLWarning;
					}
				}
			}
		}	
	}
}

var toggleMenu = function(x){
	$(x).parent().find('ul').toggle();
}

var cart = function(){
	if(document.body.id=="cart"){
		var price = 6.99;
		var shirtLimit = 5;
		var blinkCount = 6;	
		var pastOrders = (!document.getElementById('priortotal')) ? 0 : document.getElementById('priortotal').value
		var pastOrderCount = (pastOrders == "") ? 5 : pastOrders;
		var inputs = document.getElementsByTagName('input');
		var l = inputs.length;
		var qtyArray = [];
		var total_top = document.getElementById('total_top');
		var total_bot = document.getElementById('total_bot');
		var previousValue = "0";
		
		var digitCheck = function(x){
			var expr = /\d/;
			var test = expr.test(x);
			return test;
		}
		
		var countQty = function(){
			var qty = 0;
			var len = qtyArray.length;	
			while(len--){
				if(digitCheck(qtyArray[len].value) && qtyArray[len].value != ""){
					qty+=parseInt(qtyArray[len].value);
				}
			}
			qty += parseInt(pastOrderCount);
			return qty;
		}
		
		var reportTotals = function(){
			var qty = countQty() - pastOrderCount;
			var x = Math.round((qty*price)*100);
			var appendDigit = (x%10 == 0) ? "0" : "";
			var totalPrice = (x==0)? '0.0' : x/100;
			var cost = "$"+totalPrice+appendDigit;
			$('.total').find('strong').text(cost);
			return x;
		}
		
		checkQty = function(){
			var qty = countQty();
			if(qty > shirtLimit){
				errorMessage('Limit 5 per household. Please check your previous orders and current order and reduce your quantity to a total of 5.')
				return false;
			}
			else{
				return true;
			}
		}
		
		var errorMessage = function(msg){
			var d = document.getElementById('errorMsg');
			var p = d.getElementsByTagName('p')[0];
			p.innerHTML = msg;
			d.style.display = "block";
		}
		
		var blinker = function(){
			$('.total').toggleClass('total_blink');
			blinkTimer = setTimeout(blinker,250);
			if(blinkCount<0){
				var clearTimer = clearTimeout(blinkTimer);
				delete blinkTimer;
				blinkCount = 6;
			}
			blinkCount--;
		}
		
		
		while(l--){
			if(inputs[l].type=="text") {

				qtyArray.push(inputs[l]);
				
				inputs[l].onfocus=function(){
					previousValue = this.value;
				}
				
				inputs[l].onblur=function(){
				}
				
				inputs[l].onkeydown=function(){
				}
				
				inputs[l].onkeyup=function(){
				
					reportTotals();
					if(!checkQty()){
						this.value="0";
						reportTotals();
					}
					if(typeof(blinkTimer)=="undefined" && previousValue != this.value){
						blinker();
					}
					previousValue = this.value;
				}

				inputs[l].onchange=function(){

					if(this.value == ""){
						this.value = 0;
					}
					if(digitCheck(this.value)){
							/*Send order update.*/
							var itemid = this.id.split("_");
							itemid.push(this.value);
							var orderInfo = "AJAX/ChangeQuantity.aspx?o="+itemid[0]+"&I="+itemid[1]+"&q="+itemid[3]+"&s="+itemid[2];
							$.get(orderInfo);
					}
					else{
						errorMessage("There appears to be a problem with your order. Please verify all quantities.")
					}
				}
			}
		}
		checkQty();
		reportTotals();
		document.getElementById('closeErrorMsg').onclick=function(){
			$('#errorMsg').toggle();
			return false;
		}
	}
}

var viewLargerSetup = function(){
	$('.viewLarger').click(function(e){
		var morris = ($(this.parentNode.parentNode).find('.cartshirt_img').hasClass('morris')) ? '1' : '0'
		viewLarger(this.href, morris);
		e.preventDefault();
		return false;
	})
}

var viewLarger = function(x,m){
	var wrapper = document.getElementById('overlayWrapper');
	wrapper.className = 'wrapCustom';
	if(m == 1){
		wrapper.className += ' wrapMorris';
		var mx = x.split('_thumb');
		x = mx[0]+mx[1];
	}
	var newTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
	wrapper.style.top = newTop+'px';
	if(document.getElementById('overlay')) {
		var overlay = document.getElementById('overlay');
		var w = document.body.clientHeight;
		overlay.style.height = w+'px';
		var i = document.getElementById('overlayWrapperImage');
		var a = document.getElementById('overlayWrapperLink');
		var a2 = document.getElementById('overlayWrapperLink2');
		i.src = x;		
		overlay.style.display = "block";
		overlay.onclick = a.onclick = a2.onclick = function(){
			overlay.style.display = "none";
			return false;
		};
	}
}

var loginInfo = function(){
	if(document.getElementById('login')) {
		var d = document.getElementById('login');
		var win = window.location.pathname;
		var filename = win.split('/popart/');
		d.href+="?back="+filename[1];
	}
}

var submitGallery = function(){
	$('.btn_submit_gallery').parent().click(function(e){
		$('#terms').toggle();
		orderid = $(this).parent().find('.termsvalue').val();
		e.preventDefault();
		return false;
	})
	
	$('#subAgree').click(function(){
		document.location="SubmitDesign.aspx?designid="+orderid;
	})	
	
	$('#subCancel').click(function(){
		$('#terms').toggle();
	})
	
	$('#chkAgree').click(function(){
		if($('#chkAgree:checked').length > 0){
				$('#subAgree').removeAttr('disabled')
		}
		else{
			$('#subAgree').attr('disabled','disabled')
		}

	})
}

createCookie = function(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

readCookie = function(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;
}

parseQuery = function() {
	var returnVals = new Array();
	qString = new String(window.location);
	var queryStart = qString.indexOf('?');
	if (queryStart==-1) {
		return returnVals;
	}
	var query = qString.substring(queryStart + 1, qString.length);
	var parts = query.split("&");
	for (var i=0; i<parts.length; i++) {
		bits = parts[i].split("=");
		if(bits[1]) {
			subbits = bits[1].split("#"); // added by T.D. to handle fragment identifier in URL
			returnVals[bits[0].toLowerCase()] = bits[1]; // query[] indexes are now lowercase!
		}
	}
	return returnVals;
}

var query = parseQuery();

popUpWindow = function(URL,windowName,width,height) {
	var w = screen.availWidth;
	var h = screen.availHeight;
	var leftPos = Math.round((w-width)/2);
	var topPos = Math.round((h-height)/2);
	var defaults = "scrollbars = 0, resizable";
	var centerOnScreen = "top="+topPos+", left="+leftPos+", width="+width+", height="+height;
	var options = centerOnScreen + " ," + defaults;
	var msgWindow = window.open(URL,windowName,options);
	if(!msgWindow) {
		return false;
	} else {
		msgWindow.creator=self;
		msgWindow.focus();
	}
  return true;
};

function OutsideURLWarning() {
	var result = popUpWindow("bumper.html?URL=" + escape(this), "bumper", 900, 475);
	return (result == false);
}

// tracking functions
var Kellogg = Kellogg || {};

Kellogg.trackers = [];

Kellogg.track = function (str) {
	for (var i = 0, l = Kellogg.trackers.length; i < l; i++) {
		if (typeof Kellogg.trackers[i]._trackPageview === "function") {
			if (str) {
				Kellogg.trackers[i]._trackPageview(str);
			} else {
				Kellogg.trackers[i]._trackPageview();
			}
		}
	}
};

Kellogg.track.allowCrossDomain = function () {
	for (var i = 0, l = Kellogg.trackers.length; i < l; i++) {
		if (typeof Kellogg.trackers[i]._setAllowHash === "function") {
			Kellogg.trackers[i]._setAllowHash(false);
			Kellogg.trackers[i]._setAllowLinker(true);
		}
	}
};