/**
 * A Siten használt helper functiok
 *
 * @package    mvo
 * @subpackage site
 * @author     Szijártó Tamás ( szicsu ) <szicsu@jquery.hu>
 * @version    SVN: $Id: $
 */
 if( typeof Site != 'object' ){
	Site = {};
 }
 
 Site.Helper = {
	
	/**
	 * getSluggedUrl function
	 * visszadja a environment-nek megfeleő url-t 
	 * 
	 * @param string param
	 * @return string
	 */
	getSluggedUrl: function( param ){
	
		if( !param ){
			return this.addSfIgnoreCacheString( '/' );
		}
		
		var urlSegment = location.pathname.substr(1).split('/');
		url = urlSegment[0].match(/(.*)\.php/)? '/' + urlSegment.shift() : '' ; 
		
		if( param.substring(0,1) != '/' ){
			url += '/' + urlSegment.join('/');    
		}
		
		return this.addSfIgnoreCacheString( ( url + '/' + param ).replace( /\/\// ,'/' ) );
	},
	
	/**
	 * @var string
	 */
	sfIgnoreCacheString: '_sf_ignore_cache=1',
	
	/**
	 * addSfIgnoreCacheString function
	 *
	 * @param string param
	 * @return string
	 */
	addSfIgnoreCacheString: function( url ){
		
		if( this.checkSfIgnoreCache() ){ 
			
			var urlSegment = url.split('?');
			url = urlSegment[0];
			
			var params = ( (typeof urlSegment[1] != 'undefined' )? urlSegment[1] : '' ).split('&'); 
			params.push( this.sfIgnoreCacheString );
			url+= ( '?' + params.join('&') ).replace( '?&', '?' ) ;
		}
		
		return url;
	},
	
	/**
	 * checkSfIgnoreCache function
	 *
	 * @return bool
	 */
	checkSfIgnoreCache: function(){
		return ( new RegExp( this.sfIgnoreCacheString ) ).test( location.search );
	},
	
	/**
	 * getFormData function
	 * visszaadja egy form adatait
	 *
	 * @param object jQuery formObj
	 * @return object data
	 */
	getFormData: function( formObj ){
		var data = {};
		var names = Site.Helper.getFormFieldNames( formObj );
		
		for( var i in names ){
			
			$("input[name='"+ names[i] +"'], select[name='"+ names[i] +"'], textarea[name='"+ names[i] +"']", formObj ).not(':disabled').each(function(){
				
				var fieldValue;
				
				switch( $(this).attr('type') ){
					
					case 'radio':
					case 'checkbox':
						
						if( $(this).attr('checked') == true ){
							fieldValue = $.trim( $(this).val() + '' );
						}
						
					break;
					
					
					default:
						fieldValue = $.trim( $(this).val() + '' );
					break;
				}
				
				if( fieldValue != undefined ){
					
					if( data[ names[i] ] == undefined ){
						data[ names[i] ] =  fieldValue;
					}
					else if( data[ names[i] ] instanceof Array ){
						data[ names[i] ].push( fieldValue );
					}
					else{
						data[ names[i] ] = new Array( data[ names[i] ], fieldValue );
					}
				
				}	
					
			});
			
		}
		return data;
	},
	
	
	getFormFieldNames: function( formObj){
		
		var names = [];
		formObj.find(':input').not(':submit').each(function(){
			names.push( this.name );
		});
		return  array_unique( names ) ;
	},
	
	
	/**
	 *
	 */
	timeFormatter: function( dateText ){
		
		segments = dateText.match(/^([\d]{1,2})\:([\d]{1,2}) ?(AM|PM)?$/);
		if( segments ){
			
			if( segments[3] == 'PM' ){
				segments[1] = parseInt( segments[1] ) + 12;
			}
			return segments[1] +':'+ segments[2];
		}
		else{
			return '';
		}	
	},
	
	/**
	 *
	 */
	cacheImage: function( imgUrl ){
		
		return ( new Image() ).src = imgUrl;
	}
 
}

Site.Helper.Select = {

	replaceOptions: function( selectObj, data, value ){
		
		sObj=selectObj[0];
		sObj.innerHTML = '';
		
		for( var i in data ){
			optObj = document.createElement('option'); 
			optObj.value = 	i;
			optObj.text  = 	data[i];
			try{ 
				sObj.add( optObj ,null);
			}
			catch(ex){
				sObj.add( optObj );
			}
		}
		delete optObj;
		delete sObj;
		
		if( value ){
            selectObj.val( value );
        }
	}
}

