var fn = function() {
	$(this).addClass('curved-input').wrap('<div class="curve-input-left"><div class="curve-input-right"><div class="curve-input"></div></div></div>');
	$(this).trigger('curveDone');
};
var textAreafn = function() {
	$(this).addClass('curved-textarea').wrap('<div class="curved-textarea-left"><div class="curved-textarea-right"><div class="curved-textarea"></div></div></div>');
};
var dropDownfn = function() {
		var $dropdown = $(this);
		
		var selectWidth = $(this).width();
			
		if($dropdown.data('isDropdown') == undefined){
			$dropdown.data('isDropdown',true);
			$(this).addClass('curved_select');
			var $wrapper = $dropdown.wrap('<a href="#" class="select-wrapper" id="'+this.id+'-wrapper"></a>').parent('.select-wrapper');
			$wrapper.append('<span class="selected">'+$dropdown.find('option:first').text()+'</span>');
			var $options = $('<span class="dropdown-options" style="width:'+_width+'px;" id="'+this.id+'-dropdown-options"><span class="top-right"><span class="top-left"></span></span><span class="list-wrapper"><span class="list"></span></span><span class="bottom-right"><span class="bottom-left"></span></span></span>').appendTo('.page');
  			
			var _width = 0;
		//	if (selectWidth > 0) {
		//		_width = selectWidth;
		//	}			
			$dropdown.find('option').each(function() {
			 	if(this.selected){
					$wrapper.find('.selected').text($(this).text());
				}
				var $option = $('<a href="#">'+$(this).text()+'</a>');
				$option.data('optionValue',$(this).attr('value'));
				$option.click(function(){   
					if ($dropdown.val() != $(this).data('optionValue')) {
						$dropdown.change();
					}
					$dropdown.val($(this).data('optionValue'));
					$wrapper.find('.selected').text($(this).text());
					$options.trigger('dropdown:close');
					return false;
				});
				$options.find('.list').append($option);
				_width = Math.max(_width,($(this).text().length * 5) + 10);
			});
			
			$wrapper.find('.selected').css({width:_width});
			$options.find('.top-left,.bottom-left').css({width:$options.find('.list-wrapper').width()+3});
			var new_width;
			if(this.id != '') {
				new_width = (_width + 34);
				$dropstuff = $('#'+this.id+'-dropdown-options');
				$dropstuff.css('width',new_width+'px');
				$dropstuff.find('span.top-right,span.top-right span, span.bottom-right, span.bottom-right span').css('width',(new_width-7)+'px');
			}
			
			$wrapper.click(function(event){
				$('.dropdown-options').trigger('dropdown:close');
				var pos = getPosition($("#" + $(this).attr('id')));
				$options.css({top:(pos.y + 16),left:pos.x,display:'block'});
				$options.addClass('open-dropdown');
				//$(this).closeOtherPopups('dropdown');
				return false;
			});
				
			$options.bind('dropdown:close',function(){
		 		$(this).css({display:'none'});
			});
			
			$(document).click(function(){
				$options.trigger('dropdown:close');
			});
		}
};

$.initCurveInputs = function() {
	$('input.regular_input:not(.curved-input)').live('DOMNodeInserted', fn);
	$('input.regular_input:not(.curved-input)').each(fn);
	$('textarea.curve_textarea:not(.curved-textarea)').live('DOMNodeInserted', fn);
	$('textarea.curve_textarea:not(.curved-textarea)').each(textAreafn);
	$('select.curve_select:not(.curved-textarea)').each(dropDownfn);
};



