// JavaScript Document

$(document).ready(function(){

// Ajax Status 	
	$("#pnlStatus").ajaxStart(function(){ $(this).show(); });
	$("#pnlStatus").ajaxStop(function(){  $(this).hide(); });	
	$("#pnlStatus").center({ vertical: false, horizontal: true });
	
	$(".lnkFalse").livequery('click', function(){ return false; });
	
	$("#lnkTwitter").livequery('click',function(){ getTwitterFollowers(); });
	$("#lnkFacebook").livequery('click',function(){ getFacebookFollowers(); });
	
	$("html").livequery(function(){makeCollapsible( 
			{rules:
				[
				{contClass:'collapsible',titles:'img',hide:'p',defaultOpenIndex:0},
				{contClass:'collapsible',titles:'h1',hide:'p',defaultOpenIndex:0}
				] 
			 }		
	); });
	
	
	$("html").livequery('click', function(){
			if($('#panelTwitter').is(':visible') || $('#panelFacebook').is(':visible')){
				$('#panelTwitter, #panelFacebook').slideUp();
			}
	});
	
	
	SexyLightbox.initialize({color:'white', dir: '/_assets/_css/sexylightbox/sexyimages'});
	
	//$('.download').livequery('click', function(){ delivery({el:$(this)}); } );
	
	/* EXTERNAL LINKS */
	$("a[href*='http://']:not([href*='" + location.hostname + "']),[href*='https://']:not([href*='" + location.hostname + "'])")
		//.not($(".facebook a"))
		.livequery(function(){ 
			$(this).addClass("external")
				.attr("target","_blank")
				.attr("title","Ventana nueva"); 
		} );
	
	$('.facebook a.external')
		.livequery(function(){
			$(this).removeClass('external');
		} );
	
	// Tooltips options 
	// duration = x
	// queue = true, false
	// tooltipClass = clase general (sexy-tooltip)
	// width = x
	// style = clase interior (default)
	// sticky = 0, 1 (remain shown until click)
	// click = 0, 1 (show tooltip on click)
	// mouse = true, false
	// hook = true, false (snap to  mouse)
	// mode = auto, tl, tc, tr, bl, bc, br
	// objtooltip.show(), onjtooltip.tooltip_hide()
	$(".ttip").livequery(function(){ $(this).tooltip($(this).attr('title'), {mode:'auto',style:'tooltipcontainer'} ); });
	
	//$("span[id*='span_info']").livequery(function(){ portfolioInfo({el:$(this)}); });
	
	showHideData( 
			{rules:
				[
				{suffix:'cliente',openClass:'clienteOpen',closedClass:'clienteClosed',event:'click',defaultOpenIndex:0},
				{suffix:'portfolio',containerID:'#SLB-Image',openClass:'portfolioOpen',closedClass:'portfolioClosed',event:'click'},
				{suffix:'contacto',openClass:'contactoOpen',closedClass:'contactoClosed',defaultOpenIndex:0}
				] 
			 }		
	);
	
	// Form Contacto
	/*$("#formContacto").validate({
		errorClass:'error',
		errorElement:'em'
	}); */	
	
	// Form Contacto
	$("#enviar").click(function(){ 
		var b = $(this);
		var f = b.parent("form");
		
		//console.log(f.attr('id'));
		
		var v = f.validate({
			errorClass:'error',
			errorElement:'em',
			submitHandler: function(){
				d = f.serializeArray();
				d.push({name:'action',value:'enviarConsulta'});
				enviarConsulta( {'el': b, 'data':d, 'form':f } );
			}
		}); 
	});
	
	//if(self == 'contacto'){
		//getGoogleMap({divId:'id02_showHideData_contacto'});
	//}
	//console.log(location.hostname);
	
	// Convierto los paneles de scroll
	$('.scrollBar').livequery( function(){ scrollBar($(this)); } );
	
	if(self == 'index' || self == ''){
		//$('#dataContainer', '#home').facebookFeed(57275555026, 4); //ivano: 583827577 | nmd: 57275555026
		$('#fb_content', '#home').facebookFeed(57275555026, 30, function(){ scrollBar($('#dataContainer', '#home')); });
	}
	
	// Agrego la clase current en el menu principal
	$('#nav_' + self).addClass('current');
	
	
});

