/* --------------------------
	jLook 0.2
	Nice form templates
	by Sebastian Romano / seba@envero.org 
-----------------------------*/
jQuery.fn.jLook = function(options){
	var self = this;
	var form_id = jQuery(this).attr('id');
	jQuery(this).addClass('jLookForm');
	// each form
	this.each(function(){
		// form link
		var actualForm = this;
		// labels
		jQuery('#'+form_id+' label', this).addClass("jLookLabel");
		// inputs
		jQuery('#'+form_id+' input:text').addClass("jLookInput");	
		/*
			wrappers
		*/
		// inputs
		jQuery('#'+form_id+' input:text').each(function(){
			jQuery(this).wrap('<div class="jLookInputWrapper"></div>');
			jQuery(this).parent().css("width", jQuery(this).css("width"));
			jQuery(this).focus(function(){
				jQuery(this).addClass("jLookInput_hover");
				jQuery(this).parent().addClass("jLookInputWrapper_hover");
			});
			jQuery(this).blur(function(){
				jQuery(this).removeClass("jLookInput_hover");
				jQuery(this).parent().removeClass("jLookInputWrapper_hover");
			});
		});
		//----------------------------------------------------------
		// radio/s
		var lastRadio = '';
		jQuery('#'+form_id+' input:radio').each(function(){
			// link
			jQuery(this).before('<a href="#" id="'+jQuery(this).attr("name")+'-'+jQuery(this).attr("value")+'" class="jLookRadio"></a>');
			jQuery(this).remove();
			// hidden necesary fields
			if(lastRadio != jQuery(this).attr("name")){
				jQuery(actualForm).prepend('<input type="hidden" id="'+jQuery(this).attr("name")+'" name="'+jQuery(this).attr("name")+'" value="null" />');
				lastRadio = jQuery(this).attr("name");
			}
		});
		// click event
		jQuery('#'+form_id+' .jLookRadio').click(function(){
			jQuery(this).addClass("jLookRadio_checked");
			// hidden generator
			valu = jQuery(this).attr("id").split('-');
			jQuery('#'+jQuery('#'+valu[0]).attr("name")+'-'+jQuery('#'+valu[0]).attr("value")).removeClass('jLookRadio_checked'); // uncheck
			jQuery('#'+valu[0]).attr("value", valu[1]); // selectedValue
			return false;
		});
		//----------------------------------------------------------
		// checkbox/s
		var lastCheckbox = '';
		jQuery('#'+form_id+' input:checkbox').each(function(){
			// link
			jQuery(this).before('<a href="#" id="'+jQuery(this).attr("name")+'-'+jQuery(this).attr("value")+'" class="jLookCheckbox"></a>');
			jQuery(this).remove();
			// necesary hidden fields
			if(lastCheckbox != jQuery(this).attr("name")){
				jQuery(actualForm).prepend('<input type="hidden" id="'+jQuery(this).attr("name")+'" name="'+jQuery(this).attr("name")+'" value="null" />');
				lastCheckbox = jQuery(this).attr("name");
			}
		});
		// click event
		jQuery('#'+form_id+' .jLookCheckbox').click(function(){
			valu = jQuery(this).attr("id").split('-');
			if(jQuery('#'+valu[0]).attr("value") == valu[1]){
				jQuery(this).removeClass('jLookCheckbox_checked'); // uncheck
				jQuery('#'+valu[0]).attr("value", 'null');
			}else{
				jQuery(this).addClass("jLookCheckbox_checked");
				jQuery('#'+valu[0]).attr("value", valu[1]); // selectedValue
			}
			return false;
		});
		//---------------------------------
		// select/s
		jQuery('#'+form_id+' select').each(function(){
			var selectContent= '<div><span></span><a href="#" class="jLookSelectOpen"></a></div><ul>'; // xhtml replace
			var nam = jQuery(this).attr('name')+'_wrapper';
			jQuery(this).wrap('<div class="jLookSelectWrapper" id="'+nam+'"></div>');
			jQuery('option', this).each(function(){
				selectContent += '<li><a href="#">'+jQuery(this).html()+'</a></li>';
				jQuery(this).remove();
			});
			selectContent += '</ul>';
			jQuery('#'+nam).html(selectContent);
		});
		// display select options
		jQuery('#'+form_id+' .jLookSelectOpen').click(function(){
			var zacual = jQuery('ul', jQuery(this).parent().parent()).css('z-index');
			jQuery('ul', jQuery(this).parent().parent()).slideToggle();
			return false;
		});
		//--------------------------------------
		//textareas
		jQuery('#'+form_id+' textarea').each(function(){
			jQuery(this).wrap("<div class='jLookTextareaWrapper'></div>");
			jQuery(this).focus(function(){
				jQuery(this).addClass("jLookTextarea_hover");
				jQuery(this).parent().addClass("jLookTextareaWrapper_hover");
			});
			jQuery(this).blur(function(){
				jQuery(this).removeClass("jLookTextarea_hover");
				jQuery(this).parent().removeClass("jLookTextareaWrapper_hover");
			});
		});
	});
}

