/* ---------- GLOBAL JAVASCRIPT FUNCTIONS ---------- */

var ie = (navigator.userAgent.indexOf("MSIE") > 0) ? true:false;
var ie6 = (navigator.userAgent.indexOf("MSIE 6.") > 0) ? true:false;

/*
	functions to dynamically center divs 
*/

// return browser width
function getBrowserWidth() {
	var val = 0;
	if (window.innerWidth) {
		val = window.innerWidth;
	} else if ((document.documentElement) && (document.documentElement.clientWidth != 0)) {
		val = document.documentElement.clientWidth;
	} else if (document.body) {
		val = document.body.clientWidth;
	}	
	return val;
};

// return browser height
function getBrowserHeight() {
	var val = 0;
	if (window.innerHeight) {
		val = window.innerHeight;
	} else if ((document.documentElement) && (document.documentElement.clientWidth != 0)) {
		val = document.documentElement.clientHeight;
	} else if (document.body) {
		val = document.body.clientHeight;
	}	
	return val;
};

// get vertical scolling offset
function getOffsetY() {
	var offset = 0;
	if ((document.documentElement) && (document.documentElement.scrollTop)) {
		offset = document.documentElement.scrollTop;
	} else if ((document.body) && (document.body.scrollTop)) {
		offset = document.body.scrollTop;
	} else if (window.pageYOffset) {
		offset = window.pageYOffset;
	}
	return offset;
}

/* toggle display property of an object) */
function toggle(obj) {
	if ( document.getElementById(obj).style.display == '' || document.getElementById(obj).style.display == 'none' ) {
		document.getElementById(obj).style.display = 'block';
	}
	else {
		document.getElementById(obj).style.display = 'none';
	}
	if (obj == "options_sizechart") {
		//cmSetProduction();
		//cmCreatePageElementTag("SizeChart","Product Detail");
	} else if (obj == "options_availability") {
		//cmSetProduction();
		//cmCreatePageElementTag("CheckAvailability","Product Detail");
	}	
}

/* onblur events for search field */
function searchFieldBlur(obj) {
	if (obj) {
		if (obj.value.length == 0) {
			obj.value = 'search by keyword or catalog #';
		}
	}	
}

/* onblur events for newsletter field */
function newsletterFieldBlur(obj) {
	if (obj) {
		if (obj.value.length == 0) {
			obj.value = 'enter your email address';
		}
	}	
}

/* left nav toggle */
function toggleNav(obj) {
	// get id of parent div
	var temp = obj.href.substring(obj.href.indexOf("_")+1, obj.href.indexOf("("));
	var id = "secondarynav_" + temp;
	id = id.toLowerCase();
	obj.blur();
	// remove showing class
	$$('ul').each(function(u) {
		if ((u.hasClassName('showing')) && (curID != id))  {
			// hide nav
			hideNav(u);
		}
	});
	// remove highlighting from current category
	//var cats = $('secondarynav').childElements();
	var cats = $('secondarynav').descendants();
	cats.each(function(cc) {
		if (cc.id.indexOf('secondarynav_') >= 0) {
			if (cc.className == 'active') {
				cc.className = '';
				if (curID == null) {
					curID = cc.id;
				}
			}
		}
	});	
	// check id
	if (id != curID) { 
		// add highlighting to selected category
		$(id).className = 'active';
		// find child element of selected category and assign showing class
		var children = $(id).descendants();
		children.each(function(c) {
			//var curElem = c.inspect();
			var curElem = c.tagName.toLowerCase();
			if (curElem.indexOf('ul') >= 0) {
				c.className = "showing";
			}
		});
	}
	curID = id;
}

var curID = null;
var target = 0;
var fadeInObj = null;
var fadeInTimer = null;
var ie6 = (navigator.userAgent.indexOf("MSIE 6.0") >= 0) ? true:false;

