var page = null;
//IndexPage class
var IndexPage = new Class({
    
	initialize: function(divUrlsId){
		this.urls = $(divUrlsId);
		
		this.formIsValid = true;
		
		this.urlId = 2;
		//Set anti-bot value to false
		$('input_is_bot').value="false";
		
		//image preloader for the page
		this.imagePreloader = new ImagePreloader();
		this.imagePreloader.start(this.imagePreloader.blocks.media);
		
		this.mediaUpload = new MediaUpload();
		this.mediaUpload.addEvent('complete', this.handleUploadSuccess);

	},
	
	mouseIn: function(el){
		if (el.parentNode.id == 'divUrl_' + this.urlId)
			this.addNewUrlField();
		
		el.select();
		//$('log').innerHTML = $('log').innerHTML + 'MouseIn: ' + el.name + '<br/>';
	},
	mouseOut: function(el){
        
		var el_index = parseInt(el.name.split('_')[1]);
		var lastId = -1;
		//if we have more than 
		
		if(page.urlId > 2)
		{
			for(var i = page.urlId;i>2; i--)
			{
				var div_elem = $('divUrl_' + i);
				var input_elem = div_elem.getChildren()[0];
				
				if (input_elem.value == 'http://' || input_elem.value == '')
				{
					div_elem.parentNode.removeChild(div_elem);
					page.urlId --;
				}
				else
				{
					lastId = i;
					break;
				}
				
			}
		}
		if(page.urlId > 2)
			this.addNewUrlField();
		else
		{
			//check the second input
			var div_elem = $('divUrl_' + 2);
			var second = div_elem.getChildren()[0];
			if(!(second.value == 'http://' || second.value == ''))
			{
				this.addNewUrlField();
			}
		}
		
		/*
		//clean all the empty inputs
		if (el.value == 'http://' || el.value == '')
		{
            if (el_index < page.urlId && (nextElement.value == '' || nextElement.value == 'http://'))
			{
				nextDiv.parentNode.removeChild(nextDiv);
				page.urlId--;
			}
		}
		*/
	},
	getNewUrlNode: function(id,url){ 
		
		var divUrlNode = new Element ( 'div' , { 'id' : 'divUrl_' + id, 'class' :  'div_url_container' }) ;
		var value = "http://";
		if(url)
			value = url;
		
		var html = '<input type="text" name="urls[]" id="url_' + id + '" class="input_url" onFocus="page.mouseIn(this);" onBlur="page.mouseOut(this);" value="'+value+'">';
		divUrlNode.innerHTML = html;
		return divUrlNode;
	}, 
	
	addNewUrlField: function(){
		this.urlId++;
		var newNode = this.getNewUrlNode(this.urlId);
		newNode.injectInside(this.urls);
	},
	
	addNewUrlFieldWithUrl: function(url){
		var inputs = ($$('#' + this.urls.id + ' input'));
		var isInserted = false;
		for(var i=0;i<inputs.length;i++)
		{
			if(inputs[i].value == '' || inputs[i].value == 'http://' || inputs[i].value == 'https://')
			{	
				inputs[i].value = url;
				isInserted = true;
				break;
			}
		}
		if(isInserted == false)
		{
			this.urlId++;
			var newNode = this.getNewUrlNode(this.urlId,url);
			newNode.injectInside(this.urls);
		}
	},
	
	createOnClick: function(){
		if(global_block_js == true)
			return false;
		
		if(this.formIsValid)
		{
			global_block_js = true;
			$('form_input').submit();
			return true;
		}
		else
		{
			alert("Invalid form");
			return false;
		}
		
	},
	
	nameOnChange: function(){
		
		if($('list_name').value.test(/^[ a-zA-Z0-9_-]*$/))	
		{
			this.formIsValid = true;
			$('name_validator').setStyle('display','none');
		}
		else
		{
			this.formIsValid = false;
			$('name_validator').setStyle('display','block');
		}
	},

	handleUploadSuccess: function(args)
	{
		var matched_urls = args.split(page.mediaUpload.urlsGlue);
		for(var i = 0;i<matched_urls.length;i++)
		{
			page.addNewUrlFieldWithUrl(matched_urls[i]);
		}
	},
	
	showAddText:function()
	{
		var allow_checkbox = $('allow_voting');
		var add_div = $('divAdd');
		
		if(allow_checkbox != null && allow_checkbox.checked )
		{
			add_div.show();
		}else
		{
			add_div.hide();	
		}
	}
});

window.addEvent('domready', function() {
	//Initialize page object
	page = new IndexPage('inputOne');
	
	listslider = new ListSlider();
	
	//Initialize the objects for the add media feature
	bulkInsert = new BulkInsert('bulk_text');
	bulkInsert.addEvent('complete', page.handleUploadSuccess);
	
	//this is used to block the double click on the create button IE7 fix
	global_block_js = false;
	
});
