//thapa.laxman@hotmail.com
(function( $ ){
	var isCssSet = false;
	var methods = {
		combo: function(options){
			var settings = {
				 'selectClass': 'ui-styled',
				 'context':'',
				 'width':'167px'
			}
			if ( options ) $.extend( settings, options );
			
			if(!isCssSet){
				isCssSet = true;
				//$('head').append('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: '+settings["width"]+'; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
				$('head').append('<style type="text/css">input.ui-styled { display: none; } select.ui-styled { position: relative; opacity: 0; filter: alpha(opacity=0); z-index: 0; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
			}
			
			
			//$inputsAry = $(settings['context']+" select."+settings['selectClass']+"");
			//$inputsAry = $("select [class^='ui-']");
			$inputsAry = $(settings['context']+' select[class^="ui-"]');
			
			//<script>$('input[name^="news"]').val('news here!');</sc ript>
			var  parentNode;
			$inputsAry.each(function(){
				var spanClass = $(this).attr("class").substr(3);
				//$(this).removeClass();
				$(this).addClass("ui-styled");
				//alert(spanClass);
			      if($(this).prev().is("span")){}
                  else
                  {
				        var option = $(this).find("option:selected");
				        var activeLabel = $(option[0]).text();
				        var selectSpan = $("<span class='"+spanClass+"'>"+activeLabel+"</span>").css({}).insertBefore($(this));
        				
				        $(this).data("span",selectSpan);
        				
				        $(this).change(function(){
					        $(this).data("span").html($(this).find("option:selected").text());
				        })
			     }
				
			});
		}//end of combo
		,
		checkBox: function(options){
			var settings = {
				 'selectClass': 'ui-styled',
				 'context':'',
				 'path':'/',
				 'width':'167px'
			}
			if ( options ) $.extend( settings, options );
			
			/*
			if(!isCssSet){
				isCssSet = true;
				//$('head').append('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: '+settings["width"]+'; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
				$('head').append('<style type="text/css">input.ui-styled { display: none; } select.ui-styled { position: relative; opacity: 0; filter: alpha(opacity=0); z-index: 1; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
			}
			*/
			
			//$inputsAry = $(settings['context']+" select."+settings['selectClass']+"");
			//$inputsAry = $("select [class^='ui-']");
			$inputsAry = $(settings['context']+' input[class^="ui-"]');
			
			//<script>$('input[name^="news"]').val('news here!');</sc ript>
			var  parentNode;
			$inputsAry.each(function(){
				var spanClass = $(this).attr("class").substr(3);
				var currentState = $(this).attr("checked");
				$(this).css({"display":"none"})
				//$(this).removeClass();
				//$(this).addClass("ui-styled");
				//alert(spanClass);
                  if($(this).prev().is("span")){}
                  else
                  {
				        var checkSpan = $("<span class='"+spanClass+"'><img src='"+settings['path']+"images/spacer.gif' /></span>").css({}).insertBefore($(this));
				        checkSpan.data("input",$(this));
				        checkSpan.data("value",currentState);
        				
				        if(currentState) checkSpan.addClass(spanClass+"-on");
				        $($(this).data("input")).val(currentState);
				        var chkId=this.id;
				        checkSpan.click(function(){
					        var input = $(this).data("input");
					        if($(this).data("value")){
						        $(this).removeClass(spanClass+"-on");
						        $(input).val(false);
					        }else{
						        $(this).addClass(spanClass+"-on");
						        $(input).val(true);
					        }
					        $(this).data("value",!$(this).data("value"));
					        $(input).trigger("onchange");
					        document.getElementById(chkId).click();
					        //out your additional actions here...
				        })					 
				  }
        				
			});
		}// end of checkBox
	}
	$.fn.uiForm = function(method,options) {
		
		if ( methods[method] ) {
			return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || ! method ) {
			return methods.init.apply( this, arguments );
		} else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.gva.ui' );
		}
	};
})( jQuery );


