var main_cont='pred_pop_cont';
var inn_cont='pred_pop';
var popin_cont='pred_popin';
var close_cont='pred_close';
var or_time = new Date();

function pred_pop(obj,sets) {
	var curr_id=$(obj).attr('id'),pop=false;
	if(typeof(sets)=='udefined'){
		sets={
			'effect':'popout',
			'speed':300,
			'cookie_time':1*24*60*60,
			'cookie_name':'pred_popout'+curr_id,
			'cookie_page':'pred_popout_'+curr_id+'track',
			'pop_page':5,
		}
	}
	if(typeof(sets.effect)=='undefined'){sets.effect='popout';}
	if(typeof(sets.speed)=='undefined'){sets.speed=300;}
	if(typeof(sets.cookie_time)=='undefined'){sets.cookie_time=1*24*60*60;}
	if(typeof(sets.cookie_name)=='undefined'){sets.cookie_name='pred_'+sets.effect+'_'+curr_id;}
	if(typeof(sets.cookie_page)=='undefined'){sets.cookie_page='pred_'+sets.effect+'_'+curr_id+'_track';}
	if(typeof(sets.pop_page)=='undefined'){sets.pop_page=5;}
	
	if(sets.pop_page==-1){pop=true;}
	
	if(document.cookie.indexOf(sets.cookie_name+'=')==-1){
		var tr_c;
		if(sets.pop_page>0){
			if(document.cookie.indexOf(sets.cookie_page+'=')==-1){
				tr_c=1;/*visited pages*/
			}else{
				var c_list=[],c_data=[],c_val;
				c_list=document.cookie.split(';');/*get cookie list and find tracking cookie*/
				for(var i=0;i<c_list.length;i++){
					c_data=c_list[i].split('=');
					c_data[0]=jQuery.trim(c_data[0]);
					c_data[1]=parseInt(jQuery.trim(c_data[1]));
					if(!isNaN(c_data[1])){c_val=c_data[1];}else{c_val=1;}
					if(c_data[0]==sets.cookie_page){tr_c=c_val;break;}
				}
			}
			or_time.setTime(or_time.getTime()+sets.cookie_time*1000);
			document.cookie = sets.cookie_page+'='+(tr_c+1)+'; expires='+or_time+'; path=/;';
			$('.main').html(tr_c);
			if(tr_c==sets.pop_page){pop=true;}else{pop=false;}
		}else if(sets.pop_page==0){
			pop=true;
		}
	}
	
	if(pop===true){
		pred_exec($(obj),sets);
		or_time.setTime(or_time.getTime()+sets.cookie_time*1000);
		document.cookie = sets.cookie_name+'=true; expires='+or_time+'; path=/;';
	}
}
function pred_exec(obj,sets) {
	var curr=$(obj);
	
	$(curr).wrap('<div class="'+inn_cont+'">');
	$(curr).css('display','block');
	$('.'+inn_cont).wrap('<div class="'+main_cont+'">');
	$('.'+inn_cont).append('<div class="'+close_cont+'"></div>');
	var height=parseInt($(curr).css('height'));
	var width=parseInt($(curr).css('width'));

	$('.'+inn_cont).css({
						'position':'absolute',
						'marginTop':'-'+(Math.ceil(height/2))+'px',
						'marginLeft':'-'+(Math.ceil(width/2))+'px',
						'top':'50%',
						'left':'50%'
					});
	$('.'+inn_cont).bind('click',function(e){e.stopPropagation();});			
	if(sets.effect=='popout'){
		$('.'+main_cont).fadeIn(sets.speed,function(){$('.'+inn_cont).fadeIn(sets.speed);});
		$('.'+inn_cont).css('backgroundColor','white');
		$('.'+main_cont).bind('click',function(e){$(curr).pred_close(sets);});
	}else if(sets.effect=='popin'){
		$('.'+inn_cont).wrap('<div class="'+popin_cont+'">');
		$('.'+popin_cont).bind('click',function(e){e.stopPropagation();});	
		var padd=300;
		$('.'+popin_cont).css({
						'position':'absolute',
						'height':(height+padd)+'px',
						'width':(width+padd)+'px',
						'marginTop':'-'+(Math.ceil((height+padd)/2))+'px',
						'marginLeft':'-'+(Math.ceil((width+padd)/2))+'px',
						'top':'50%',
						'left':'50%'
					});
					
		$('.'+main_cont).fadeIn(sets.speed,function(){
			$('.'+popin_cont).fadeIn(sets.speed*1.1,function(){
				$('.'+popin_cont).animate({'height':height+'px','width':width+'px','marginTop':'-'+(Math.ceil(height/2))+'px','marginLeft':'-'+(Math.ceil(width/2))+'px'},sets.speed*1.5,function(){
					$(curr).css('display','none');
					$(curr).unwrap('<div class="'+inn_cont+'">');
					$(curr).fadeIn(sets.speed,function(){
						$('.'+popin_cont).css('background','white');
					});
				});
			});
		});
		$('.'+main_cont).bind('click',function(e){pred_close($(curr),sets);});
	}
	
	$('.'+close_cont).bind('click',function(){pred_close($(curr),sets);})
}

function pred_close(obj,sets) {
	var curr=$(this);
	
	if(sets.effect=='popout'){
		$('.'+inn_cont).fadeOut(sets.speed,function(){$('.'+main_cont).fadeOut(sets.speed,function(){pred_gcollect($(curr),sets);});});
	}else if(sets.effect=='popin'){
		$('.'+popin_cont).fadeOut(sets.speed,function(){$('.'+main_cont).fadeOut(sets.speed,function(){pred_gcollect($(curr),sets);});});
	}
}

function pred_gcollect(obj,sets) {
	var curr=$(this);
	
	$(curr).unwrap('<div class="'+main_cont+'">');
	$(curr).unwrap('<div class="'+inn_cont+'">');
	$(curr).unwrap('<div class="'+popin_cont+'">');
	$('.'+close_cont).remove();
}
