/* ====================================================== 
 * UTILS 
 * ====================================================== */
/** String functions */
String.prototype.trim=function(){ return this.replace(/^\s+|\s+$/g,''); };
String.prototype.isEmpty=function(){ return this.trim()===''; };
String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};
String.prototype.removeAccents=function(){
	var strAccents=this;
    strAccents = strAccents.split('');
    strAccentsOut = new Array();
    strAccentsLen = strAccents.length;
    var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
    var accentsOut = ['A','A','A','A','A','A','a','a','a','a','a','a','O','O','O','O','O','O','O','o','o','o','o','o','o','E','E','E','E','e','e','e','e','e','C','c','D','I','I','I','I','i','i','i','i','U','U','U','U','u','u','u','u','N','n','S','s','Y','y','y','Z','z'];
    for (var y = 0; y < strAccentsLen; y++) {
        if (accents.indexOf(strAccents[y]) != -1) {
            strAccentsOut[y] = accentsOut[accents.indexOf(strAccents[y])];
        }
        else
            strAccentsOut[y] = strAccents[y];
    }
    strAccentsOut = strAccentsOut.join('');
    return strAccentsOut;
};
/* ====================================================== 
 * Global I (Iguatemi Common Object) - BEGIN
 * ====================================================== */
var I = function(){
	// Container principal do site
	this.container = '#main'; 
	// Classe para alinhar o site no topo
	this.csspot='pot';
	// Scroll
	this.scroll=J('#scrollable');
	this.cookie = { name:'JSESSIONID', options:{ path: '/', expires: 10 }};
	// Init
	this.pageOnTop().markTabs().newWindow().location().slider().customScroll().goTo().goBack();
};
I.prototype.getCookie=function(n){ n=n||this.cookie.name; return J.cookie(n); };
I.prototype.createCookie=function(v,n,o){ n=n||this.cookie.name; o=o||this.cookie.options; J.cookie(n,v,o); };
I.prototype.deleteCookie=function(n,o){ n=n||this.cookie.name; o=o||this.cookie.options; J.cookie(n,null,o); };
I.prototype.hideText=function(o){ this.jQueryIt(o).val(''); return this; };
I.prototype.showDefaultValue=function(o){ o=o.target; var v=o.value; o.value=v.isEmpty()?o.defaultValue:v.trim(); return this; };
I.prototype.customScroll=function(){ var s=J('#scrollable'); if(s.length)s.jScrollPane(); return this; };
I.prototype.reloadScroll=function(e){ setTimeout(function(){I.customScroll();},500); return this; };
I.prototype.reloadScroll=function(e,t){ setTimeout(function(){I.customScroll();},t); return this; };
I.prototype.newWindow=function(){ J('.newWindow').click(function(){ var url=J(this).attr('href'); if(!url.isEmpty()) window.open(url); return false;}); return this;};
I.prototype.goTo=function(){ J('.goTo').change(function(){ var url=J(this).val(); if(!url.isEmpty()) window.location=url;}); return this;};
I.prototype.goBack=function(){ J('.goBack').click(function(){ var dr=document.referrer; if(dr){window.location=dr;}else{history.go(-1);} return false; }); return this; };
I.prototype.pageOnTop=function(){
	var w=J(window), c=J(this.container), ch=c.height()+20, clz=this.csspot;
	var pot = function(){ c=(w.height() <= ch)?c.addClass(clz):c.removeClass(clz);};
	pot(); J(window).resize(pot);
	return this;
};
/* General purpose functions */
I.prototype.isJQuery=function(o){ return (o instanceof jQuery); };
I.prototype.jQueryIt=function(o){ return this.isJQuery(o)?o:J(o); };
I.prototype.targetInfo=function(o){ var t=J(o.target); return { target: t, clazz:t.attr('class'), id:t.attr('id') } };
I.prototype.slider=function(){
	var s=J('.slider'),ul=J('UL', s),a=J('LI:first', ul),p=null,n=a.next(),btN=J('A.next',s),btP=J('A.previous',s),imgWidth=416,v=1000;
	var next=function(ref){return ref.next().length}, prev=function(ref){return ref.prev().length};
	if(!next(a)){ /*game over*/ return this; } btN.show();
	btN.click(function(){ btP.show(); ul.animate({'marginLeft': '-='+imgWidth+'px'}, v); p=a; a=n; next(a)?n=a.next():btN.hide(); return false; });
	btP.click(function(){ btN.show(); ul.animate({'marginLeft': '+='+imgWidth+'px'}, v); n=a; a=p; prev(a)?p=a.prev():btP.hide(); return false; });
	return this;
};
I.prototype.markTabs=function(){
	var tabs=J('.tabs .tab');
	if(tabs.length){
		var loc=parseUri(window.location);
		var dir=loc.directory;
		loc=loc.directory+loc.file;
		var l=tabs.length;
		while(l--){
			var p=parseUri(tabs[l]);
			p=p.directory+p.file;
			if(p==loc||p==dir) {
				var tab=J(tabs[l]);
				tab.parent().addClass('tabLiActive');
				tab.addClass('active');
			}
		}
	}
	tabs.hover(function(){
		var a=J(this);
		var li=a.parent();
		if(!a.hasClass('active')){
			li.toggleClass('tabLiActive');
		}
		
	});
	return this;
};
I.prototype.location=function(){
	J('.location').click(function(){
		var floors={'Térreo':1,'Faria Lima':2,'Superior':3};
		var u=parseUri(J(this).attr('href'));
		var andar=u.queryKey.andar,loja=u.queryKey.loja;loja=(loja)?loja:'';
		andar=(andar)?unescape(andar):'';
	    window.open(
		    '/lojas/localizacao.shtm?andar='+floors[andar]+'&loja='+loja,'storemap', 
	   		'STATUS=NO,TOOLBAR=NO,LOCATION=NO,DIRECTORIES=NO,RESISABLE=NO,SCROLLBARS=NO,MENUBAR=NO,COPYHISTORY=NO,WIDTH=890,HEIGHT=594');
		return false;
	});
	return this;
};
I.prototype.flashParams=function(){ var p={allowFullScreen:'true', allowscriptaccess:'always', wmode:'transparent', scale:'noScale'}; return p; };
var I = new I();

