/**
 * @author Mikhail
 */





function addparam(params,name,val)
{
	if (typeof(params[name])=='undefined')
	{
		params[name]=val;
		
	}else
	{	
		if (typeof(params[name])=='object' && params[name] instanceof Array)
		{
			params[name].push(val);
		}else
		{
			var old_val=params[name];
			params[name]=new Array();
			params[name].push(old_val);
			params[name].push(val);
		}
	}
	return params;
}

function pathLoader(hash)
{
	var tabs=hash.split(',');
	try{
		for(var i=0;i<tabs.length;i++)
		{
			if (tabs[i].length>0)
			{
				$('#'+tabs[i].replace('#','')).trigger('activate');
			}
		}
		if (tabs[0].length==0)
		{
			 $(".tab-container").each(function(){
				 $(this).children('.tabs-content').first().children().first().trigger('activate');
			 });
			
		}
	}catch (e)
	{
		//
	}
}

function hashTab(tab)
{
//	if ($.browser.msie) $.locationHash(tab);

	try{
		var r=/^#?([^-]*)-(.*)$/;
		var tabs=window.location.hash.split(',');
		var hash='';
		
		matches=r.exec(tab);
		if (matches.length==3)
		{
			container=matches[1];
			tab=matches[2];
		}
	
		
		var r1=new RegExp(''+container+'-([^\,-]*)(,|$)');
		if (r1.test(window.location.hash))
		{
			window.location.hash=window.location.hash.replace(new RegExp(container+'-[^\,-]*'),container+'-'+tab);
		}else if (window.location.hash.length>0)
		{
			window.location.hash=window.location.hash+','+container+'-'+tab;
			
		}else
		{
			window.location.hash=container+'-'+tab;
		}
	}catch (e)
	{
		alert(e);
	}
	return false;
}

function hashContains(tab)
{
	var r=/^#?([^-]*)-(.*)$/;
	var tabs=window.location.hash.split(',');
	var hash='';
	
	matches=r.exec(tab);
	if (matches.length==3)
	{
		container=matches[1];
		tab=matches[2];
	}
	
	var r1=new RegExp(''+container+'-([^\,-]*)(,|$)');
	if (r1.test(window.location.hash))
	{
		return true;
	}else
	{
		return false;
		
	}
}

	$(function(){
			$(window).hashchange(function(){
						pathLoader(window.location.hash);
				return false;
			});
    
		});
		
		
            (function($){
                $.fn.extend({
                    serializeAll: function(exclude){
                		var ret={};/*
                        $(this).find("input[type!=button]").each(function(index){
                        	if (typeof(exclude)=='undefined' || !$(this).hasClass(exclude) )
                        	{
                        		addparam(ret,$(this).attr("name"),$(this).val());
                        	}
                        });
                        $(this).find("textarea").each(function(index){
                        	if (typeof(exclude)=='undefined' || !$(this).hasClass(exclude) )
                        	{
                        		addparam(ret,$(this).attr("name"),$(this).val());
                        	}
                        });
                        $(this).find("select").each(function(index){
                        	if (typeof(exclude)=='undefined' || !$(this).hasClass(exclude) )
                        	{
                        		addparam(ret,$(this).attr("name"),$(this).val());
                        	}
                        });*/

                		var element=$(this);
                		element.find("input[type=text],input[type=password],input[type=hidden],input[type=radio][checked],input[type=checkbox][checked],textarea,select").each(function(index){
                        	if (typeof(exclude)=='undefined' || (!$(this).parentsUntil(element).is(exclude) && !$(this).is(exclude)))
                        	{
                        		addparam(ret,$(this).attr("name"),$(this).val());
                        	}
                        });

                		
                	   return ret;
                    }
                });
            })(jQuery);
           

            (function($){
                
                $.fn.extend({
                    mparent: function(selector){
                        return $(this).parents(selector).first();
                    }
                });
            })(jQuery);
            
           (function($){
                
                $.fn.extend({
                    over: function(item){
                		var overItem=$(item);
                		
                		overItem.css('position','absolute');
                		var pos=$(this).position();
                	
                		overItem.css('z-index',1000);
                		overItem.css('left',pos.left+'px');
                		overItem.css('top',pos.top+'px');
                		overItem.css('width',$(this).width()+'px');
                		overItem.css('height',$(this).height()+'px');

                		
                		$(this).parent().append(overItem);
                		return overItem;
                    }
                });
            })(jQuery);


            (function($){
//            	$.fn.timer=-1;
                $.fn.extend({
                    waitandact: function(timeout,callback){
                		var item=$(this);
                		item.cancelact();
                        item.timer=window.setTimeout(callback,timeout);
                    },
                    cancelact: function(){
                    	
                    	if (typeof($(this).timer)!='undefined')
                    	{
                    		window.clearTimeout($(this).timer);
                    	}
                    	
                    },
                    timer:0
                });
                
                
            })(jQuery);


