$(document).ready
(
 	function()
	{
		
		//cart_subtotal();
		//cart_total_items();
		
		
		
		$('#terms').hide();
		
		$('#sort_type_select').val($('#sort_type').val());
		$('#sort_by_select').val($('#sort_by').val());
		
		$('#sort_type_select').change
		(
			function()
			{
				$('#sort_type').val($(this).val());
				
			}
		);
		
		$('#sort_by_select').change
		(
			function()
			{
				$('#sort_by').val($(this).val());
				
			}
		);
		
		$('#SimpleOrdersCountriesID').live
		(
		 	"change", 
			function()
			{
				zone_options( $(this).val() );

				return false;
			}
		);		
		
		//$('.navigationLeftLink').attr('class','navigationLeftLinkHover');
		
		
		$('.navigationLeftLink').mouseover
		(
		 	function()
			{
				$(this).attr('class','navigationLeftLinkHover');
			}
		 	
		 ).mouseout
		(
			function()
			{
				$(this).attr('class','navigationLeftLink');
			}
		)
		
		$('.form_onchange').live
		(
		 	"change", 
			function()
			{
				

				form_id = $(this).attr('id').replace('submit_','');
				str_on_complete = form_id.substring(   0 , form_id.length - ( form_id.length - form_id.lastIndexOf('_') ) )+'_on_complete' ;
				form_submit(form_id,str_on_complete);
				
				return false;
			}
		);		
		

		$('.form_submit').live
		(
		 	"click", 
			function()
			{
								
				form_id = $(this).attr('id').replace('submit_','');
				
				if( has_numbers( form_id ) == true)
				{
				str_on_complete = form_id.substring(   0 , form_id.length - ( form_id.length - form_id.lastIndexOf('_') ) )+'_on_complete' ;
				}
				else
				{
					str_on_complete = form_id+'_on_complete';
				}
				
				
				form_submit(form_id,str_on_complete);
				return false;
			}
		);
		
$('.function_requester').live
		(
		    "click",
		    function()
		    {
		        var obj_params = eval( '('+$(this).attr("rel")+')' );
			    var temp_func = eval(obj_params.function_name);
			
			    temp_func(obj_params);
			    
			    return false;
			}		    
		);
		
		$('.function_requester_mouseover').live
		(
		    "mouseover",
		    function()
		    {
		        var obj_params = eval( '('+$(this).attr("rel")+')' );
			    var temp_func = eval(obj_params.function_name);
			
			    temp_func(obj_params);
			    
			    return false;
			}		    
		);	
		
		$('.function_requester_change').live
		(
		    "change",
		    function()
		    {
		        var obj_params = eval( '('+$(this).attr("rel")+')' );
			    var temp_func = eval(obj_params.function_name);
			
			    temp_func(obj_params);
			    
			    return false;
			}		    
		);		

		//$("button, input:submit").button();

		
		$('#main_container').each($("iframe"), function() 
		{
				alert('hola');
				$(this).attr({
					src: $(this).attr("src")
				});
		});


		
		
	}	
)

function add_to_cart()
{
	str_data =  $("#form_products_edit").serialize();
	str_data = str_data.replace(/%5B/gi,'[');
	str_data = str_data.replace(/%5D/gi,']');
	
	alert();
	
}

function cart_total_items()
{
	$.ajax
	(
		{
			type:"POST",
			url:BASE_URL+'/'+PROJECT_W_SLASH+'json/cart_total_items',
			
			dataType:"json",
			success: function(data)
			{	
				if( data.is_success == true)
				{
					
					$('#cart_total_items').html(data.str_results);
				}
				else
				{
					alert('cart_total_items error');
				}
			},
			error: function(data)
			{
				alert('cart_total_items error w/ data');
			}
		}
	)		
}