//Completa data e tempo com 0 a esquerda
var leadingZero=function(number){ return ((number+'').length<2)?'0'+number:number; };

/*******************************************
 * YOUTUBE - BEGIN
 *
 * Usage :
 *
 * By name :
 * youtube.videos.search({ 'q': 'its complicated trailer', container:'#ytapiplayer' });
 *
 * By Id :
 * youtube.videos.putById({ id: 'qE2CItUaAcA', container: '#ytapiplayer' });
 */
var youtube=function(){

	// GData address
	var gDataAddr = 'http://gdata.youtube.com/feeds/api/videos';
	// GData config
	var gDataConf = { orderby:'relevance', safeSearch:'strict', 'start-index':1, alt:'json-in-script', v:'2', format:'5', callback:'' };
	// GData url ( address + config )
	var gDataUrl  = [ gDataAddr, '?', jQuery.param(gDataConf), '?' ].join('');

	// YouTube Search
	return {
		videos : {
			search : function(params) {
				var found=false;
				jQuery.getJSON(gDataUrl, {q:params.q}, function(data) {
					// ID do vídeo
					var id = data.feed.entry[0].id.$t;
					id=id.substring(id.lastIndexOf(":")+1);
					found=youtube.videos.putById({'id':id, 'container':params.container, 'width':params.width, 'height':params.height});
				});
				return found;
			},
			putById : function(params) {

					// ID do vídeo
					var id = params.id;

					// Altura Largura (425/344) - Blogs / (420/280) - Cinema
					var width=params.width||425, height=params.height||344;
					var inlineStyleNormal=[' style="width:',width,'px;height:',height,'px" '].join('');
					var inlineStyleWidthFull=[' style="width:100%;height:',height,'px" '].join('');

					// Parametros do video
					var videoParams = { fs : 1, enablejsapi : 1, hl : 'en_US' };

					// URL do vídeo
					var videoURL = [ 'http://www.youtube.com/v/', id , '&', jQuery.param(videoParams) , '&'].join('');

					// O Embed
					var content = [
						'<div class="floatingPlayer_gsvb playing_gsvb" ',inlineStyleWidthFull,'>',
							'<div class="playerBox_gsvb playing_gsvb">',
								'<div class="playerInnerBox_gsvb">',
									'<div class="player_gsvb" ',inlineStyleWidthFull,'>',
										'<object ',inlineStyleWidthFull,'>',
										'<param name="movie" value="',	,'"></param>',
										'<param name="allowFullScreen" value="true"></param>',
										'<param name="allowscriptaccess" value="always"></param>',
										'<embed src="',videoURL,'" class="player_gsvb" ',inlineStyleNormal,' ',
											'type="application/x-shockwave-flash" ',
											'allowscriptaccess="always" ',
											'wmode="transparent" ',
											'allowfullscreen="true" ',
											'>',
										'</embed>',
										'</object>',
									'</div>',
								'</div>',
							'</div>',
						'</div>'
					];

					// Insere o vídeo dentro do container informado na página
					var c = J(params.container);
					c.html(content.join(''));
					setTimeout(function(){
						c.removeClass('hide');
						I.reloadScroll();
					},500); 
					return true;
			}
		}
	}
}();/* YOUTUBE - END */

