// JavaScript Document

sw = {
	current_step : 1,
	max_tag_count : 5,
	container : null,
	tags_list : null,
	keywords : null,
	categories : null,
	member_login : false
}

Wizard = function ( ) {
	var container = $('rssWizardContent') , tags_list = $('tags') , categories = $('categories') , keywords = $('keywords');
	
	if ( !container )
		return false;
	
	sw.container = container;
	sw.tags_list = tags_list;
	sw.categories = categories;
	sw.keywords = keywords;
}

Wizard.prototype.check = function ( step ) {
	switch ( step ) {
		case 'select_resource':
			if ( $F('resources') == '0' ) {
				alert('Lütfen bir kaynak belirtiniz!');
				
				$('resources').focus();
			} else {
				$('rssWizardAnchor').scrollTo();	
				
				switch ( $F('resources') ) {
					case 'tag':
						ScrollSection('define_tags_pane', 'rssWizardScroller', 'select_resource_pane');
						
						var tag_lines = $('tags').getElementsByTagName('tr');
						
						if ( !tag_lines.length )
							this.new_tag_line();
						
						break;
					case 'category':
						ScrollSection('define_categories_pane', 'rssWizardScroller', 'select_resource_pane');
						break;
					case 'search':
						ScrollSection('search_options_pane', 'rssWizardScroller', 'select_resource_pane');
						break;
				}
			}
			
			break;
		case 'define_tags':
			var tags = sw.tags_list.getElementsByTagName('input');
			var alert_str = 'Lütfen beslemede yer alacak derslerde kaynak olarak kullanılacak en az bir adet etiket belirleyiniz!';

			if ( !tags.length ) {
				alert(alert_str);
				
				return this.new_tag_line();
			} else {
				var is_empty = true;
				var tags_arr = new Array();
				
				for ( var i = 0; i < tags.length; i++ ) {
					if ( tags[i].value != '' ) {
						is_empty = false;
					}
				}
				
				if ( is_empty == true ) {
					alert(alert_str);
					
					return false;
				} else {
					$('beforeGeneral').value = step;
					
					ScrollSection('general_options_pane', 'rssWizardScroller', 'select_resource_pane');
				}
			}
			
			break;
		case 'define_categories':
			var alert_str = 'Lütfen beslemede yer alacak derslerde kaynak olarak kullanılacak en az bir adet kategori belirleyiniz!';
		
			if ( $F(sw.categories) == '' ) {
				alert(alert_str);
				
				sw.categories.focus();
			} else {
				$('beforeGeneral').value = step;
				
				ScrollSection('general_options_pane', 'rssWizardScroller', 'select_resource_pane');
			}
			
			break;
		case 'search_options':
			var keywords = $F(sw.keywords);
			var alert_str = 'Lütfen beslemede yer alacak derslerde kaynak olarak kullanılacak en az bir adet anahtar kelime belirleyiniz!';
			
			if ( keywords.blank() ) {
				alert(alert_str);
				
				sw.keywords.focus();
			} else {
				var keywords_arr = keywords.split(',');
				var key_count = 0;
				
				keywords_arr.each(function(s, index) {
					var keyword = s.strip();
					
					if ( !keyword.blank() )
						key_count++;
				});
				
				if ( key_count == 0 ) {
					alert(alert_str);
					
					sw.keywords.focus();
				} else {
					$('beforeGeneral').value = step;
					
					ScrollSection('general_options_pane', 'rssWizardScroller', 'select_resource_pane');
				}				
			}
			
			break;
		case 'general_options':
			ScrollSection('save_pane', 'rssWizardScroller', 'select_resource_pane');
			break;
		case 'save':
			if ( !sw.member_login ) {
				if ( !$('e_mail').present() ) {
					alert('Lütfen e-posta adresinizi giriniz.');
					
					$('e_mail').focus();
					
					return false;
				} else if ( !$F('e_mail').validateEmail() ) {
					alert('Girdiğiniz e-posta adresi geçerli değil. Lütfen kontrol ederek tekrar deneyiniz!');
					
					$('e_mail').focus();
					
					return false;
				} else if ( !$('captcha').present() ) {
					alert('Lütfen güvenlik kodunu giriniz.');
					
					$('captcha').focus();
					
					return false; 
				}
			}
			
			$('action').value = 'save';
			$($('save_wizard_vars').parentNode).update('<img style="margin-bottom: -3px;" src="images/aspneticons_v1.0/wait_16x16.gif" alt="lütfen bekleyin" width="16" height="16" /> Lütfen bekleyin...');
			$('rssWizardForm').submit();
			
			break;
	}
}