function showNav(obj) {
	/*
	// set overflow
	obj.style.overflow = 'hidden';
	// get height of ul
	target = obj.getHeight();
	// reset height to 5
	obj.style.height = '10px';
	obj.removeClassName('hidden');
	obj.addClassName('showing');
	// fadeIn
	fadeIn();
	*/
}
function fadeIn() {
	if (!ie6) {
		var h = fadeInObj.getHeight();
		if (h <= target) {
			h += 10;
			fadeInObj.style.height = h + "px";
			fadeInTimer = setTimeout("fadeIn()",1);
		} else {
			fadeInObj.style.height = target + "px";
			fadeInObj.style.overflow = 'visible';
			clearTimeout(fadeInTimer);
			fadeInObj = null;
			fadeInTimer = null;
			target = 0;
		}
	} else {
		fadeInObj.style.height = target + "px";
	}
}
function hideNav(obj) {
	// hide previously opened nav
	obj.removeClassName('showing');
	obj.addClassName('hidden');
}

// unique functions to allow for coremetrics click tracking
function womens_collections() { void(0); }
function womens_whatsnew() { void(0); }
function womens_apparel() { void(0); }
function womens_shoes() { void(0); }
function womens_accessories() { void(0); }
function womens_shopbybrand() { void(0); }
function womens_sale() { void(0); }
// mens
function mens_collections() { void(0); }
function mens_whatsnew() { void(0); }
function mens_apparel() { void(0); }
function mens_shoes() { void(0); }
function mens_accessories() { void(0); }
function mens_shopbybrand() { void(0); }
function mens_sale() { void(0); }
// apt
function apartment_whatsnew() { void(0); }
function apartment_collections() { void(0); }
function apartment_furnish() { void(0); }
function apartment_shopbybrand() { void(0); }
function apartment_sale() { void(0); }
function apartment_media() { void(0); }
// sale
function sale_yardsale() { void(0); }
function sale_m() { void(0); }
function sale_w() { void(0); }
function sale_apt() { void(0); }

/* product detail image zoom */
function zoom(imgID) {
	if ($("zoomInBtn")) {		
		$("zoomInBtn").blur();
	}
	if (($("blurWrapper")) && ($("zoomedImage").innerHTML.indexOf("img src") > 0)) {
		hideZoom();
	} else if ($("blurWrapper")) {
		var obj = $("zoomedImage");
		// set blur wrapper
		var wrapper = $("blurWrapper");
		var w = 375;
		var h = 563;
		var scrollH = parseInt(document.body.scrollHeight);	
		var scrollW = parseInt(document.body.scrollWidth);
		wrapper.style.height = scrollH + "px";
		wrapper.style.width = scrollW + "px";
		var imgTag = document.createElement("img");
		var newSrc = imgID.substring(imgID.lastIndexOf("/")+1, imgID.indexOf("?"));
		imgTag.src = "http://images.urbanoutfitters.com/is/image/UrbanOutfitters/" + newSrc + "?$magnify$";
		imgTag.width = w;
		imgTag.height = h;
		obj.appendChild(imgTag);
		// offset for vertical scrolling
		var vertOffset = 0;
		var horOffset = (scrollW/2) - w - 100;
		if (window.pageYOffset) {
			vertOffset = window.pageYOffset;
		} else  if (document.body.scrollTop) {
			vertOffset = document.body.scrollTop;
		} else if (document.documentElement.scrollTop) {
			vertOffset = document.documentElement.scrollTop;
		}
		obj.style.top = 40 + parseInt(vertOffset) + "px";
		obj.style.left = horOffset + "px";
		wrapper.style.display = '';
	}
}	
function hideZoom() {
	var obj = $("blurWrapper");
	obj.style.display = 'none';
	obj.innerHTML = '<div id="zoomedImage"><div id="hideZoomedImage"><a href="javascript:hideZoom();" title="zoom out">&ndash;</a></div></div>';
}
function smallImage(id,img,color) {
	var collection = $("frml"+id).elements["l"+id+"color"].options;
	for (var i=0;i<collection.length;i++) {
    	if (collection[i].value == color) {
        	collection[i].selected = true;
		}
	}
	if ($("multi"+id)) {
		$("multi"+id).src = img;
	}
}

