// =========================
// = Frontend - Javascript =
// =========================

function change_language(dest_language, ajax_call, func_callback)
{
	if (typeof ajax_call != 'boolean')
		ajax_call = false;
		
	if (ajax_call)
		jQuery.get(BASE_DIR + 'pages/set_language/' + dest_language + '/0/', { }, func_callback);
	else
		window.location = BASE_DIR + 'pages/set_language/' + dest_language + '/1/';
}

function cycle_random_text(segment_name, restart_timer, timer_seconds)
{
	var segment_data = eval('segment_data_' + segment_name);

	// safety check
	if (segment_data instanceof Object === false || segment_data.length <= 0)
		return false;
	
	var current_key = $('#' + segment_name).attr('rel');
	current_key = current_key.split('_');
	current_key = current_key[1];
	
	var new_array = Array();
	for (var key in segment_data)
	{
		if (current_key != key)
		{
			new_array.push(segment_data[key]);
		}
	}
	
	var lucky_winner = array_rand(new_array, 1);
	if (typeof new_array[lucky_winner] == 'undefined')
		return false;
	
	var new_title = new_array[lucky_winner].title;
	var new_content = new_array[lucky_winner].body;
	var new_content_id = new_array[lucky_winner].content_id;

	$('#' + segment_name).fadeOut(100, function() {
		// omdat de key / inhoud relatie uit new_array niet meer het
		// zelfde is als segment_data, zullen we de key uit segment_data moeten zoeken.
		set_active_content_id(segment_name, new_array[lucky_winner].content_id);
		
		$('#' + segment_name + ' div.segmenttext_body').html(new_content);	
		if ($('#' + segment_name + ' div.segmenttext_title'))
		{
			$('#' + segment_name + ' div.segmenttext_title h2').html(new_title);
		}
		
		$('#' + segment_name).fadeIn(100);
	})

	if (restart_timer == true)
		setTimeout(function() { cycle_random_text(segment_name, restart_timer, timer_seconds); }, timer_seconds * 1000);
}

function cycle_random_image(segment_name, restart_timer, timer_seconds)
{
	var segment_data = eval('segment_data_' + segment_name);
	
	// safety check
	if (segment_data instanceof Object === false || segment_data.length <= 0)
		return false;
	
	var current_key = $('#' + segment_name).attr('rel');
	current_key = current_key.split('_');
	current_key = current_key[1];
	
	var new_array = Array();
	for (var key in segment_data)
	{
		if (current_key != segment_data[key].image_id)
		{
			new_array.push(segment_data[key]);
		}
	}
	
	var lucky_winner = array_rand(new_array, 1);
	
	if (typeof new_array[lucky_winner] == 'undefined')
		return false;
	
	var new_alt = new_array[lucky_winner].image_alt;
	var new_src = new_array[lucky_winner].image_src;
	var new_id = new_array[lucky_winner].image_id;
	
	$('#' + segment_name).fadeOut(100, function() {
		// omdat de key / inhoud relatie uit new_array niet meer het
		// zelfde is als segment_data, zullen we de key uit segment_data moeten zoeken.
		$( '#' + segment_name ).attr( 'rel', 'segment_' + new_array[lucky_winner].image_id );
		
		$( '#' + segment_name + ' img' ).attr( 'alt', new_alt )
		$( '#' + segment_name + ' img' ).attr( 'src', new_src );
		
		$('#' + segment_name).fadeIn(100);
	})

	if (restart_timer == true)
		setTimeout(function() { cycle_random_image(segment_name, restart_timer, timer_seconds); }, timer_seconds * 1000);
}