/* JQuery extensions */
J.fn.fadeToggle = function(speed, easing, callback) {return this.animate({opacity: 'toggle'}, speed, easing, callback);};

/* ====================================================== 
 * Global I (Iguatemi Common Object) - END
 * ====================================================== */

function detalhesLoja(url) {
	var map = {
		// Serviços > Balcão de informações
		'/lojas/loja-1589.shtm':'/servicos/balcao-de-informacoes.shtm',
		'/lojas/loja-1574.shtm':'/servicos/balcao-de-informacoes.shtm',
		'/lojas/loja-1575.shtm':'/servicos/balcao-de-informacoes.shtm',
		// Concierge
		'/lojas/loja-1568.shtm':'/concierge/concierge.shtm',
		'/lojas/loja-1567.shtm':'/concierge/concierge.shtm',
		'/lojas/loja-1569.shtm':'/concierge/concierge.shtm',
		'/lojas/loja-1571.shtm':'/concierge/lounge-one.shtm'
	}
	url=(map[url])?map[url]:url;
	window.opener.location=url;
	window.close();
}

J(function(){

	// Busca
	J('#txtFind').click(function(){if(this.value==this.defaultValue)I.hideText(this);}).focusout(I.showDefaultValue);
	J('#frmFind').submit(function(){ var t=J('#txtFind', J(this)); if(t.val().isEmpty() || t.val() == t.attr('defaultValue')) return false; }).keyup(function(){ /*suggest*/ });

	// Home - Destaques
	var bc = J('#boxCine'), lc = J('.lstCine', bc), bh = J('#boxHl'), lh = J('.lstHl', bh), vel=400;
	var hc = { interval: 50, sensitivity: 2, over: function(){ lc.slideDown(vel); lh.slideUp(vel) }, timeout: 100, out: function(){ lc.slideUp(vel); lh.slideDown(vel) } };
	var hh = { interval: 50, sensitivity: 2, over: function(){ lh.slideDown(vel) }, timeout: 100, out: function(){ /*lh.slideUp(vel)*/ } };
	bc.hoverIntent(hc); bh.hoverIntent(hh);
	
	
	// Home - Menu
	var menu = J('#menu .item');
	menu.hover(
		function(e){ J('.sub', this).stop(true,true).show(); },
		function(e){ if(!J(e.target).parents('form:first').length){
			J('.sub', this).stop(true,true).hide();
		}}
	);

	// Barra do IE
	var alertBar = J('#alertBar');
	if(alertBar && J.browser.msie && J.browser.version < 7){
		alertBar.slideDown();
		J('.closeBar',alertBar).click(function(){
			alertBar.slideUp();
		});
	}
	
	// Home - Player Home
	if(J('#galleryWrapper #gallery').length){
		swfobject.embedSWF('/swf/player-home.swf', 'gallery', '980', '513', '9.0.0','',{id:'PlayerHome', xmlPath:'/xml/player-home.xml', referrer:document.referrer},{allowFullScreen:'false',allowscriptaccess:'always',wmode:'transparent',scale:'noScale'});
	}

	// Formata as datas em sala de imprensa
	J('.newsHeader .data').each(function(){
	    var $dt=J(this),dt=$dt.text().trim(),data=dt.split('T')[0],arr=data.split('-'),
	    ano=arr[0],mes=arr[1],dia=arr[2];
	    $dt.text([dia,mes,ano].join('/'));
	});

	// Revista I
	if(J('#wsRevista #revistaSwf').length){
		// Exibe o primeiro da lista
		var combo=J('#edAnteriores');
		var xml = J('option:eq(1)',combo).attr('value');
		swfobject.embedSWF('/swf/GuiaFashionRevista.swf', 'revistaSwf', '714', '405', '9.0.0','',{id:'RevistaI', xmlPath:xml},{allowFullScreen:'false',allowscriptaccess:'always',wmode:'transparent',scale:'noScale'});
		// On change muda o swf
		combo.change(function(){
			var sel=J(this).val();
			if(sel){
				swfobject.embedSWF('/swf/GuiaFashionRevista.swf', 'revistaSwf', '714', '405', '9.0.0','',{id:'RevistaI', xmlPath:sel},{allowFullScreen:'false',allowscriptaccess:'always',wmode:'transparent',scale:'noScale'});
			}
		});
	}
	
	// Iguatemi ao longo do tempo
	if(J('#galleryTimeLine #timeLine').length){
		swfobject.embedSWF('/swf/iguatemi-ao-longo-do-tempo.swf', 'timeLine', '733', '406', '9.0.0','',{id:'HistoriaIguatemi', xmlPath:'/xml/quem-somos/linha-do-tempo.xml'},{allowFullScreen:'false',allowscriptaccess:'always',wmode:'transparent',scale:'noScale'});
	}
	
	// História da Moda V2
	if(J('#galleryHistoriaDaModa #historiaDaModa').length){
		swfobject.embedSWF('/swf/historia-da-moda.swf', 'historiaDaModa', '733', '365', '9.0.0','',{id:'HistoriaModa', xmlPath:'/xml/guia-fashion/historia-da-moda/historia-da-moda.xml'},{allowFullScreen:'false',allowscriptaccess:'always',wmode:'transparent',scale:'noScale'});
	}

	// Lojas
	if(J('#swf-lojas-container #swf-lojas').length > 0){
		var url = parseUri(window.location).queryKey;
		var movieParams={
			andar:url.andar,
			loja:url.loja,
			path_xml:'http://www.iguatemisp.com.br/xml/lojas/lojas.xml',
			path_compiled:"http://www.iguatemisp.com.br/swf/lojas/mapa-expandido/swf/lojas/compiled.swf",
			path_maps:"http://www.iguatemisp.com.br/swf/lojas/mapa-expandido/swf/lojas/mapas.swf"
		};
		// var movieParams={
		// 	andar:url.andar,
		// 	loja:url.loja,
		// 	path:'/xml/lojas/lojas.xml',
		// 	pathswf:'/swf/lojas/lojas.swf'
		// };
		var movieInfo={path:'http://www.iguatemisp.com.br/swf/lojas/mapa-expandido/swf/lojas/lojas-loader.swf', container:'swf-lojas', width:'920', height:'670', version:'9.0.45' };
		swfobject.embedSWF(movieInfo.path, movieInfo.container, movieInfo.width, movieInfo.height, movieInfo.version,'', movieParams, I.flashParams);
	}

	// Player matérias
	var materiaPlayer=J('#movie.media.materia');
	if(materiaPlayer.length > 0){
		var c=J('#container-movie-materia', materiaPlayer);
		var p=c.html(); c.html('');
		var flashvars = { file:p, autostart:'false', stretching:'fill', backcolor : '#99817d', frontcolor :'#fff' };
		var params = { allowfullscreen:'true', allowscriptaccess:'always', wmode:'opaque' };
		var attributes = { id:'videoId', name:'videoName' };
		swfobject.embedSWF('/swf/mediaplayer.swf', 'container-movie-materia', '415', '300', '9.0.45', false, flashvars, params, attributes, I.reloadScroll);
	}

	// FAQ
	var openFaq=function(el){ J(el).toggleClass('faqOpen').next('.answerFaq').slideToggle('fast', I.customScroll ); };
	var question=J('.questFaq');
	var allOpen=false;
	J('.btAbrirTodas').click(function(){
		if(allOpen){
			question.addClass('faqOpen').removeClass('faqOpen').next('.answerFaq').hide(); I.customScroll();
			allOpen=false;
		}else{
			question.removeClass('faqOpen').addClass('faqOpen').next('.answerFaq').show(); I.customScroll();
			allOpen=true;
		}
	});
	question.click(function(){openFaq(this)});

	// Shoppings
	var url='/quem-somos/shoppings/', t='mall', s=t.length, malls=[215,1724,352,214,345,349,353,212,346,350,354,355,347,351,213,1724];
	J('.btMall').click(function(){
	    var h=J(this).attr('href');
	    var i=parseInt(h.substring(h.indexOf(t)+s));
		var page=[url,malls[--i],'.shtm'].join('');
		J('#mallDetail').load(page).hide().fadeIn('slow');
		setTimeout(function(){I.newWindow();},100);
	});

	// Youtube
	var ytplayerIdentifier='.ytplayer';// can be a class, id, etc
	var ytplayer=J(ytplayerIdentifier);
	var lVideos = ytplayer.length;
	if(lVideos>0){
		ytplayer.addClass('hide');
		while(lVideos--){
			var v = J(ytplayer[lVideos]);
			var params=eval('('+v.text()+')');
			if(params.id){
				youtube.videos.putById({ id: params.id, container : v, width:params.width, height:params.height });
				setTimeout(function(){
					if(J('.player_gsvb',v).length>0){
						v.removeClass('hide');
						I.reloadScroll();
					}
				},500); 
			}else if(params.name){
				youtube.videos.search({ q : params.name, container: v, width:params.width, height:params.height });
				setTimeout(function(){
					if(J('.player_gsvb',v).length>0){
						v.removeClass('hide');
						I.reloadScroll();
					}
				},500); 
			}
		}
	}

    // Botão participar de promoção/eventos
    J('.btParticipar, .lnkInscricao, .btQueroInscrever').click(function(){
    	J('#boxParticipe').hide();
    	J('#frmInscricao').show();
    	setTimeout(function(){I.customScroll();},100);
    	setTimeout(function(){I.scroll[0].scrollTo('#frmInscricao');},500);
    	return false;
    });
 
    // Muda skin de lojas kids
    if(document.referrer.indexOf('kids')>-1){
    	var flagContainer=J('#flagKids');
    	if(flagContainer.length>0){
	    	var flag=eval('('+ flagContainer.text() +')');
	    	if(flag.kids){
		    	var styleName='Kids';
		    	J('link[@rel*=style][title]').each(function(i){
		    	    this.disabled = true;
		    	    if (this.getAttribute('title') == styleName) this.disabled = false;
		    	});
	    	}
    	}
    }

    // Busca lojas por categoria/cozinha
    J('#storeCategory, #storeCategoryDrop, #diningCategory, #diningCategoryDrop').change(function(){
        var sel=J(this);
        if(sel.val()){
            var id=sel.attr('id');
            var urlSuffix='';
            if(id.indexOf('store')>-1){
                urlSuffix = 'categoria='+sel.val();
            }else{
                urlSuffix = 'cozinha='+sel.val();
            }
            window.location='/lojas/?'+urlSuffix;
        }
    });

    // Menu de eventos...(destaque e próximos eventos) 
    var hlEvents=J('#nav #hlEvents');
    var lnkHl = J('div a',hlEvents);
    var h2 = J('h2',hlEvents);
    J.get('/xml/eventos/destaque.xml',function(xml){

    	//DESTAQUE EVENTOS
    	var destaque = J('destaque',xml);
    	var evento = J('evento', destaque).text();
    	var imgSrc = J('imagem', destaque).text();
    	var dataInicio = J('dataInicio', destaque).text();
    	var dataFim = J('dataFim', destaque).text();
    	var hora = J('hora', destaque).text();
    	var url = J('url', destaque).text();

    	// Imagem
        var img = J('img', lnkHl);
    	img.attr('src',imgSrc);
        img.attr('title',evento);
		lnkHl.attr('href',url);
    	
		// Titulo
    	var lnk=J('h2 a',hlEvents);
    	lnk.text(evento);
    	lnk.attr('href',url);
        lnk.attr('title',evento);

    	// Data/Hora
        if(hlEvents.length > 0){
	    	var spanData=J('span',hlEvents)[0];
	    	var spanHora=J('span',hlEvents)[1];
	    	J('var',spanHora).text(hora);
	    	var txtData='';
	    	if((dataInicio==dataFim)||(!dataFim)){
	    		txtData=dataInicio;
	    	}else{
	    		txtData=dataInicio +' a '+ dataFim;
	    	}
	    	J('var',spanData).text(txtData);
        }
    });

	I.reloadScroll();

	/** SUGGEST */
	J('#txtFind').autocomplete('/wfcomp/suggest?site.code=SPNEW',
		{
			selectFirst:false,
			width:205,
			formatItem: function(data, i, max) {
				return eval('('+ data +')').result.title;
			},
			formatResult: function(data) {
				return eval('('+ data +')').result.title;
			}
		}
	);
	/** /SUGGEST */

	/** PESQUISA */
	var lnkPesquisa=J('.pesquisa');
	if(lnkPesquisa.length > 0){
		lnkPesquisa.colorbox({
			href:lnkPesquisa.attr('href'),
			width:575,
	    	onOpen:function(){
	    		J('#cboxOverlay').css('background','url(/img/bg-alpha-04.png)');
		    	J('#cboxContent').css('marginTop','0');
		    	//J('#cboxLoadedContent, #cboxContent, #colorbox, #cboxWrapper').css('height','338px');
	    	},
	    	onComplete:function(){
		    	J.fn.colorbox.resize();
		    	//J('#frmIndique .btClose').click(function(){J.fn.colorbox.close();});
	    	}
	    });
	}
	/** /PESQUISA */
});
