signup = {
	process: function(){
		$('status_msg').style.display='block';
		$('status_msg').update('Sending Registration...');
		var data = $('signup_form').serialize();
		new Ajax.Request('/sell/signup/process/',{
			parameters: data,
			onSuccess: function(t){
				if(t.responseText == 'error'){
					$('status_msg').update('Please fix the errors and try again.');
					signup.show_errors();
				}else{
					signup.clean_up();
					$('status_msg').update(t.responseText);
					$('status_msg').addClassName('good');
				}
			}
		});
	},
	show_errors: function(){

		signup.clean_up();

		if($('venue_name').value == ''){
			$('venue_name').addClassName('missing');
		}
		if($('first_name').value == ''){
			$('first_name').addClassName('missing');
		}
		if($('last_name').value == ''){
			$('last_name').addClassName('missing');
		}
		if($('phone').value == ''){
			$('phone').addClassName('missing');
		}
		if($('city').value == ''){
			$('city').addClassName('missing');
		}
		if($('state').value == ''){
			$('state').addClassName('missing');
		}
		if($('zip').value == ''){
			$('zip').addClassName('missing');
		}
		if($('comments').value == ''){
			$('comments').addClassName('missing');
		}
		
		var email_chk = email_check($('email').value);
		
		if(email_chk == false){
			$('email').addClassName('missing');
			$('email').previous().down().update('*&nbsp;&nbsp;<small>Invalid Email Address!</small>');
		}else{
			$('email').previous().down().update('*');
		}
		
	},
	clean_up: function(){
		$('email').previous().down().update('*');
		$('venue_name').removeClassName('venue_name');
		$('email').removeClassName('missing');
		$('first_name').removeClassName('missing');
		$('last_name').removeClassName('missing');
		$('phone').removeClassName('missing');
		$('city').removeClassName('missing');
		$('state').removeClassName('missing');
		$('zip').removeClassName('missing');
		$('comments').removeClassName('missing');
	}
}

function email_check(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
	   return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(" ")!=-1){
		return false;
	}
	return true;
}


login = {
	show: function(){
		$('login_box').appear();
	}
}

social_network = {
	show_me: function(obj){
		var new_src = obj.src.replace('/off/','/on/');
		obj.src = new_src;
	},
	fade_me: function(obj){
		var new_src = obj.src.replace('/on/','/off/');
		obj.src = new_src;
	}
}

last_slide = 1;

function load_slide(slide_id){
	if(slide_id != last_slide){
		new Effect.Morph('slide_'+last_slide, {
			style: {	width: '0px' },
			duration: .4
		});
		last_slide = slide_id;
	}	
}

function read_full_testimonial(){
	var cc = $('full-testimonial').innerHTML;
	editWindow.load_content(cc);
}

function tweet_toggle(){
	if($('tweet_block').style.display == 'none'){
		$('tweet').addClassName('on');
		$('tweet_block').blindDown();
	}else{
		$('tweet_block').blindUp({afterFinish: function(){$('tweet').removeClassName('on');}});
	}
}

function tour_slide(index){
	var l = (index * 840) - 840;
	$('tour_slider').morph('left:'+-l+'px');
	$$('.tour_slide_menu a').each(function(s){s.removeClassName('on');});
	$$('.tour_slide_menu a.menu'+index).each(function(s){s.addClassName('on');});
}

function calc_fee(){
	$('fee_data').update('Loading...');
	new Ajax.Request('/sell/pricing/get_fee/',{method: 'post',parameters: 'face_value='+$('face_value').value, onSuccess: function(t){$('fee_data').update(t.responseText);}});
}

// support_request = {
// 	submit: function(){
// 
// 		var data = $('support-request-form').serialize();
// 		
// 		$('support-request').update('Processing, please wait...');
// 		
// 		new Ajax.Request('/help/highrise/support_request/submit',{
// 			method: 'post',
// 			parameters: data,
// 			onSuccess: function(t){
// 				$('support-request').update(t.responseText);
// 			},
// 		});
// 		
// 	}
// }

// Event.observe(window,'load',function(){
	// $('support-request-tab').observe('click',function(){
	// 	editWindow.load_data("<div id='support-request' class='support-request'>"+$('support-request-skel').innerHTML.replace(/-skel/g,'')+"</div>");
	// });
// });