function cycle_random_banner(segment_name, restart_timer, timer_seconds)
{
	var segment_data = eval('segment_data_' + segment_name);
	
	// safety check
	if (segment_data instanceof Object === false || segment_data.length <= 0)
		return false;
	
	var current_key = $('#' + segment_name).attr('rel');
	current_key = current_key.split('_');
	current_key = current_key[1];
	
	var new_array = Array();
	for (var key in segment_data)
	{
		if (current_key != segment_data[key].banner_id)
		{
			new_array.push(segment_data[key]);
		}
	}
	
	var lucky_winner = array_rand(new_array, 1);
	
	if (typeof new_array[lucky_winner] == 'undefined')
		return false;
	
	var new_alt = new_array[lucky_winner].banner_alt;
	var new_src = new_array[lucky_winner].banner_src;
	var new_id = new_array[lucky_winner].banner_id;
	var new_href = BASE_DIR +'banner/?url='+new_array[lucky_winner].banner_real_url+'&id='+new_id;

	$('#' + segment_name).fadeOut(100, function() {
		// omdat de key / inhoud relatie uit new_array niet meer het
		// zelfde is als segment_data, zullen we de key uit segment_data moeten zoeken.
		$( '#' + segment_name ).attr( 'rel', 'segment_' + new_array[lucky_winner].banner_id );
		$( '#' + segment_name + '> a').attr('href',new_href);
		$( '#' + segment_name + '> img' )
			.attr( 'alt', new_alt )
			.attr( 'src', new_src );
		
		$('#' + segment_name).fadeIn(100);
	})

	if (restart_timer == true)
		setTimeout(function() { cycle_random_banner(segment_name, restart_timer, timer_seconds); }, timer_seconds * 1000);
}


function set_active_content_id(segment_name, content_id)
{
	var segment_data = eval('segment_data_' + segment_name);

	// safety check - is eigenlijk niet nodig, omdat deze functie alleen aangeroepen
	// wordt door cycle_random_text en deze de controle óók al doet.
	if (segment_data instanceof Object === false || segment_data.length <= 0)
		return false;
		
	for (var key in segment_data)
	{
		if (segment_data[key].content_id == content_id)
		{
			$('#' + segment_name).attr('rel', 'segment_' + key);
		}
	}
}

function array_rand ( input, num_req ) 
{
	//alert (input+' '+num_req);
	if (typeof input != 'object')
		return 0;
		
    var Indexes = [];
    var Ticks = num_req || 1;
    var checkDuplicate = function ( input, value ) {
        var Exist = false, Index = 0;
        while ( Index < input.length ) {
            if ( input [ Index ] === value ) {
                Exist = true;
                break;
            }
            Index++;
        }
        return Exist;
    };
 
    if ( input instanceof Array && Ticks <= input.length ) {
        while ( true ) {
            var Rand = Math.floor ( ( Math.random ( ) * input.length ) );
            if ( Indexes.length === Ticks ) { break; }
            if ( !checkDuplicate ( Indexes, Rand ) ) { Indexes.push ( Rand ); }
        }
    } else {
        Indexes = Array;
    }
 
    return ( ( Ticks == 1 ) ? Indexes.join ( ) : Indexes );
}

function printContent(id)
{
	str=document.getElementById(id).innerHTML
	newwin=window.open('','printwin','left=100,top=100,width=400,height=400')
	newwin.document.write('<HTML>\n<HEAD>\n')
	newwin.document.write('<TITLE>'+document.title+'</TITLE>\n')
	newwin.document.write('<script>\n')
	newwin.document.write('function chkstate(){\n')
	newwin.document.write('if(document.readyState=="complete"){\n')
	newwin.document.write('window.close()\n')
	newwin.document.write('}\n')
	newwin.document.write('else{\n')
	newwin.document.write('setTimeout("chkstate()",2000)\n')
	newwin.document.write('}\n')
	newwin.document.write('}\n')
	newwin.document.write('function print_win(){\n')
	newwin.document.write('window.print();\n')
	newwin.document.write('chkstate();\n')
	newwin.document.write('}\n')
	newwin.document.write('<\/script>\n')
	newwin.document.write('</HEAD>\n')
	newwin.document.write('<BODY onload="print_win()">\n')
	newwin.document.write(str)
	newwin.document.write('</BODY>\n')
	newwin.document.write('</HTML>\n')
	newwin.document.close()
}

$( document ).ready( function() {
	$( 'input.int' ).bind( 'keyup', function() {
		$( this ).val( $( this ).val().replace( /[^0-9]/, '' ) );
	} );
} );