Wizard.prototype.step_back = function ( step ) {
	switch ( step ) {
		case 'search_options':
		case 'define_categories':
		case 'define_tags':
			ScrollSection('select_resource_pane', 'rssWizardScroller', 'select_resource_pane');
			break;
		case 'save':
			ScrollSection('general_options_pane', 'rssWizardScroller', 'select_resource_pane');
			break;
		case 'general_options':
			var back_step_location = $F('beforeGeneral');
			
			if ( !back_step_location.blank() )
				ScrollSection((back_step_location+'_pane'), 'rssWizardScroller', 'select_resource_pane');
			break;
	}
}

Wizard.prototype.new_tag_line = function ( ) {
	if ( !sw.tags_list )
		return false;
	
	var line_index = sw.tags_list.getElementsByTagName('tr');
    	line_index = (line_index.length + 1);
	
	if ( line_index > sw.max_tag_count ) {
		alert('En fazla '+sw.max_tag_count+' adet etiket ekleyebilirsiniz!');
		
		return -1;
	} else if ( line_index == sw.max_tag_count)
		$('addTagImage').update('<a href="javascript:;" onclick="alert(\'En fazla '+sw.max_tag_count+' adet etiket ekleyebilirsiniz.\');"><img src="images/aspneticons_v1.0/add_(passive)_16x16.gif" width="16" height="16" /> <span style="color: #767676;">Yeni etiket</span></a>');
	
    var line = um.create_elm( 'tr', null, null , sw.tags_list );
    var cell_1 = um.create_elm( 'td', null, { width : '1%' } , line );
    var cell_2 = um.create_elm( 'td', { width : '20%' } , null , line );
    var cell_3 = um.create_elm( 'td', null, null , line );
    var cell_4 = um.create_elm( 'td', null, null , line );
	
    var remove_button = um.create_elm( 'img', { src : 'images/aspneticons_v1.0/delete_16x16.gif' }, { cursor : 'pointer' } , cell_1 );
        remove_button.onclick = this.remove_tag_link.bindAsEventListener(line_index);
        
    var tag_label = um.create_elm( 'label', { innerHTML : ('Etiket #'+line_index) }, null , cell_2 );
		tag_label.setAttribute('for', ('tag_'+line_index));
	
    var tag_input = um.create_elm( 'input', { id: ('tag_'+line_index), type : 'text', className : 'input' , size : 20 , name : 'tags[]' }, null , cell_3 );
	
    var preview_button = um.create_elm( 'img', { id: ('tag_preview_'+line_index) , src : 'images/aspneticons_v1.0/preview_16x16.gif' }, { cursor : 'pointer' , marginBottom : '-3px', marginLeft: '5px' } , cell_4 );
        preview_button.onclick = this.preview_tag_results.bindAsEventListener(line_index);
}