function cart_subtotal()
{
	$.ajax
	(
		{
			type:"POST",
			url:BASE_URL+'/'+PROJECT_W_SLASH+'json/cart_subtotal',
			
			dataType:"json",
			success: function(data)
			{	
				if( data.is_success == true)
				{
					
					$('#cart_subtotal').html('$'+data.str_results.toFixed(2));
				}
				else
				{
					alert('cart_subtotal error');
				}
			},
			error: function(data)
			{
				alert('cart_subtotal error data');
			}
		}
	)		
}

function create_random_element()
{
    var id_random = 'random_'+Math.ceil(Math.random()*5);
    
    $('body').append('<div id="'+id_random+'" ></div>');
   
    return id_random;
}

function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}



function form_order_products_on_complete(data)
{
	
	
	$('.form_results').html(data.str_results);

	if( data.is_success == true)
	{
		window.location=BASE_PROJECT_W_SLASH+'store/pay';
		//alert('go to pay page');
		//$('#form_order_products').hide();
	}
	
}

function form_simple_product_delete_on_complete(data)
{
	if( data.is_success)
	{
		$('#block'+data.post.SimpleProducts.SimpleProductsID).fadeOut
		(
			600,
			function()
			{
				$(this).remove();
			}
		);
	}	
}

function form_cart_update_quantity_on_complete(data)
{
	if( data.is_success == true)
	cart_subtotal();
	
	if( data.quantity < 1 )
	{
		cart_total_items();	
		$('#form_remove_from_cart_'+data.id+'row').delay(300).fadeOut(500);
	}
}

function form_remove_from_cart_on_complete(data)
{

	$('#form_remove_from_cart_'+data.id+'row').delay(300).fadeOut(500);
	
	if( data.is_success == true)
	cart_subtotal();
	
	cart_total_items();
}

function form_add_to_cart_on_complete(data)
{
	if( data.is_success == true)
	cart_subtotal();
	
	cart_total_items();
	
	$('.results').delay(1500).fadeOut(300);
}

function form_submit(form_id,str_complete_function,o)
{
	//o is super short for object parameters
	if(o == undefined)		{ o = new Object(); }
	if(o.hide_form_on_success == undefined)		{ o.hide_form_on_success = new Object(); o.hide_form_on_success = false; }
	if(o.is_submitter_hidden == undefined)		{  o.is_submitter_hidden = true; }
	if(o.is_form_hidden == undefined)			{ o.is_form_hidden = true; }
	
	str_data =  $("#"+form_id).serialize();
	str_data = str_data.replace(/%5B/gi,'[');
	str_data = str_data.replace(/%5D/gi,']');
	
	if( $('.common-pre-results').length > 0 )
	{   
        $('.common-pre-results').hide();	    
        $('.common-pre-results').fadeIn(1000);
	}
	
	if( has_numbers(form_id) )
	{
		func = form_id.substring(   0 , form_id.length - ( form_id.length - form_id.lastIndexOf('_') ) ) ;
	
		str_results_id = form_id+'results';
		str_validater = form_id+'validate';
	}
	else
	{
		func = form_id;	
		
		str_results_id = form_id+'_results';
		str_validater = form_id+'_validate';
	}
	
	
	if( o.is_submitter_hidden == true)
	{
		$('#submit_'+form_id).fadeOut(100);
	}
	
	$.ajax
	(
		{
			type:"POST",
			url:BASE_URL+'/'+PROJECT_W_SLASH+'json/'+func,
			data: str_data,
			dataType:"json",
			success: function(data)
			{	
				
				//alert( dump(data) );
				
				$('.validation_error').html('');
				
				if( o.is_submitter_hidden == true)
				{
					$('#submit_'+form_id).fadeIn();
				}
								
				$('#'+str_results_id).html(data.str_results);
				
				
				if( data.is_success != false)
				{
					
					if( o.hide_form_on_success == true && o.is_form_hidden == true )
					{
						$("#"+form_id).hide();
					}
					
				}
				else
				{	
					
					if(data.errors)
					{
						
						for(i in data.errors)
						{
							var temp = '';
							temp = eval('data.errors.'+i);
							
							
							
							if( typeof eval(temp) == 'object' || typeof eval(temp) == 'array' )
							{
								
								for(j in temp)
								{
									
									try
									{
										 var error = eval('data.errors.'+i+'.'+j);
										//document.getElementById('bla'); // Cause an error.
									}
									catch(e)
									{ // Create local variable e.
										//alert(e) // Prints "[object Error]".
										//alert(e.number & 0xFFFF) // Prints 5009.
										//alert(e.description) // Prints "'y' is undefined".
										error = 'undefined';
									}	
									
									
									if( error != 'undefined')
									{
										
										$('#'+str_validater+'_'+i+'-'+j).html( error );
									}									
									
								
								}							
								
							}
							else
							{
								var error = temp;
								
								$('#'+form_id+'validate_'+i).html( error );	
							}
							
						}
					}
				}
				
				try
				{
					if( typeof eval(str_complete_function) == 'function') 
					{
						temp_func = eval(str_complete_function);
						temp_func(data);
					} 				
				}
				catch(e)
				{ 
					//
				}					
				
				
			},
			error: function(data)
			{
				alert('error');
				$('#submit_'+form_id).show(300);
			}
			
		}
	)

}