/* toggle product details, reviews, videos, and photos */
function toggleLeftTabContent(curLeftID) {
	// remove active class from previously selected tab
	removeActiveState("left");
	// add active class to currently selected tab
	var curLeftObj = $(curLeftID);
	if (curLeftObj != null) {
		curLeftObj.addClassName('active');
		$(curLeftID+'Content').addClassName('active');
		// blur currently selected tab
		$(curLeftID+'Link').blur();
	}
	// coremetrics
	//cmSetProduction();
	//cmCreatePageElementTag(curLeftID,"Product Detail");
}
function toggleRightTabContent(curRightID) {
	// remove active class from previously selected tab
	removeActiveState("right");
	// add active class to currently selected tab
	var curRightObj = $(curRightID);
	if (curRightObj != null) {
		curRightObj.addClassName('active');
		$(curRightID+'Content').addClassName('active');
		// blur currently selected tab
		$(curRightID+'Link').blur();
	}
	// coremetrics
	//cmSetProduction();
	//cmCreatePageElementTag(curRightID,"Product Detail");
}
function goReviewsTab() {
	// toggle Reviews tab
	toggleRightTabContent("reviewsTab");
	// scroll down to show opened Reviews tab
	if ($("BVSummaryReadReviewsLink")) {
		$("BVSummaryReadReviewsLink").href = "javascript:void(0)";
		window.scrollTo(0,400);
	}
}
function removeActiveState(side) {
	var allTabs = null;
	if (side == "left") {
		allTabs = new Array("photoTab","videoTab");
	} else {
		allTabs = new Array("detailsTab","reviewsTab","askAndAnswerTab");
	}
	for (var i=0; i<allTabs.length; i++) {
		var curObj = $(allTabs[i]);
		if (curObj != null) {
			$(allTabs[i]+'Content').removeClassName('active');
			curObj.removeClassName('active');
		}
	}
}

/* add product to wishlist */
function addProductToWishlist(prodID) {
	// declare variables
	var formName = 'frml'+prodID;
	var spanIdName = "l"+prodID+"colorsizenotavailable";
	// check size menu value
	if (document.forms[formName].elements["size"]) {
	    if (document.forms[formName].elements["size"].value == "") {
			// no, display error message
			displayColorSizeNotAvailableMessage(spanIdName,prodID);
		} else {
			// yes, add product to wishlist
			addItemToWishlist(formName);
		}
	}  else {
		// yes, add product with one size
		addItemToWishlist(formName);
	}	
}

/* share this product */
var curBool = true;
function openSocial(divID) {
	// clear messages
	var obj = $("tellafriendMsg");
	if (obj) {
		obj.innerHTML = "";
	}
	// get the user's screen dimensions and calculate center point
	var screenWidth = getBrowserWidth();
	var screenHeight = getBrowserHeight();
	// scrolling offset
	var scrollY = getOffsetY();
	// dimensions
	var divWidth = 450;
	var divHeight = 210;
	// update dimensions if email a friend
	cmSetProduction();
	if (divID == "emailProductDiv") {
		divWidth = 372;
		divHeight = 445;
		// coremetrics
		//cmCreatePageElementTag("EmailFriend","Product Detail");
	} else {
		// coremetrics
		//cmCreatePageElementTag("Share","Product Detail");
	}
	// set coordinates
	var x = Math.floor(screenWidth/2) - Math.floor(divWidth/2);
	var y = 250;
	if (divID == "emailProductDiv") {
		y = 50;
	}
	// set objects
	var socialObj = $(divID);
	var wrapperObj = $("socialWrapper");
	if ((socialObj) && (wrapperObj)) {
		// make snapshot visible
		socialObj.style.top = y + "px";
		socialObj.style.left = x + "px";
		socialObj.style.zIndex = "10000";
		// set snapshotWrapper height
		var docHeight = screenHeight + scrollY;
		wrapperObj.style.height = docHeight + "px";	
		if (ie) {
			wrapperObj.style.width = screenWidth + "px";	
		}
		// display objects
		socialObj.style.display = "block";
		wrapperObj.style.display = "block";
	}
}
function hideSocial(divID, bool) {
	var wrapper = $("socialWrapper");
	var social = $(divID);
	// check if objects exist
	if ((wrapper) && (social)) {
		// compare current boolean value and function param
		if ((bool) && (curBool) && (location.href.indexOf("wishlist.jsp")>0)) {
			// set display property to none
			social.style.display = "none";
			wrapper.style.display = "none";
		} else if ((bool) && (location.href.indexOf("productdetail.jsp")>0)) {
			// set display property to none
			social.style.display = "none";
			wrapper.style.display = "none";
		}
	}
	// update variable to track current boolean value
	curBool = bool;
}
function hideAllSocial(bool) {
	var wrapper = $("socialWrapper");
	var share = $("shareProductDiv");
	var email = $("emailProductDiv");
	// check if objects exist
	if ((wrapper) && (share) && (email)) {		
		// wishlist page
		if ((bool) && (curBool) && (location.href.indexOf("wishlist.jsp")>0)) {
			// set display property to none
			share.style.display = "none";
			email.style.display = "none";
			wrapper.style.display = "none";
		} else if ((bool) && (location.href.indexOf("productdetail.jsp")>0)) {
			// set display property to none
			share.style.display = "none";
			email.style.display = "none";
			wrapper.style.display = "none";
		}
	}
	// update variable to track current boolean value
	curBool = bool;
}
// check if tellaFrnd=true
function socialQueryCheck() {
	if (location.search.indexOf("&tellaFrnd=true") > 0) {
		openSocial("emailProductDiv");
	}
}
	