Wizard.prototype.remove_tag_link = function ( e ) {
	var elm = Event.element(e);
	
	if(confirm('Bu etiketi listeden çıkarmak istediğinize emin misiniz?')) {
		$('addTagImage').update('<a href="javascript:;" onclick="return syndication_wizard.new_tag_line();"><img src="images/aspneticons_v1.0/add_16x16.gif" alt="yeni etiket" width="16" height="16" /> Yeni etiket</a>');
		$(elm.parentNode.parentNode).remove();
		
		var labels = $('tags').getElementsByTagName('label');
		var inputs = $('tags').getElementsByTagName('input');
		
		for ( var i = 0; i < labels.length; i++ ) {
			var old_index = labels[i].getAttribute('for').replace('tag_', '');
			
			labels[i].innerHTML = 'Etiket #'+(i+1);
			labels[i].setAttribute('for', ('tag_'+(i+1)));
			
			$('tag_'+old_index).id = 'tag_'+(i+1);
			$('tag_preview_'+old_index).id = 'tag_preview_'+(i+1);
		}
	}
}

Wizard.prototype.preview_tag_results = function ( e , elm ) {
	if ( !e )
		elm = elm;
	else
		elm = Event.element(e);
	
	var input_id = elm.id.replace('preview_', '');
	
	var tag_name = $F(input_id);
	
	tag_name = tag_name.toLowerCase().strip();
	
	do_complete = function ( transport )
	{
		var root = transport.responseXML.documentElement;
		var result = root.getElementsByTagName('result')[0].firstChild.nodeValue;
		var elm_id = root.getElementsByTagName('elm_id')[0].firstChild.nodeValue;
		var tag_link = root.getElementsByTagName('tag_link')[0].firstChild.nodeValue;
		var tutorial_count = root.getElementsByTagName('tutorial_count')[0].firstChild.nodeValue;
		var elm = $(elm_id);
		
		switch ( result )
		{
			case 'empty_tag_name':
				$(elm.parentNode).update('<img id="'+elm_id+'" onclick="syndication_wizard.preview_tag_results(false, this);" src="images/aspneticons_v1.0/preview_16x16.gif" width="16" height="16" style="cursor: pointer; margin-bottom: -3px; margin-left: 5px;" /> Lütfen bir etiket adı girin');
				
				return false;
				break;
			case 'tag_not_found':
				$(elm.parentNode).update('<img id="'+elm_id+'" onclick="syndication_wizard.preview_tag_results(false, this)" src="images/aspneticons_v1.0/preview_16x16.gif" width="16" height="16" style="cursor: pointer; margin-bottom: -3px; margin-left: 5px;" /> Etiket kaydı bulunamadı');
				
				return false;
				break;
			case 'success':
				$(elm.parentNode).update('<img id="'+elm_id+'" onclick="syndication_wizard.preview_tag_results(false, this)" src="images/aspneticons_v1.0/preview_16x16.gif" width="16" height="16" style="cursor: pointer; margin-bottom: -3px; margin-left: 5px;" /> <a target="_blank" href="etiket;'+tag_link+'.html">'+tutorial_count+' ders bulundu</a>');
				
				return -1;
				break;
			case 'no_tutorial_found':
				$(elm.parentNode).update('<img id="'+elm_id+'" onclick="syndication_wizard.preview_tag_results(false, this)" src="images/aspneticons_v1.0/preview_16x16.gif" width="16" height="16" style="cursor: pointer; margin-bottom: -3px; margin-left: 5px;" /> Ders kaydı bulunamadı');
				
				return false;
				break;
		}
	};
	
	if ( !tag_name.blank() ) {
		$(elm.parentNode).update('<img id='+elm.id+' src="images/aspneticons_v1.0/wait_16x16.gif" alt="lütfen bekleyin" width="16" height="16" style="margin-bottom: -3px; margin-left: 5px;" /> Lütfen bekleyin...');
		
		new Ajax.Request('ajax/check_tag.php?elm_id='+elm.id+'&tag_name='+tag_name, {method: 'post', onComplete: do_complete.bindAsEventListener(this)});
	}
	
	//window.open('etiket;'+tag_name+'.html');
};


Event.observe(window, 'load', function() {
	syndication_wizard = new Wizard();
});