function scrollBar(obj){
	obj.jScrollPane({showArrows:true, scrollbarWidth: 10, arrowSize: 16, dragMaxHeight: 25});
}

function getGoogleMap(data){
	var URL = siteBase + '_ajx/front_jx_actions.php?f=' + F;
	var status, response, xhr;
	
	var _divId = data.divId;

	makeAjaxRequest({
		'URL': URL,
		'data': {action:'getGoogleMap',divid:_divId},
		'dataType':'json',
		'callback': function(){
			response = ajaxRequestResponse['response'];			
			status = ajaxRequestResponse['status'];
			xhr = ajaxRequestResponse['xhr'];
			
			//console.log(response.title);
			
			//$('body').append(response);
			if(response.status == true){
				//console.log(response.googleMapCode);
				//var script = response.googleMapCode.replace(/<script>(.*)<\/script>/, "$1"); // Remove tags
				var scripts = response.googleMapCode;
				console.log(scripts);
				//eval(script);
			}else{			
				dialog({'title':response.title,'message':response.msg, 'modal':true});
			}			
		}
	});
}

function enviarConsulta(data){	
	var btn = data.el;
	//var f = btn.parent('form');
	var f = data.form;
	var URL = siteBase + '_ajx/front_jx_actions.php?f=' + F;
	var status, response, xhr;

	makeAjaxRequest({
		'URL': URL,
		'btn': btn,
		'data': data.data,
		'callback': function(){
			response = ajaxRequestResponse['response'];			
			status = ajaxRequestResponse['status'];
			xhr = ajaxRequestResponse['xhr'];

			if(response.status == true){
				f.resetForm();
			}else{			
				
			}			
			dialog({'title':response.title,'message':response.msg, 'modal':true});
		}
	});
}

function showHideData(data){
	var rules = data.rules;
	var containerID = new Array();
	var openClass = new Array();
	var closedClass = new Array();
	var event = new Array();
	var callback = new Array();
	var defaultOpenIndex = new Array();
	var suffix;
	var titles, panels, pressed, pressedId, pressedTitle, pressedPanel, tmp, currentSuffix;
	
	for(i=0; i < rules.length; i++){
		
		suffix = rules[i].suffix;
		containerID[suffix] = (rules[i].containerID != undefined) ? rules[i].containerID : '';
		openClass[suffix] = rules[i].openClass;
		closedClass[suffix] = rules[i].closedClass;
		event[suffix] = (rules[i].event != undefined) ? rules[i].event : 'click';
		callback[suffix] = (rules[i].callback != undefined) ? rules[i].callback : false;
		defaultOpenIndex[suffix] = (rules[i].defaultOpenIndex != undefined) ? rules[i].defaultOpenIndex : '';
		
		titles = $("[id*='showHideTitle_" + suffix + "']");
		panels = $("[id*='showHideData_" + suffix + "']");
		
		if(titles.length > 0){
			titles
				.removeClass(openClass[suffix])
				.addClass(closedClass[suffix])
				.css({
						'cursor'		: 'pointer'
				});
			panels.hide();
			
			if((defaultOpenIndex[suffix] || defaultOpenIndex[suffix] == 0) && defaultOpenIndex[suffix] !== ''){
				$(titles.get(defaultOpenIndex[suffix]))
					.removeClass(closedClass[suffix])
					.addClass(openClass[suffix]);
				$(panels.get(defaultOpenIndex[suffix])).show();
			}
			
			titles.livequery( 
				function(){
					
					var getIdNumber = function(el){
						return id = el.attr('id').substring(2,4);
					};
					
					var getSuffix = function(el){
						var id = getIdNumber(el);
						var t = el.attr('id').split('id' + id + '_showHideTitle_');
						var suffix = t[1];
						return suffix;
					};
					
					var processElement = function(el){
						var srcId,target, src = el;
						
						srcId = getIdNumber(src);
						currentSuffix = getSuffix(src);
						if(containerID[currentSuffix] != ''){
							target = $('#id' + srcId + '_showHideData_' + currentSuffix, $(containerID[currentSuffix]));
						}else{
							target = $('#id' + srcId + '_showHideData_' + currentSuffix);
						}
						return {src:src,target:target};
					};
					
					var showHideElement = function(data){
						var src = data.src;
						var target = data.target;
						var mode = (data.mode != undefined) ? data.mode : 'slideDown';
						var currentSuffix = getSuffix(src);
						if(mode == 'slideDown'){
							$("[id*='showHideData_" + suffix + "']").slideUp('normal', function(){
								$("[id*='showHideTitle_" + suffix + "']")
									.removeClass(openClass[currentSuffix]).addClass(closedClass[currentSuffix]);
							});
							target.slideDown('normal',
								function(){
									src.removeClass(closedClass[currentSuffix]).addClass(openClass[currentSuffix]);
									if(callback[currentSuffix]){
										callback[currentSuffix]();
									}
								}
							);
						}else{
							target.slideUp('normal',
								function(){
									src.removeClass(openClass[currentSuffix]).addClass(closedClass[currentSuffix]);
									if(callback[currentSuffix]){
										callback[currentSuffix]();
									}
								}
							);
						}
					};
					
					var eventHover = function(el){
						var elements = processElement(el);
						el.hover(
							function(){
								showHideElement({src:elements.src,target:elements.target,mode:'slideDown'});
							}, 						
							function(){
								showHideElement({src:elements.src,target:elements.target,mode:'slideUp'});
							}
						);
					};
					
					var eventClick = function(el){
						var elements = processElement(el);
						el.click(
							function(){
								if(elements.target.is (':hidden')){
									showHideElement({src:elements.src,target:elements.target,mode:'slideDown'});
								}else{
									showHideElement({src:elements.src,target:elements.target,mode:'slideUp'});
								}
							}
						);
					};
					
					switch(event[getSuffix($(this))]){
						case 'hover':
							eventHover($(this));
						break;
						
						default: // click
							eventClick($(this));
						break;
					}
				}
			);
		}
	}
}