function get_document_for_dialog(obj_params)
{
    
	//default parameters if they were not passed
    if( typeof obj_params.width == 'undefined')
    {
    	obj_params.width = 500;
    }
    
    if( typeof obj_params.height == 'undefined')
    {
    	obj_params.height = 400;
    }
    
    if( typeof obj_params.controller == 'undefined')
    {
    	obj_params.controller = 'json';
    }  
    
    if( typeof obj_params.title == 'undefined')
    {
    	obj_params.title = 'Current Document';
    }     
    
   	if( typeof obj_params.view == 'undefined')
    {
    	alert( 'You must pass "view" in your parameters for the "get_document_for_dialog" function.' );
    	return false;
    }    


	var id = create_random_element();
	$('#'+id).html('Getting the document...');    
     
    $('#'+id).dialog
    (
        {
            title: 	obj_params.title,
            width: 	obj_params.width,
            height: obj_params.height,
            close: function(event,ui)
            {
            	$(this).dialog('destroy').remove();
            }
        }     
    );
    
	$.ajax
	(
		{
			type:"POST",
			url:'/'+obj_params.controller+'/'+obj_params.view,
			data: obj_params.data,
			dataType:"json",
			success: function(data)
			{	
			   	//alert( dump(data) );
				
				if( data.is_success == true )
				{

					//$('.ad_categories-ad_category_id-'+data.post.ad_categories.ad_category_id).html( data.post.ad_categories.name );
				}
				
				$('#'+id).html( data.str_results );
				
				set_the_ui();
			},
			error: function(data)
			{
				alert('error');
			}
			
		}
	);
			
}


function has_numbers(t)
{
	return /\d/.test(t);
}

function is_array(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}





function loadView(myView,myController,myBaseUrl,myProject)
{
	if(myView == undefined){myView = VIEW ;}
	if(myController == undefined){myController = CONTROLLER;}
	if(myBaseUrl == undefined){myBaseUrl = BASE_URL;}
	if(myProject == undefined)
	{
		myProject = PROJECT_W_SLASH;
	}
	else
	{
		myProject = myProject+'/';
	}
	
	window.location = myBaseUrl+'/'+myProject+myController+'/'+myView;
}

function set_the_ui()
{
	
	$("button,.button, input:submit, input:button").button();
	
	$("input:text, textarea").addClass('ui-widget ui-widget-content ui-corner-left ui-corner-right');
	
	//$("select").menu();
	
	$('.datepicker').datepicker
	(
		{
			changeMonth: true,changeYear: true, showAnim: 'fadeIn'
		}
	);

	//$(".common-gradient-delete").removeClass('ui-button').addClass('common-gradient');
}

function toggle_confirm_and_cancel(obj_params)
{
	//alert( dump(obj_params));
	$('#common-button-delete-'+obj_params.suffix_id+', #common-button-delete-confirm-'+obj_params.suffix_id+', #common-button-delete-cancel-'+obj_params.suffix_id).toggle();
}

