//detecting di ie6: imposto variabile generica retroCompatibleMode
var retroCompatibleMode;
var CATEGORY = "category"
var SUPERCATEGORY = "supercategory"
var PRODUCT = "product"
retroCompatibleMode = false;
var doResetSitePosition = true;
var currentCategory = [];
var nb = null;
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
{
    var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
    if (ieversion<=6)
        retroCompatibleMode = true;
}

function changePage(id) {
    var href="";
    switch (id) {
        case 100: href="/"; break;
        case 101: href = "/conosci-athletes-world/"; break;

        case 103: href = "/newsletter/"; break;

        case 108: href = "/sneaker-home/"; break;
        
		//yk: new categories
        case 400: href = "/scarpe-uomo/"; break;
        case 401: href = "/scarpe-donna/"; break;
        case 402: href = "/abbigliamento-uomo/"; break;
        case 403: href = "/abbigliamento-donna/"; break;
        case 404: href = "/accessori/"; break;
		
        //BOTTOM
        case 201: href = "/lavoro/"; break;
        case 202: href = "/storelocator/"; break;
        case 203: href = "/franchising/"; break;
        case 204: href = "/contatti/"; break;
        //DEFAULT
        default: href="/";break;

    }
    location.href = href;
}



function setSitePosition(depth, title, productId){
	var prev = clientContext.Position;
	var cp = clientContext.Position;
	var reloadPage = false;
	var isExclusive = false;
	var sitePath = $(document.getElementById(clientContext.SitePathId));
	sitePath.html("");
	
	while(cp != null){
		if(cp.Depth == depth){
			prev = cp.Previous;
		}
		if (cp.Title == "modelli-esclusivi") {
			reloadPage = true;
			isExclusive = true;
		}
		
		cp = cp.Previous;
	}
	
	clientContext.ProductInfo = null;
	
	switch(depth){
		case SUPERCATEGORY:
			var pos = {"Depth": SUPERCATEGORY, "Title": title, "Previous": prev,  "Path": "/" + title.replace(/ /g, "").replace(/'/g, "") + "/"};
			clientContext.Position = pos;
			closePresentation();
			clearNavbar();
			break;
		case CATEGORY:
			var pos = {"Depth": CATEGORY, "Title": title, "Previous": prev,  "Path": prev.Path + title.replace(/ /g, "").replace(/'/g, "") + "/"};
			clientContext.Position = pos;
	        closePresentation();
			if(isExclusive){
				openFirstProduct();
				return false;
			}
			//return false; //to avoid page reloading;
			break;
		case PRODUCT:
		    var pos = { "Depth": PRODUCT, "Title": title, "Previous": prev, "Path": prev.Path + productId + "/"};
			clientContext.Position = pos;
			clientContext.ProductInfo = {"Id": productId, "Title": title}
			var c = clientContext.Position.Previous;
			var str = "";
			var d;
			while(c != null){
			    str = "<a href='" + c.Path + "' title='" + c.Title + "' onclick=\"return setSitePosition('" + c.Depth + "','" + c.Title.replace(/'/g, "\\'") + "'" + (productId != undefined ? "," + productId : "") + ");\">" + c.Title + "</a>"; 
				//	d = $("<a></a>").attr({
				//	onclick: "alert('test1');return setSitePosition('" + c.Depth + "','" + c.Title.replace(/'/g, "\\'") + "'" + (productId != undefined ? "," + productId : "") + ");",
				//	href: c.Path
				//});
				//d.html(c.Title);
				sitePath.prepend(str);
				sitePath.prepend(delimiter());

				c = c.Previous;
			}
			sitePath.prepend("<a href='/'>home</a>");
			break;
	}
	return reloadPage; // forces to reload if true
}

function delimiter(){
	return "<img src='" + clientContext.DelimeterImagePath + "' />";
}

function loadGallerySuccess(result) { 
scrolsright = false;
scrolsleft = false;

    currentCategory = result[0];
    currentCategory.title = result[1];
    currentCategory.prefix = result[2];
    
    //debugs(result[0]+"___"+result[1]+"___"+result[2])
    $("#navbarPlaceholder").html(getGalleryHtml());
    
	initNavbar();
	
	//alerts("OK");
    /*if (doResetSitePosition) {
        setSitePosition(CATEGORY, currentCategory.title);
    } else {
        doResetSitePosition = true;
    } */
    
}


function alerts(val) {if(location.href.indexOf("?") > 0) {alert(val);}}
function debugs(val) {if(location.href.indexOf("?") > 0) {
document.getElementById("preloader").innerHTML = "<br><br><br><br><br>"+val;
document.getElementById("preloader").style.display = "block"; }
}


function loadGalleryExSuccess(result) {
    currentCategory = result[0];
    currentCategory.title = result[1];
    currentCategory.prefix = result[2];
    $("#navbarPlaceholder").html(getGalleryHtml());
    initNavbar();
    if (doResetSitePosition) {
        setSitePosition(CATEGORY, currentCategory.title);
    } else {
        doResetSitePosition = true;
    }
    openFirstProduct();
}

function loadGallery(categoryId) {

br = 0;
leftBorder = 1;
rightBorder = 0;
rightAdjust = 0;
scrolsleft = false;
scrolsright = false;
doing = 1;

    AthletesWorld.ProductsService.getCurrentCategoryById(categoryId, loadGallerySuccess);
}

function loadGalleryEx(categoryId) {
    AthletesWorld.ProductsService.getCurrentCategoryExById(categoryId, loadGalleryExSuccess);
}

//opens first product in category if any
function openFirstProduct(){
	if(currentCategory.length > 0){
		openPresentation(0);
		setSitePosition(PRODUCT, currentCategory[0][6].toLowerCase(), currentCategory[0][0])
	}
}

function getCurrentCategory(id){
	for(i in categories){
		if(categories[i][0] == id){
			return categories[i][2];
		}
	}
	return [];
}

function clearNavbar(){
	$("#navbarPlaceholder").html(getGalleryHtml());
}


function initNavbar(){ if(currentCategory.length>0) {
	if(currentCategory.length >= 4){ 
	$("#navbar").jcarousel({
		scroll: 1,
		size: currentCategory.length,
		initCallback: navbarInit,
		buttonNextEvent: '',
		buttonPrevEvent: '',
		wrap: 'circular',
		buttonNextHTML: "<div id='navbarNext' style='cursor:pointer' class='nextor' onmouseover='leftsScroll()' onmouseout='stopsScroll()'></div>",
		buttonPrevHTML: "<div id='navbarPrev' style='cursor:pointer' class='prevor'  onmouseover='rightsScroll()' onmouseout='stopsScroll()'></div>",
		

    });
    
	}else{
		$("#navbar").jcarousel({
		scroll: 1,
		size: currentCategory.length,
		initCallback: navbarInit,
		buttonNextHTML: null,
		buttonPrevHTML: null,
		wrap: 'circular'
    });
	}
  }
}



function stopsScroll() { 


scrolsleft = false; 
scrolsright = false; 
if(a) {clearTimeout(a);}
if(baz) {clearTimeout(baz);}
if(c) {clearTimeout(c);}
if(d) {clearTimeout(d);}


 }

a = false; 
baz = false;
c = false;
d = false;
 
br = 0;
leftBorder = 1;
rightBorder = 0;
rightAdjust = 0;
scrolsleft = false;
scrolsright = false;
doing = 1;


function leftsScroll() { stopsScroll();  d = setTimeout("rightsScrollPre()",400); }
function rightsScroll() {stopsScroll(); baz = setTimeout("leftsScrollPre()",400); }

function leftsScrollPre() { scrolsleft = true;



	rightBorder	 = currentCategory.length;
    
	if(doing) {doing=0;


	leftBorder = leftBorder - 1;

		if(leftBorder<1) { leftBorder = 1;
		
		rightBorder = rightBorder + rightAdjust
		if(rightBorder<2) {rightBorder=currentCategory.length; rightAdjust=0;}
		
		
		globalHTML = document.getElementById("navbar").innerHTML;
		movedHTML = document.getElementById("l"+rightBorder).innerHTML;
		
		rightAdjust = rightAdjust -1;
		
		document.getElementById("navbar").innerHTML = '<li id="ladd" class="jcarousel-item jcarousel-item-horizontal jcarousel-item-4 jcarousel-item-4-horizontal" >'+movedHTML+'</li>' + globalHTML
		curPos = document.getElementById("navbar").style.left;
		if(!curPos) {document.getElementById("navbar").style.left = 0 + "px";}
		curPos = document.getElementById("navbar").style.left;
		curPos = curPos.replace("px","");
		curPos = parseInt(curPos)
		nextPos =  curPos - 182;
		document.getElementById("navbar").style.left = nextPos + "px"
	}
	
	
	leftsScrollReal();
	
	}
}

function leftsScrollReal() { 

 
curPos = document.getElementById("navbar").style.left;
if(!curPos) {document.getElementById("navbar").style.left = 0 + "px";}
curPos = document.getElementById("navbar").style.left;
curPos = curPos.replace("px","");
curPos = parseInt(curPos)
nextPos =  curPos + 13;
document.getElementById("navbar").style.left = nextPos + "px"

if(br<13) {setTimeout("leftsScrollReal()",35); br++;  }
else { doing = 1; br = 0;  c = setTimeout("checkLefts()",300); return doing;}

}



function checkLefts() { 
	if(scrolsleft) { rightsScroll();}
	 else{  return scrolsleft = true;}
}

function checkRights() { 
	if(scrolsright) {leftsScroll(); }
	 else{ return scrolsright = true;}
}




function rightsScrollPre() {  scrolsright = true;

	rightBorder	 = currentCategory.length;
	rightAdjust = rightAdjust -1;
	rightBorder = rightBorder + rightAdjust
	
   if(doing) {doing=0;

   
	if(rightBorder<5) {
				
		globalHTML = document.getElementById("navbar").innerHTML;
		leftBorder = leftBorder + 1;
		movedHTML = document.getElementById("l"+leftBorder).innerHTML;
		document.getElementById("navbar").innerHTML = globalHTML+'<li id="ladd" class="jcarousel-item jcarousel-item-horizontal jcarousel-item-4 jcarousel-item-4-horizontal" >'+movedHTML+'</li>' 
		if(leftBorder>currentCategory.length-1) {
		leftBorder=0; 
		rightAdjust=0; 
		 
		}
		
	}
      
	rightsScrollReal();
	}


}
drainer = 1;

function rightsScrollReal() {


curPos = document.getElementById("navbar").style.left;
if(!curPos) {document.getElementById("navbar").style.left = 0 + "px";}
curPos = document.getElementById("navbar").style.left;
curPos = curPos.replace("px","");
curPos = parseInt(curPos)
nextPos =  curPos - 13;
document.getElementById("navbar").style.left = nextPos + "px"

if(br<13) {setTimeout("rightsScrollReal()",35); br++;  }
else { doing = 1; br = 0; a = setTimeout("checkRights()",300); return doing;}

}






function rightScroll() {}


var nbtimer = null;
function navbarStartScroll(controlId){	
	if(controlId == "navbarNext"){
		nb.next();
		nbtimer = setTimeout("navbarStartScroll('navbarNext')", 1000);
	}else if(controlId == "navbarPrev"){
		nb.prev();
		nbtimer = setTimeout("navbarStartScroll('navbarPrev')", 1000);
	}else{
		alert('caramba');
	}
}

function navbarStopScroll(){
	if(nbtimer != null){
		clearTimeout(nbtimer);
		nbtimer = null;
	}
}



function navbarItemVisibleIn(carousel, item, i, state, evt){ 
	i--;
	var len = currentCategory.length;
	
	var idx =((len + i) % len);
	idx = (idx >= 0 ? idx: -idx )
	htmlka = getNavbarItemHTML(idx);
	if(htmlka) {carousel.add(i+1,htmlka); //alerts(htmlka);
	}
	idx++;
}


function navbarLoad(carousel, state){  disc = 1
	if(state == 'init'){ 
	scrolsleft = false;
	scrolsright = false;
	 //if(currentCategory.length==0) {currentCategory.length=10;}
	 carousel.add(0, getNavbarItemHTML(0));
		for(i = 0; i < currentCategory.length+1; i++){
		htmlka = getNavbarItemHTML(i);
		if(htmlka) {carousel.add(i+disc, htmlka); 		//alerts(htmlka);
			}  else {disc = disc - 1;}
		}
	
br = 0;
leftBorder = 1;
rightBorder = 0;
rightAdjust = 0;
scrolsleft = false;
scrolsright = false;
doing = 1;
	
	}
}



function navbarItemVisibleOut(carousel, item, i, state, evt){
    carousel.remove(i-1);
};

function getNavbarItemHTML(i){ //alerts(currentCategory[i][0]);  
//alerts(i);
  if(i<currentCategory.length) {
    a = zz(i, currentCategory[i][0], currentCategory[i][6]);
	
	return a;
	} 
	return false;
};

function navbarInit(carousel, state) { //alerts(carousel);
scrolsright = false;
scrolsleft = false;
	if(state == 'init'){
		nb = carousel;
		navbarLoad(carousel, state)
	}else{
		alert("state");
	}
};

function GenVirtualImageName(description, id) {
    ProductImagePrefix = "";
    if (currentCategory.prefix != undefined)
    {
        ProductImagePrefix = currentCategory.prefix + "-"
    }
    return ProductImagePrefix + (description.replace(/ +/g, "-").replace(/[^a-zA-Z0-9\-]/g, "") + "-" + id).toLowerCase()
}

function zz(productIndex, productId, productTitle) { 
	debugs(productTitle+"_"+productId);
    //debugs(productIndex);
    return "<img  style='display:inline' src=\"/thumbs/" + GenVirtualImageName(productTitle,productId) + ".png\" id='zoom" + productIndex + "' onclick=\"openPresentation(" + productIndex + "); return setSitePosition(PRODUCT, '" + productTitle.replace(/'/g, "\\'").toLowerCase() + "'," + productId + ");\"/>";
}

function openPresentation(productIndex) {
    var productID = currentCategory[productIndex][0];
    if (currentProductId == productID && $("#productPresentation").css("display") != "none") {
        return;
    }
    currentProductId = productID;
	var img = new Image();
	
	var productTitle = currentCategory[productIndex][6];
	var imgSrc = "/zoom/" + GenVirtualImageName(productTitle, productID) + ".png";
	var jimg = $("#productImage");
	jimg.attr('src', '');
	jimg.width('');
	jimg.height('');
	jimg.attr('src', "/Images/loader.gif");
	img.onload = function() {
	    var aw = img.width / 510;
	    var ah = img.height / 270;
	    jimg.attr('src', '');
	    if (aw > 1 || ah > 1) {
	        if (aw > ah) {
	            jimg.width('510px');
	        } else {
	            jimg.height('270px');
	        }
	    }
	    jimg.attr('src', imgSrc);
	};
	img.src = imgSrc;
	
	document.getElementById("iLikeIt").onclick = function() { voteStream(productIndex, true); };
	document.getElementById("iDontLikeIt").onclick = function() { voteStream(productIndex, false); };
	$("#productTitle").text(productTitle);
	$("#productDescription").text(currentCategory[productIndex][4]);
	var jProductFlags = $("#productFlagsDiv");
	jProductFlags.text("");
	if (currentCategory[productIndex][2] == 1) {
	    jProductFlags.text("EXCLUSIVE EDITION");
	    if (currentCategory[productIndex][3] == 1) {
	        jProductFlags.append("<br/>LIMITED EDITION");
	    }
	} else if (currentCategory[productIndex][3] == 1) {
	    jProductFlags.text("LIMITED EDITION");
	}
	$("#productPresentation").show();
}

function drillUp(){
	return setSitePosition(CATEGORY, clientContext.Position.Previous.Title)
}

function closePresentation(){
	$("#productPresentation").hide();
	return false;
}

function getGalleryHtml(){
    var html = "<ul style='width:15000px;' onmouseover='stopsScroll()' onmouseout='stopsScroll()' id=\"navbar\" class=\"navbar\">";
    html += "</ul>";
    return html;
}

function printImageThumbnailEx(imageID,descr){
    return "<li onmouseover='stopsScroll()' id='con"+imageID+"'><img src=\"/thumbs/" + imageID + ".png\" id='zoom" + imageID + "' onclick=\"return zoomImageEx(this,'" + imageID + "')\" class=\"highslide\" /><span></span></li>";
}

function zoomImageEx(sender, productId){
	var str = "#highslide-html-" + productId;
	if(!$(str).length){
		var img = new Image();
		img.src = "/zoom/" + GenVirtualImageName(productTitle, productId) + ".png";
		img.name = currentCategory.prefix + " " + productTitle;
		img.onload = function(){
			var product = currentCategory[productId];
			$("#divZoomPlaceholderEx").html(printImageZoomer(productId, product[2],product[3], product[4], img.width, img.height));
			return hs.htmlExpand(sender, { contentId: 'highslide-html-' + productId, targetX: 'flashMenu 25px', targetY: 'flashMenu 60px' } );
		}
	}
}

function ajax(url, vars, callbackFunction) {
    var request = new XMLHttpRequest();
    request.open("POST", url, true);
    request.setRequestHeader("Content-Type",
                           "application/x-www-form-urlencoded");

    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) {
            if (request.responseText) {
                callbackFunction(request.responseText);
            }
        }
    };
    request.send(vars);
}

function loadSneakerHomeSuccess(result) {
    //AthletesWorld.ProductsService.getActiveSneakerHomeShops(function(result) { for(i=0;i<result.length;i++) { alert(result[i][]) } });
    sneakerHomeShops = result;

    sneakerHomeInterval = setInterval(function() {
        if ((!document.getElementById("sneakerHomeFlash"))) {
        } else {
            document.getElementById("sneakerHomeFlash").sendTextFromHtml(sneakerHomeShops);
            clearInterval(sneakerHomeInterval);
        }
    }, 50);
}

//gets a list of sneakerHome entries
function loadSneakerHome() {
    AthletesWorld.ProductsService.getActiveSneakerHomeShops(loadSneakerHomeSuccess);
}

//gets product link by its id
function getProductUrlById(id, callback) {
    AthletesWorld.ProductsService.getProductUrlById(id, callback);
}