function getFacebookFollowers(){
	var panelTwitter = $('#panelTwitter');
	var panelFacebook = $('#panelFacebook');
	
	if(panelTwitter.is(':visible')){
		panelTwitter.slideUp('normal', function(){
			panelFacebook.slideToggle();
		});
	}else{
		panelFacebook.slideToggle();
	}
}

var makeTwitterFollowersRequest = true;
function getTwitterFollowers(){	
	var URL = siteBase + '_ajx/front_jx_actions.php?f=' + F;
	var status, response, xhr, title, msg;
	var followerImgSrc, followerImgAlt, followerImgTitle;
	var panelTwitterFollowers = $('#twitterFollowers');
	var panelTwitter = $('#panelTwitter');
	var panelFacebook = $('#panelFacebook');
	
	if(panelTwitter.is(':visible') || !makeTwitterFollowersRequest){
		panelFacebook.slideUp('normal',function(){
			panelTwitter.slideToggle();
		});
	}else{
		makeTwitterFollowersRequest = false;
		panelFacebook.slideUp();
		makeAjaxRequest({
			'debug':false,
			'URL': URL,
			'btn': null,
			'data': {'action':'getTwitterFollowers','screen_name':'neomediacom'},
			'callback': function(){
				response = ajaxRequestResponse['response'];			
				status = ajaxRequestResponse['status'];
				xhr = ajaxRequestResponse['xhr'];					
				//console.log(response.followers[0]);					
				if(response.status == true){
					
					for(var f in response.followers){
						followerImgSrc = response.followers[f].profile_image_url;
						followerImgAlt = response.followers[f].screen_name;
						followerImgTitle = followerImgAlt;
						$('<img id="img_' + f + '" src="' + followerImgSrc + '" alt="' + followerImgAlt + '" title="' + followerImgTitle +'" />').appendTo(panelTwitterFollowers);
					}
					//panelFacebook.slideUp('normal',function(){
						panelTwitter.slideToggle();
					//});
					
				}else{			
					title = response.status;
					msg = response.msg;
					dialog({'title':title,'message':msg,'modal':true});
				}
			}
		});
	}
}








