/*
	Plugin for jQuery 1.4.2
	name : jquery.skin
	version : 0.0.0.1
	author : Andrea Bianchin
*/
jQuery.fn.skin = function(){
		var element = this;
		type = jQuery(element).attr('tagName');
		typeInput = jQuery(element).attr('type');		
		
		switch(type) {
			case 'SELECT':
    			skinSelect(this);
  			break;
			
			case 'INPUT':			
				switch (typeInput) {
					case 'radio':
						skinRadio(element);
					break;
					case 'checkbox':
						skinCheckbox(element);
					break;
				}				
			break;
		}
		
		function skinSelect(element){
			var rowToShow = 12;
			myId = jQuery(element).attr('id');			
			var myName = jQuery(element).attr('name');			
			var contSkinned = jQuery('<div class="contSkin"></div>');
			var skinned = jQuery('<div id="'+myId+'_btn" class="selectSkinned"></div>');
			var dx = jQuery('<div class="dx"></div>');
			var cc = jQuery('<div id="'+myId+'_text" class="cc"></div>');
			var input = jQuery('<input type="hidden" id="'+myId+'_input" name="'+myName+'" value="" />');		
			var ul = jQuery('<ul id="'+myId+'_option" class="dropDown"></ul>'); 


			
			elementi = jQuery(element).children();
			for(kk=0;kk<elementi.length;kk++){
				ind = kk;
				obj = elementi[kk];
				
				textSelected = jQuery("#"+myId+" option:selected").text();				
				textOption = jQuery(obj).text();
				var li = jQuery('<li onclick="javascript:cliccato(this);" onmouseover="javascript:overInput(this);" onmouseout="javascript:outInput(this);" id="'+obj.id+'" class="'+obj.className+'" title="'+obj.value+'">'+textOption+'</li>');
				jQuery(ul).append(li);
					
				cliccato = function(e){
					jQuery('#'+myId+'_input').val(jQuery(e).attr("title"));
					jQuery('#'+myId+'_text').html(jQuery(e).text());
					setTimeout(function(){jQuery('#'+myId+'_option').css('display','none');},200);
					onchangeUL = String(jQuery(element).attr("onchange"));					
				}
				
				overInput = function(e){
						jQuery(e).attr('class',jQuery(e).attr('class')+' hover');
				}
				
				outInput = function(e){
					jQuery(e).attr('class', jQuery(e).attr('class').split(' hover')[0]);	
				}
						
				/*jQuery(li).click(function(){
					jQuery('#'+myId+'_input').val(jQuery(this).attr("title"));
					jQuery('#'+myId+'_text').html(jQuery(this).text());
					setTimeout(function(){jQuery('#'+myId+'_option').css('display','none');},200);
					onchangeUL = String(jQuery(element).attr("onchange"));					
					if(onchangeUL.indexOf('setCitiesByPath')!=-1){
						if(jQuery(element).attr('secondSel')!=''){
							Intoscana.setCitiesByPath(jQuery(this).attr("title"),jQuery(element).attr('secondSel'));
						}else{
							Intoscana.setCitiesByPath(jQuery(this).attr("title"));
						}						
					} else if(onchangeUL.indexOf('setCitiesByValue')!=-1){
						if(jQuery(element).attr('secondSel')!=''){
							Intoscana.setCitiesByValue(jQuery(this).attr("title"),jQuery(element).attr('secondSel'));
						}else{
							Intoscana.setCitiesByValue(jQuery(this).attr("title"));
						}						
					} else if(onchangeUL.indexOf('initThisSlider')!=-1){
						var args = onchangeUL.split('Intoscana.initThisSlider(')[1].split(');')[0].split(',');
						for (var i=0;i<args.length;i++)
						if (args[i].indexOf("'")!=-1)
						args[i] = args[i].split("'")[1];
						else if (args[i].indexOf('"')!=-1)
						args[i] = args[i].split('"')[1];
						Intoscana.initThisSlider(args[0],this.className);
					} else {
						//
					}
				});	*/

				/*
				jQuery('#'+myId+'_input').change(function(){
					Intoscana.setCities(jQuery(this).val());
				});			
				jQuery(li).hover(function(){
					jQuery(this).attr('class',jQuery(this).attr('class')+' hover');
				});
				jQuery(li).mouseout(function(){
					jQuery(this).attr('class', jQuery(this).attr('class').split(' hover')[0]);
				});
				*/
			}


		
			jQuery(cc).append(textSelected);					
			jQuery(dx).append(cc);
			jQuery(skinned).append(dx);
			jQuery(skinned).append(input);
			jQuery(contSkinned).append(skinned);			
			jQuery(contSkinned).append(ul);			
			element.wrap(contSkinned); /* inserisco la nuova select */		
			element.remove(); /* rimuovo la vecchia select */	
			
			
			
			newW = jQuery('#'+myId+'_btn').width();			
			jQuery('#'+myId+'_option').css('width',newW-3+'px');
			jQuery('#'+myId+'_option li').css('width',newW-30+'px');
					
			jQuery('#'+myId+'_btn').click(function(e){							
				if(jQuery('#'+myId+'_option').css('display')=='none'){					
					drop = jQuery('.dropDown');
					for(jj=0;jj<drop.length;jj++){
						jQuery(drop[jj]).hide();	
					}
		
					jQuery('#'+myId+'_option').show();
					jQuery('.contSkin').css('z-index','0');
					jQuery(this).parent('.contSkin').css('z-index','3000');
				}else{
					jQuery('#'+myId+'_option').hide();
				}
				hDrop = (jQuery('#'+myId+'_option li').height()+4)*rowToShow;	
				jQuery('#'+myId+'_option').css('max-height',hDrop+'px');				
			});
			
			jQuery(document).click(function() { 
				jQuery('#'+myId+'_option').hide();
			}); 

			jQuery('.contSkin').click(function(e){ 
				e.stopPropagation(); 
			});
			
		};
		
		function skinCheckbox(element){	
			if(jQuery(element).attr('checked')){
				stat = 'on';
				val = 'true';
			}else{
				stat = 'off';
				val = 'false';
			}
			var myId = jQuery(element).attr('id');
			var myName = jQuery(element).attr('name');
			var fakeRadio = jQuery('<input type="hidden" name="'+myName+'" id="id_'+myName+'" value="'+val+'" />');
			var radioImg = jQuery('<img src="toolbar/i/input-check_'+stat+'.gif" class="checkbox" />');
			
			
			jQuery(radioImg).insertAfter(element);
			jQuery(fakeRadio).insertAfter(element);
			element.remove();
			
			jQuery(radioImg).click(function(){
				imgSrc = jQuery(this).attr('src');
				if(imgSrc.indexOf('_on')!=-1){					
					var newSrc = imgSrc.replace('_on','_off');
					jQuery(this).attr('src',newSrc);
					jQuery('#id_'+myName).val('false');
				}
				if(imgSrc.indexOf('_off')!=-1){					
					var newSrc2 = imgSrc.replace('_off','_on');
					jQuery(this).attr('src',newSrc2);
					jQuery('#id_'+myName).val('true');
				}
			})
			
		};
		
		function skinRadio(element){			
			//TODO -> eventuale vestizione per radio
		};
		
};