testimonials = {
	init: function(){

		if($('testimonials-wrap')){
			testimonials.do_init();
		}
	},
	do_init: function(){

		var count = 0;

		$$('.testimonial').each(function(s){
			// s.hide();
			count++;
		});
		
		var randIndex = randomFromTo(0,(count-1));
		var index = 0;

		testimonials.goto_tab(randIndex);

		$$('.test-tab').each(function(s){
			s.observe('click',function(){
				testimonials.goto_tab(s.id.replace('test-tab-',''));
			});
		});
		
	},
	goto_tab: function(i){

		var index = 0;
		
		$$('.testimonial').each(function(s){
			if(index == i){
				s.appear();
				s.blindDown();
			}else if(s.getStyle('display') == 'block'){
				s.fade();
				s.blindUp();
			}
			index++;
		});

		index = 0;

		$$('.test-tab').each(function(s){
			if(index == i){
				s.addClassName('on');
			}else{
				s.removeClassName('on');
			}
			index++;
		});
		
	}
}

function search_events(){
	var s = $('search_query').value;
	s = s.replace("'",'');
	s = s.replace('"','');
	s = s.replace(',',' ');
	s = s.replace('  ',' ');
	s = s.replace('  ',' ');

	if($('buy-widget')){
		var e = new Array();
		var events = new Array();
		var event = new Array();
		$('search-query-result-top').update('Here are the search results for:');
		$('search-query-result').update($('search_query').value);
		$('buy-widget-events').update("<div style='padding: 20px;'><img src='/apps/sell/assets/gfx/loader.gif' border='0' /></div>");
		s = encodeURIComponent(s);
		var url = '/buy/'+s+'/json';
		console.log(url);
		new Ajax.Request(url,{
			method: 'get',
			onSuccess: function(t){
				$('buy-widget-events').update('');
				e = t.responseText.evalJSON();
				for(i=0;i<e.events.length;i++){
					event = e.events[i];
					eventHtml = "<div class='buy-screen-event-wrap' onclick=\"window.location='/event/"+event.id+"';\">"+
								"<div class='buy-screen-date'>"+
								"<div class='buy-screen-date-month'>"+event.month+"</div>"+
								"<div class='buy-screen-date-day'>"+event.day+"</div>"+
								"</div>"+
								"<div class='buy-screen-name-wrap'>"+
								"<div class='buy-screen-name'>"+event.event_name+"</div>"+
								"<div class='buy-screen-venue'>"+event.venue_name+"</div>"+
								"<div class='buy-screen-city-state'>"+event.citystate+"</div>"+
								"</div>"+
								"<div class='clear'></div>"+
								"</div>"+
								"<div class='clear'></div>";
					$('buy-widget-events').insert({bottom: eventHtml});
				}
			}
		});
	}else{
		window.location = '/buy/'+s;		
	}
}