$(".toast").live("mouseenter mouseleave", function(){
	$(this).toggleClass("toast-over");
	return false;
});


 $(".tab-container").expire().livequery(function() {
	 var tabs_content=$(this).children('.tabs-content').first();
	 var tabs=$(this).children('ul.tabs').first();
	 var hashNav=$(this).hasClass('hash-nav');
	 tabs.find('li a[href^=#]').bind('click',function(){
		 $(this).parent().addClass('current');
		 $(this).parent().siblings().removeClass('current');
		 var id=$(this).attr('href');
		 if (hashNav)
		 {
			 hashTab(id);	//Change hash
			 				//Activating happens via pathLoader
			 //return true;
		 }else
		 {
			 $(id).trigger('activate');
		 }
		 return false;
	 });
/*
	 $(".tab-container").each(function(){
		 $(this).children('.tabs-content').first().children().first().trigger('activate');
		 $(this).children('ul.tabs').first().children('li').first().addClass('current');		 
	 });

	
	* 
	*/
	 
	 if (!hashNav)
	 {	 	 
		 tabs_content.children().first().trigger('activate');
	 }
	 return false;
	 });
 
 $(".current").livequery(function(){
	 
	 $(this).trigger('show');
	 return false;
 });
 
 $('.tab').live('activate',function()
 {
	 if (!$(this).hasClass('current'))
	 {
	 	$(this).siblings().removeClass('current')
	 	$(this).addClass('current');
	 	var id=$(this).attr('id');
	 	var tab=$(this).parents('.tab-container').first().find('ul.tabs').find('a[href=#'+id+']').parent();
	 	tab.addClass('current');
	 	tab.siblings().removeClass('current');
	 }
	 return false;
 });
 
 $("#preview").livequery(
		 function(){
			 
		 $(this).bind('show',function(event){
			 if(event.target!=this) return false;
			 var template_layout=$('textarea[name=template_layout]').val();
			 var url="index.php";
			 var params={};
			 params.template_layout=template_layout;
			 params.action='preview';
			 params.type='template';
			 params.format='json';
			 var container=$(this);
			 $.getJSON(url,params,function(data){
				 var content=$('<span>'+data.html+'</span>');
				 container.html(content);
				 return true;
			 });
			 return false;
		 });
 });
 
 
  
 $('.edit-form').livequery(
		 
		 function()
		 {
	//		alert('edit-form');
			 var editForm=$(this);

			 editForm.find('ul.buttons a.cancel, ul.buttons  a.return').live('click',function(){
				 var params = {};
			 	params=editForm.serializeAll('.internal');
			 	params.content='';
			 	params.action='cancel';
			 	params.format = 'json';
			   var url = "index.php";
			   
			   $.ajax({
				   url: url,
				   dataType: 'json',
				   data: params,
				   type: 'post',
				   success: function(data){
				   if (data.status == 'ok') 
				   {	
					   var item=$(data.html);
					   editForm.replaceWith(item);
			       }
			       $(".debug_info").html(data.sparks);
			   }});
			   return false;
			 });

			 editForm.find('ul.buttons a.back').live('click',function(){
				 window.history.back();
			   return false;
			 });

			 
//			 editForm.click(function(){return false;});
			 
		 
		 
			 editForm.find('ul.buttons  a.create, ul.buttons  a.create_and_new').live('click',function(){
				 var type=editForm.children('input[type=hidden][name=type]').val();
				 var params = {};
				 params=editForm.serializeAll('.internal');
				 if ($(this).hasClass('create_and_new'))
				 {
					 params.create_and_new='1';
				 }
				 params.action='save_new';
				 var url = "index.php";
				 params.type = type;
				 params.format = 'json';
	//			alert('h1');
				   $.ajax({
					   url: url,
					   dataType: 'json',
					   data: params,
					   type: 'post',
					   success: function(data){

				   if (data.status == 'ok') 
				   {	
					   if (typeof(data.type)=='undefined') return;
					   var listView=$('.info input[name=element_type][value='+data.type+']').parents('.list').first();
					   var item=$(data.html);
					   if (typeof(listView)!='undefined' && listView.length>0){
						   listView.find('.content ul').append(item);
						   editForm.remove();
					   }else
					   {
						   editForm.replaceWith(item);
					   }
			       }else{
			    	   if (typeof(data.error_fields)!='undefined')
			    	   {
			    		   editForm.find('input,textarea,select').removeClass('error');
			    		   editForm.find('.error-message').remove();
			    		   for(var i=0;i<data.error_fields.length;i++)
			    		   {
			    			   var error_item=editForm.find('input[name='+data.error_fields[i]+'],textarea[name='+data.error_fields[i]+']');
			    			   error_item.addClass('error');
			    			   if (typeof(data.error_messages)!='undefined' && data.error_messages!=null && typeof(data.error_messages[data.error_fields[i]])!='undefined')
			    			   {
			    				   var msg=$('<div class="error-message">'+eval('data.error_messages.'+data.error_fields[i])+ '</div>');
			    				   error_item.parent().append(msg);
			    				   
			    				   
			    				}
			    				   
			    			   	
			    		   }
			    		   
			    	   }
			    	   
			    	   
			       }
			       $(".debug_info").html(data.sparks);
	//			alert('h2');
			   }});
	//			alert('h3');
			   return false;
			});


			 
			 editForm.find('ul.buttons  a.save').live('click',function(){
				 var type=editForm.children('input[type=hidden][name=type]').val();
				 var params = {};
				 
				 params=editForm.serializeAll('.internal');
				 params.action='save';
				 var url = "index.php";
				 params.type = type;
				 params.format = 'json';
			   
				   $.ajax({
					   url: url,
					   dataType: 'json',
					   data: params,
					   type: 'post',
					   success: function(data){

				   if (data.status == 'ok') 
				   {	
					   if (typeof(data.type)=='undefined') return;
					   var listView=$('.info input[name=element_type][value='+data.type+']').parents('.list').first();
					   var item=$(data.html);
					   if (typeof(listView)!='undefined' && listView.length>0){
						   listView.find('.content ul li.list-item input[name=id][value='+data.id+']').parents('li.list-item').first().replaceWith(item);
						   if (typeof(data.info))
						   {
							   var info=$(data.info);
							   editForm.replaceWith(info);
						   }else
						   {
							   editForm.remove();
						   }
						   
					   }else
					   {
						   editForm.replaceWith(item);
					   }
						   
			       }else{
			    	   if (typeof(data.error_fields)!='undefined')
			    	   {
			    		   editForm.find('input,textarea,select').removeClass('error');
			    		   editForm.find('.error-message').remove();
			    		   for(var i=0;i<data.error_fields.length;i++)
			    		   {
			    			   var error_item=editForm.find('input[name='+data.error_fields[i]+'],textarea[name='+data.error_fields[i]+']');
			    			   error_item.addClass('error');
			    			   if (typeof(data.error_messages)!='undefined' && data.error_messages!=null && typeof(eval('data.error_messages.'+data.error_fields[i]))!='undefined')
			    			   {
			    				   var msg=$('<div class="error-message">'+eval('data.error_messages.'+data.error_fields[i])+ '</div>');
			    				   error_item.parent().append(msg);
			    				   
			    				   
			    				}
			    				   
			    			   	
			    		   }
			    		   
			    	   }
			       }

			       $(".debug_info").html(data.sparks);
			   }});
			   return false;
			});
			 editForm.find('ul.buttons a.toggle_view').bind('click',function(){
				 
				 var id=$(this).attr('href');
				 editForm.find(id).toggleClass('hidden');
				 return false;
			 });

			 
			 editForm.find('ul.buttons a.undelete').bind('click',function(){
				 var type=editForm.children('input[type=hidden][name=type]').val();
				 var params = {};
				 
				 params=editForm.serializeAll('.internal');
				 params.action='undelete';
				 var url = "index.php";
				 params.type = type;
				 params.format = 'json';
				 $.getJSON(url, params, function(data){

					   if (data.status == 'ok') 
					   {
						   //if (typeof(data.type)=='undefined') return;
						   //var listView=$('.info input[name=element_type][value='+data.type+']').parents('.list').first();
						   var item=$(data.html);
						   //if (typeof(listView)!='undefined' && listView.length>0){
							//   listView.find('.content ul li.list-item input[name=id][value='+data.id+']').parents('li.list-item').first().replaceWith(item);
							//   editForm.remove();
						   //}else
						   //{
							   editForm.replaceWith(item);
						   //}
							   
				       }
				       $(".debug_info").html(data.sparks);
				   });
				   return false;
				});

			 editForm.find('ul.buttons a.link').bind('click',function(){
				 
//				 window.location=$(this).attr('href');
				return false; 
			 });
		 }
 );
 
 
 
 $('.order-tab').livequery(function(){
	
	 var orderTab=$(this);
	 orderTab.bind('logged',function(data){
		 //Step 1 was done
		 
		 var params={};
		 params.id=find('input[type=hidden][name=product_id]').val();
		 params.action='order';
		 params.format='json';
		 params.step=2;
		 var url='index.php';
		 
		 $.getJSON(url,params,function(data)
		{
			 if (data.status=='ok')
			 {
				 var content=$(data.html);
				 orderTab.html(content);
			 }else
			 {
				 
				 
			 }
			 
			 
			 
		});
		 
	 });
 });
 /*
 $(function(){

	 var timer=new Array();
 
 $('ul.menu > li').mouseenter(function(){
	 
	 var item=$(this);
	 var timer=item.children('input[name=timer]');
	 item.addClass('active');
	 item.find('*').mouseenter(function(){
		 window.clearTimeout(timer.val());
		 });
 });

 
 $('ul.menu > li.active > ul').live('mouseout',function(){
	 var item=$(this).parent();
	 item.children('input[name=timer]').val(window.setTimeout(function(){item.removeClass('active');},300));
	 return false;
	 
 });

 $('ul.menu > li.active ').live('mouseout',function(){
	 
	 var item=$(this);
	 item.children('input[name=timer]').val(window.setTimeout(function(){item.removeClass('active');},300));
	 return false;
 });


 });*/
 
 
 $('.page').livequery(function(){
	 $(".tab-container").each(function(){
		 $(this).children('.tabs-content').first().children().first().trigger('activate');
	 });
	 
	 pathLoader(window.location.hash);
	 
 });
 
 
 $('textarea.tinymce').livequery(
			function() {
				$(this).tinymce(
								{
/*										script_url : '../js/tiny_mce/tiny_mce.js',*/
									theme : "advanced"                    ,
//									plugins: "filemanager, imagemanager",
									plugins: "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template, imagemanager, pagelinker",
									/*
                                 plugins: "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,filemanager",
                                 */
                                 // Theme options
                                 theme_advanced_buttons1: "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
                                 theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
                                 theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
                                 theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,insertimage, pagelinker",
                                 theme_advanced_toolbar_location: "top",
                                 theme_advanced_toolbar_align: "left",
                                 theme_advanced_statusbar_location: "bottom",
                                 theme_advanced_resizing: false,
                                 document_base_url : '/',
                                 base_url : '/',
                                 convert_url: false,
                                 content_css: "css/editor.css",
                               	template_templates : [
                               	             		{
                               	             			title : "System - PosNo Table",
                               	             			src : "/js/tiny_mce/templates/system_table_posno.htm",
                               	             			description : "Adds a table for pos numbers."
                               	             		},
                               	             		{
                               	             			title : "Product - PosNo Table",
                               	             			src : "/js/tiny_mce/templates/product_table_posno.htm",
                               	             			description : "Adds a table for pos numbers."
                               	             		},
                               	             		{
                               	             			title : "Product - Interfaces Table",
                               	             			src : "/js/tiny_mce/templates/product_table_interfaces.htm",
                               	             			description : "Adds 3 tables for interfaces."
                               	             		},
                               	             		{
                               	             			title : "Header - Grey boxes",
                               	             			src : "/js/tiny_mce/templates/header_greybox.htm",
                               	             			description : "Adds 2 grey headers."
                               	             		}]

								});
				return false;
			});
 	