/*
sample use:
toggle_multiple_elements{'id':'toggle_myid','elements':['search_criteria'],'toggle_text':['+ Show It','+ Hide It'],'settings':{'speed':1000} })
date_modified: 07/05/09
*/
function toggle_multiple_elements(o)
{
	$id = $('#'+o.id);
	if(o.settings == undefined)		{ o.settings = new Object(); o.settings.duration = 300; }
	if(o.toggle_text == undefined)	{ o.toggle_text = new Array(); o.toggle_text[0] = 'Show'; o.toggle_text[1] = 'Hide'; }	
	
	count = 0;
	while(count < o.elements.length)
	{
		$obj = $('#'+o.elements[count]);
		obj_to_toggle = o.elements[count];
		$obj.css('display') == 'block' ? $id.text(o.toggle_text[0]) : $id.text(o.toggle_text[1]);
		$obj.toggle(o.settings.duration);
		count++;
	}
}

function zone_options(countries_id)
{
	//alert('country id '+countries_id);
	
	str_data = {'countries_id':countries_id};
	
	$.ajax
	(
		{
			type:"POST",
			url:BASE_URL+'/'+PROJECT_W_SLASH+'json/zone_options',
			data: str_data,
			dataType:"json",
			success: function(data)
			{	
				
				if( data.is_success == true)
				{
					
					$("select#SimpleOrdersZonesID").html( data.str_results );
					if( data.str_results == '')
					{
						$("select#SimpleOrdersZonesID").html( '<option value=0></option>' );
						$('#SimpleOrdersZoneName').val('');
						$('#SimpleOrdersZoneName').show();	
						$("select#SimpleOrdersZonesID").hide();
					}
					else
					{
						
						$('#SimpleOrdersZoneName').hide();	
						$("select#SimpleOrdersZonesID").show();
					}
				}
				else
				{
					alert('error');
				}
			},
			error: function(data)
			{
				alert('error');
			}
		}
	)
	
}

function zz_archive_form_submit(form_id,str_complete_function)
{

	str_data =  $("#"+form_id).serialize();
	str_data = str_data.replace(/%5B/gi,'[');
	str_data = str_data.replace(/%5D/gi,']');
	
	//alert(str_data);
	
	if( has_numbers(form_id) )
	{
		func = form_id.substring(   0 , form_id.length - ( form_id.length - form_id.lastIndexOf('_') ) ) ;
	}
	else
	{
		func = form_id;	
	}
	
	
	$('#submit_'+form_id).fadeOut(100);
	
	$.ajax
	(
		{
			type:"POST",
			url:BASE_URL+'/'+PROJECT_W_SLASH+'json/'+func,
			data: str_data,
			dataType:"json",
			success: function(data)
			{	
			
				//alert(data.str_results);
				
				//return false;
				
				$('.validation_error').html('');
				
				$('#submit_'+form_id).fadeIn();
				$('#'+form_id+'results').html(data.str_results);
				
				
				if( data.is_success == true)
				{
					//$("#"+form_id).hide();
					
					
				}
				else
				{	
				
					if(data.errors)
					{
						for(i in data.errors)
						{
							temp = eval('data.errors.'+i);
							
							//alert(  typeof eval(temp) );
							
							if( typeof eval(temp) == 'object' || typeof eval(temp) == 'array' )
							{
								
								//alert( temp.NameFirst);
								
								for(j in temp)
								{
									
									
									error = eval('data.errors.'+i+'.'+j);
									
									$('#'+form_id+'validate_'+i+'-'+j).html( error );
								}							
								
							}
							else
							{
								//alert( i );
								
								error = temp
								
								$('#'+form_id+'validate_'+i).html( error );	
							}
							
						}
					}
				}
				
				
				if(typeof eval(str_complete_function) == 'function') 
				{
					temp_func = eval(str_complete_function);
					temp_func(data);
				} 				
				
				
			},
			error: function(data)
			{
				alert(' form_submit error');
				$('#submit_'+form_id).show(300);
			}
			
		}
	)

}