// social bookmarks
function socialBookmark(socialSite,url,w,h) {
	// coremetrics
	//cmSetProduction();
	//cmCreatePageElementTag(socialSite,"Product Detail");
	// pop-up window
	window.open(url,'','toolbar=0,resizable=yes,scrollbars=yes,status=0,width=' + w + ',height='+h);
}	

/* add product to wishlist */
function addProductToWishlistUrban( prodID,guest,url ) {
	// declare variables
	var formName = 'frml'+prodID;
	var spanIdName = "l"+prodID+"colorsizenotavailable";
	// check size menu value
	if (document.forms[formName].elements["size"]) {
	    if (document.forms[formName].elements["size"].value == "") {
			// no, display error message
			displayColorSizeNotAvailableMessage(spanIdName,prodID);
		} else {
			// If the guest user,redirect to wishlistsearch.jsp
			if( guest == 'true' ){
				document.location.href = url;
			}else{
			// yes, add product to wishlist
			addItemToWishlist(formName);
			}
			
		}
	}  else {
		// If the guest user,redirect to wishlistsearch.jsp
		if( guest == 'true' ){
				document.location.href=url;
			}else{
			// yes, add product to wishlist
			addItemToWishlist(formName);
			}
	}	
}

function moveItemFromCartToSaveForLaterUrban(itemId,quantity,errorUrl,catalogRefId,guest,url){
	if( guest == 'true' ) {
		document.location.href = url;
	}
	else{
		document.saveforlater["/atg/commerce/gifts/GiftlistFormHandler.itemIds"].value=itemId;
    	document.saveforlater["/atg/commerce/gifts/GiftlistFormHandler.moveItemsFromCartErrorURL"].value=errorUrl;
    	document.saveforlater.commerceItemId.value=quantity;
    	document.saveforlater.commerceItemId.name=itemId;
    	document.saveforlater.catalogRefId.value=catalogRefId;
    	document.saveforlater.submit();
	}
     	
}

function moveItemFromCartToWishListUrban(itemId,quantity,errorUrl,catalogRefId,guest,url){
	if( guest == 'true' ) {
		document.location.href = url;
	}
	else{
		document.moveToWishList["/atg/commerce/gifts/GiftlistFormHandler.itemIds"].value=itemId;
    	document.moveToWishList["/atg/commerce/gifts/GiftlistFormHandler.moveItemsFromCartErrorURL"].value=errorUrl;
    	document.moveToWishList.catalogRefId.value=catalogRefId;
		document.moveToWishList.commerceItemId.value=quantity;
		document.moveToWishList.commerceItemId.name=itemId;
		document.moveToWishList.submit();
	}
}