$('.lesson').livequery(function(){
	
	var lessonView=$(this);
	var url='index.php';
	
	lessonView.find('ul.buttons li a.return').bind('click',function(){
		var course_id=lessonView.find('input[type=hidden][name=course_id]').val();
		var params={};
		
		params.course_id=course_id;
		params.type='course';
		params.action='get-lessons';
		params.format='json';
		
		$.getJSON(url,params,function(data){
			if (data.status=='ok')
			{
				var ret=$(data.html);
				
				lessonView.replaceWith(ret);;
				
			}
			
			
		});
		return false;
	});
	
});
 
 $(document).ready(function(){  
	   
     $("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)  
   
     $("ul.menu li span").click(function() { //When trigger is clicked...  
   
         //Following events are applied to the subnav itself (moving subnav up and down)  
         $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click  
   
         $(this).parent().hover(function() {  
         }, function(){  
             $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up  
         });  
   
         //Following events are applied to the trigger (Hover events for the trigger)  
         }).hover(function() {  
             $(this).addClass("subhover"); //On hover over, add class "subhover"  
         }, function(){  //On Hover Out  
             $(this).removeClass("subhover"); //On hover out, remove class "subhover"  
     });
     
   
 });  

$('ul.buttons li a.login').die().live('click',function(){
//	alert('login');
	$(this).parents('form').first().submit();
	return false;

});




$('.user-info').livequery(function()
{
	var userInfo=$(this);
	var id = userInfo.find('input[name=id]').val();
	var url="index.php";

		
		userInfo.find('a.edit').bind('click', function() {

			var params = {};

			params.id = id;
			params.type = 'user';
			params.action = 'edit';
			params.format = 'json';
			$.getJSON(url, params, function(data) {

				// if (data.status=='ok')
					// {
					var content = $(data.html);

					userInfo.replaceWith(content);

					// }

				});

			return false;
		});
		
		userInfo.bind('delete',function(){
			var params = {};

			if (confirm("Delete this user?"))
			{
				params.id = id;
				params.type = 'user';
				params.action = 'delete';
				params.format = 'json';
				
		
				$.getJSON(url, params, function(data) {
		
					 if (data.status=='ok')
						 {
						 	var content = $(data.html);
//							userInfo.parents('.page').first().replaceWith(content);
						 }
		
					});
			}
			return false;
		});
		
		
		return false;
	});





$('.customer-info').livequery(function()
		{
			var customerInfo=$(this);
			var id = customerInfo.find('input[name=id]').val();
			var url="index.php";

				
				customerInfo.find('a.edit').bind('click', function() {

					var params = {};

					params.id = id;
					params.type = 'customer';
					params.action = 'edit';
					params.format = 'json';
					$.getJSON(url, params, function(data) {

							var content = $(data.html);

							customerInfo.replaceWith(content);


						});

					return false;
				});
				
				
				return false;
			});


$('.license-info').livequery(function()
		{
			var licenseInfo=$(this);
			var id = licenseInfo.find('input[name=id]').val();
			var url="index.php";
				
				
				licenseInfo.find('a.edit').bind('click', function() {

					var params = {};

					params.id = id;
					params.type = 'license';
					params.action = 'edit';
					params.format = 'json';
					$.getJSON(url, params, function(data) {

							var content = $(data.html);

							licenseInfo.replaceWith(content);


						});

					return false;
				});
				
				
				return false;
			});




$('input[type=checkbox][name=change_password]').live('change',function(){
	$('input[type=password]').attr('disabled',!$(this).attr('checked'));
});


$('a.remove-favorite').die('click').live('click',function(){
	var params={};
	var id=$(this).siblings('input[name=id]').val();
	var tr=$(this).parents('tr').first();
	params.type="page";
	params.action='remove-favorite';
	params.format='json';
	params.id=id;
	
	var url='index.php';
	$.getJSON(url,params,function(data){
		if (data.status=='ok')
		{
			if (!data.favorite)
			{
				var table=tr.parents('table').first();
				tr.remove();
				if (table.find('tr').size()==1)
				{
					table.siblings('p.message').css('display','block');
					
				}
				
			}
		}
	});
	return false;
});


$('select.customer').expire().livequery(function(){
	
	this.onchange=function(){ //We like IE
		var customer_id=$(this).val();
		var params={};
		var url='index.php';
		params.customer_id=customer_id;
		params.type=$(this).siblings('input[type=hidden][name=type]').val();
		params.action='get_adm';
		params.format='json';
		$.getJSON(url,params,function(data){
			if (data.status=='ok')
			{
				var item=$(data.html);
				$('#content').html(item);
			}
		});
	}
});
/*
$('select.customer').die('change').live('change',function(){
	var customer_id=$(this).val();
	var params={};
	var url='index.php';
	params.customer_id=customer_id;
	params.type=$(this).siblings('input[type=hidden][name=type]').val();
	params.action='get_adm';
	params.format='json';
	$.getJSON(url,params,function(data){
		if (data.status=='ok')
		{
			var item=$(data.html);
			$('#content').html(item);
		}
	});
});*/