var features = {
	cur_tab: 'ticketing',
	cur_page: 'ticketing1',
	cur_left: 0,
	tab_order: ['ticketing', 'events', 'promote', 'reports', 'validate'],
	tab_width: 993,
	init: function(){
		if($('features_page')){
			$('moving_bg').morph('margin-left: 5px');
			$$('.features_nav a').each(function(s){
				s.observe('click',function(t){
					features.cur_tab = s.id.replace('link_','');
					features.change_tab();
					s.href = 'javascript: void(0);';
					return false;
				});
			});
			features.draw_dots();
			features.arrow_nav();
		}
	},
	change_tab: function(){
		var cur_tab = this.cur_tab;
		var i = 0;
		$$('.features_page').each(function(s){
			if(s.id.replace('1','') == cur_tab){
				features.cur_left = (features.tab_width * i);
				$('feat_mask_inner').morph({'margin-left':'-'+features.cur_left+'px'});
				features.cur_page = s.id;
			}
			i++;
		});
		new Effect.ScrollTo('features_nav_top');
		var move_bg = 5;
		features.move_bg_arrow(cur_tab);			
	},
	
	move_bg_arrow : function(tab_name) {
		switch(tab_name){
			case'ticketing':
				move_bg = 5;
			break;
			case'events':
				move_bg = 185;
			break;
			case'promote':
				move_bg = 368;
			break;
			case'reports':
				move_bg = 554;
			break;
			case'validate':
				move_bg = 750;
			break;
		}
		$('moving_bg').morph('margin-left: '+move_bg+'px');
	},
	arrow_nav: function(){
		$$('.arrow_nav div').each(function(s){
			s.observe('click',function(){
				var s_id = s.id.replace('link_','');
				switch(s_id){
					case'prev':
						var tab = features.cur_tab;
						var page = features.cur_page.replace(tab,'')*1-1;
						var page_to_find = tab+(page);
						
						var num_pages = $$('#'+tab+(page)+' .dot_nav .'+features.cur_tab).length;

						if(num_pages > 0) {
							features.cur_page = page_to_find;
							var l = features.cur_left + (features.tab_width * (page-1));
							$('feat_mask_inner').morph({'margin-left':'-'+l+'px'});
						} else {
							var next_tab_order = features.tab_order.indexOf(features.cur_tab)*1-1;
							var next_tab_nav = features.tab_order[next_tab_order];
							features.cur_tab = next_tab_nav;
							//Event.fire($('link_'+next_tab_nav), 'onclick');
							//doEventDispatch('link_'+next_tab_nav, 'click');
							features.move_bg_arrow(next_tab_nav);
							features.cur_page = next_tab_nav+$$('#'+next_tab_nav+1+' .dot_nav .'+next_tab_nav).length;
							
							var total_pages_before = 0;
							var offset_before = 0;
							var j=0;
							for(var i=0;i<=next_tab_order;i++) {
								var grabbingTab = features.tab_order[i];
								total_pages_before += $$('#'+grabbingTab+1+' .dot_nav .'+grabbingTab).length;
								if(j<next_tab_order) {
									offset_before = total_pages_before;
								}
								j++;
							}
							var l = (features.tab_width * (total_pages_before-1));
							var l_offset = (features.tab_width * (offset_before));
							$('feat_mask_inner').morph({'margin-left':'-'+l+'px'});
							//find offset
							features.cur_left = l_offset;
						}
					break;
					case'next':
						var tab = features.cur_tab;
						var page = features.cur_page.replace(tab,'')*1+1;
						var page_to_find = tab+(page);
						features.cur_page = page_to_find;
						var num_pages = $$('#'+tab+(page)+' .dot_nav .'+features.cur_tab).length;
						
						if(num_pages > 0) {
							var l = features.cur_left + (features.tab_width * (page-1));
							$('feat_mask_inner').morph({'margin-left':'-'+l+'px'});
						} else {
							var next_tab_order = features.tab_order.indexOf(features.cur_tab)*1+1;
							var next_tab_nav = features.tab_order[next_tab_order];
							//Event.fire($('link_'+next_tab_nav), 'onclick');
							doEventDispatch('link_'+next_tab_nav, 'click');
						}
						
					break;
				}
			});
		});		
	},
	get_page_count: function(slug){
		var i = 0;
		$$('.features_page.'+slug).each(function(s){
			i++;
		});
		return i;
	},
	draw_dots: function(){
		$$('.features_nav a').each(function(s){
			var s_id = s.id.replace('link_','');
			var pages = features.get_page_count(s_id);
			$$('.features_page.'+s_id).each(function(d){
				var page_num = d.id.replace(s_id,'');
				var html = "<div class='dot_nav'><ul>";
				for(i=0;i<pages;i++){
					html += "<li id='li_"+s_id+"_"+(i)+"' class='"+s_id+" "+(i==(page_num-1)?' on':'')+"'></li>";
				}
				html += "</ul></div>";
				d.insert({top: html});
			});
		});
		$$('.dot_nav ul li').each(function(s){
			s.observe('click',function(){
				var index = (this.id.replace('li_'+features.cur_tab+'_',''));
				features.cur_page = features.cur_tab+(index*1+1);
				var l = features.cur_left + (features.tab_width * index);
				$('feat_mask_inner').morph({'margin-left':'-'+l+'px'});
				
			});
		});
	}
}

function randomFromTo(from, to){
	return Math.floor(Math.random() * (to - from + 1) + from);
}

Event.observe(window,'load',function(){
	testimonials.init();
	features.init();
		
	if($('shell_background')){ new Control.ColorPicker("shell_background", { "swatch" : "colorbox1" }); }
	if($('shell_text')){ new Control.ColorPicker("shell_text", { "swatch" : "colorbox2" }); }
	if($('event_background')){ new Control.ColorPicker("event_background", { "swatch" : "colorbox3" }); }
	if($('event_text')){ new Control.ColorPicker("event_text", { "swatch" : "colorbox4" }); }
	if($('links')){ new Control.ColorPicker("links", { "swatch" : "colorbox5" }); }
		
});

function doEventDispatch(elID, evtType) {
     var evt = null,
         elm = null;

     if(document.getElementById) {
       elm = document.getElementById(elID);
     }
     if(document.createEvent) {
       evt = document.createEvent('MouseEvents');
     }
     if(elm && elm.dispatchEvent && evt && evt.initMouseEvent) {
       evt.initMouseEvent(
         evtType,
         true,     // Click events bubble
         true,     // and they can be cancelled
         document.defaultView,  // Use the default view
         1,        // Just a single click
         0,        // Don't bother with co-ordinates
         0,
         0,
         0,
         false,    // Don't apply any key modifiers
         false,
         false,
         false,
         0,        // 0 - left, 1 - middle, 2 - right
         null);    // Click events don't have any targets other than
                   // the recipient of the click
       elm.dispatchEvent(evt);
     } else if(elm && elm.fireEvent) {
	elm.fireEvent("on"+evtType);	   		
   }
   }


