document.write('<link rel="stylesheet" href="css/knxa-widget-global.css" type="text/css" />');
document.write('<scr' + 'ipt language="JavaScript" src="lib/jquery-1.3.2.min.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt language="JavaScript" src="lib/jquery-ui-1.7.1.custom.min.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt language="JavaScript" src="lib/jquery.scrollTo-min.js"></scr' + 'ipt>');

var content_path = 'content/';

var knxa_widget = {
    labels: {},
    page: {},
    lang: "default",
    tabs: [],
    jobs: [],
    ui: null
};

window.onload = init;

function init() {
    load_widget_data();
}

function load_widget_data() {
    var data_loaded = false; 
    var content_file_url = content_path + knxa_widget.lang + '.xml';
    $.ajax({
	beforeSend: function(XMLHttpRequest) {
	    $("#knxa-widget").html("Loading...");
	},
	complete: function(XMLHttpRequest, textStatus) {
	    if(data_loaded) {
		$("#knxa-widget").html(build_widget_html());
		activate();
	    }
	},
	dataType: "xml",
	error: function(XMLHttpRequest, textStatus, errorThrown) {
	    //alert(textStatus + ' ' + errorThrown);
	    load_widget_data();
	},
	success: function(data, textStatus) {
	    knxa_widget.tabs = new Array();
	    $('group', data).each(function(i) {
		var group = this;
		var new_items = new Array();
		$('image', group).each(function(k) {
		    var new_item = {
			image: $('src', this).text(),
			title: $('title', this).text(),
			link: $('link', this).text(),
			copy: $('copy', this).text()
		    };
		    new_items.push(new_item);
		});
		var new_tab = {
		    id: 'tabs-' + (i + 1),
		    label: $('name', group).text(),
		    current: 0,
		    mode: "display",
		    items: new_items
		};
		knxa_widget.tabs.push(new_tab);
	    });

	    knxa_widget.labels.fulllist = $('labels fulllist', data).text();
	    knxa_widget.labels.graphic = $('labels graphic', data).text();

	    knxa_widget.labels.caption = $('labels caption content', data).text();
	    knxa_widget.labels.counter = $('labels counter content', data).text();

	    knxa_widget.page.header = $('page header', data).text();
	    knxa_widget.page.content = $('page content', data).text();

	    data_loaded = true;
	},
	type: "GET",
	url: content_file_url
    });
}

function switch_locale(lang) {
    knxa_widget.lang = lang;
    load_widget_data();
}

function build_widget_html() {
    return '<!--<div class="knxa-lang">' + build_language_chooser_html() + '</div>--><div class="knxa-hdr">' + build_header_html() + '</div><div class="knxa-main"><div class="knxa-tabs">' + build_tabs_html() + '</div><div class="knxa-item"><div class="knxa-item-cnt">' + build_content_html() + '<div class="knxa-item-caption"></div></div></div></div><div class="knxa-ftr">' + build_footer_html() + '</div>' + build_image_preloader();
}

function build_language_chooser_html() {
    return '<div class="knxa-lang-chooser"><a class="uk" href="javascript:void(0);" title="UK"></a><a class="ru" href="javascript:void(0);" title="Russia"></a></div>';
}

function build_header_html() {
    return '<div><div><div><div class="knxa-hdr-cnt"><span>' + knxa_widget.page.header + '</span></div></div></div></div>'; 
}

function build_footer_html() {
    return '<div><div><div><div><div class="knxa-ftr-cnt"><a class="back" href="javascript:void(0);" title="' + knxa_widget.labels.graphic + '">&lt; ' + knxa_widget.labels.graphic + '</a><div class="knxa-ftr-lbl"></div><a class="list" href="javascript:void(0);" title="' + knxa_widget.labels.fulllist + '">' + knxa_widget.labels.fulllist + ' &gt;</a></div><div class="knxa-item-copy"></div></div></div></div></div>';
}

function build_tabs_html() {
    var tabs_html = '<ul>';
    for(var i = 0; i < knxa_widget.tabs.length; i++) {
	tabs_html += '<li';
	if(i == (knxa_widget.tabs.length - 1)) {
	    tabs_html += ' class="last"';
	}
	tabs_html += '><a href="#' + knxa_widget.tabs[i].id + '" title="' + knxa_widget.tabs[i].label + '"><div><div>' + knxa_widget.tabs[i].label + '</div></div></a></li>';
    }
    tabs_html += '</ul>';
    return tabs_html;
}

function build_title_html(title, linkURL) {
    return '<div class="knxa-title"><a class="prev" href="javascript:void(0);" title="Previous"></a><div class="knxa-title-cnt"><a href="' + linkURL + '" title="' + title + '" target="_blank">' + title + '</a></div><a class="next" href="javascript:void(0);" title="Next"></a></div>';
}

function build_content_html() {
    var content_html = "";
    for(var i = 0; i < knxa_widget.tabs.length; i++) {
	content_html += '<div id="' + knxa_widget.tabs[i].id + '"><div class="knxa-tab-hdr">' + build_title_html(knxa_widget.tabs[i].items[0].title, knxa_widget.tabs[i].items[0].link) + '</div><div class="knxa-tab-cnt"></div></div>';
    }
    return content_html;
}

function activate() {
    knxa_widget.ui = $('.knxa-tabs').tabs({
	select: function(event, ui) {
	    update_all_content(ui.index);
	}
    });
    $('.uk, .ru').click(function() {
	switch_locale($(this).attr('class'));
    });
    $('.next, .prev').click(function() {
	var item_class = $(this).attr('class');
	var tab = knxa_widget.ui.tabs('option', 'selected');
	
	if(item_class == 'prev') {
	    if(knxa_widget.tabs[tab].current >= 1) {
		knxa_widget.tabs[tab].current--;
	    } else {
		knxa_widget.tabs[tab].current = knxa_widget.tabs[tab].items.length - 1; 
	    }
	} else if(item_class == 'next') {
	    if(knxa_widget.tabs[tab].current <= (knxa_widget.tabs[tab].items.length - 2)) {
		knxa_widget.tabs[tab].current++;
	    } else {
		knxa_widget.tabs[tab].current = 0; 
	    }
	}
	update_all_content(tab);
    });
    $('.list, .back').click(function() {
	var new_mode = 'display';
	if($(this).attr('class') == 'list') {
	    new_mode = 'list';
	}
	var tab = knxa_widget.ui.tabs('option', 'selected');
	knxa_widget.tabs[tab].mode = new_mode;
	// $('.knxa-item-caption').stop().css("height", "8px");
	update_all_content(tab);
    });
    update_all_content(knxa_widget.ui.tabs('option', 'selected'));
}

function update_all_content(tab) {
    update_item_content(tab);
    update_footer_content(tab);
}

function update_item_content(tab) {
    if(knxa_widget.tabs[tab].mode == "display") {
	//$('#' + knxa_widget.tabs[tab].id + ' .knxa-tab-hdr, .knxa-tab-cnt, .knxa-item-caption, .knxa-item-copy').show();
	$('#' + knxa_widget.tabs[tab].id + ' .knxa-tab-hdr, .knxa-tab-cnt, .knxa-item-copy').show();
	$('#' + knxa_widget.tabs[tab].id + ' .knxa-tab-hdr .knxa-title-cnt').html('<a href="' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].link + '" title="' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '" target="_blank">' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '</a>');
	$('.knxa-tab-cnt ul').hide();
	$('.knxa-tab-cnt').fadeOut("slow", function() {
	    $(this).html('<a href="' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].link + '" title="" target="_blank"><img class="knxa-graphic" src="content/' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].image + '" alt="" width="420" height="150" /></a>').fadeIn("slow", function() { 
		/*
		$('.knxa-graphic, .knxa-item-caption').mouseover(function() {
		    $('.knxa-item-caption').stop().animate({height: "30px"}, 750);
		}).mouseout(function() {
		    $('.knxa-item-caption').stop().animate({height: "8px"}, 750);
		});
                */
   	    });
	});
	//$('.knxa-item-caption').html('<a href="' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].link + '" title="' + knxa_widget.labels.caption + ' ' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '" target="_blank">' + knxa_widget.labels.caption + ' ' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '</a>');
    } else if(knxa_widget.tabs[tab].mode == "list") {
	//$('#' + knxa_widget.tabs[tab].id + ' .knxa-tab-hdr, .knxa-tab-cnt, .knxa-item-caption, .knxa-item-copy').hide();
	$('#' + knxa_widget.tabs[tab].id + ' .knxa-tab-hdr, .knxa-tab-cnt, .knxa-item-copy').hide();
	var output = '<div class="knxa-list"><div class="knxa-list-cnt"><ul>';
	for(var i = 0; i < knxa_widget.tabs[tab].items.length; i++) {
	    var css_class = "odd";
	    if(i % 2 == 0) {
		css_class = "even";
	    }
	    output += '<li class="' + css_class + '"><a href="' + knxa_widget.tabs[tab].items[i].link + '" title="' + knxa_widget.tabs[tab].items[i].title + '" target="_blank"><div><div>' + knxa_widget.tabs[tab].items[i].title + '</div></div></a></li>';
	}
	output += '</ul></div><div class="knxa-scroll"><a class="up" href="javascript:void(0);" title="Up""></a><a class="down" href="javascript:void(0);" title="Down"></a></div></div>';
	$('.knxa-tab-cnt').fadeOut("slow", function() {
	    $(this).html(output).fadeIn("slow", function() { 
		$('.knxa-tab-cnt .down').mouseover(function() {
		    $('.knxa-list-cnt').scrollTo("+=25px", 500, {
			onAfter: function() {
			    $('.knxa-list .down').trigger("mouseover");
			},
			axis: 'y'
		    });
		}).mouseout(function() {
		    $('.knxa-list-cnt').stop();
		});
		$('.knxa-tab-cnt .up').mouseover(function() {
		    $('.knxa-list-cnt').scrollTo("-=25px", 500, {
			onAfter: function() {
			    $('.knxa-list .up').trigger("mouseover");
			},
			axis: 'y'
		    });
		}).mouseout(function() {
		    $('.knxa-list-cnt').stop();
		});
	    });
	});
    }
    $('.knxa-item-copy').html(knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].copy + '<p><a href="' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].link + '" title="' + knxa_widget.labels.caption + ' ' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '" target="_blank">' + knxa_widget.labels.caption + ' ' + knxa_widget.tabs[tab].items[knxa_widget.tabs[tab].current].title + '</a></p>');
}

function update_footer_content(tab) {
    $('.knxa-ftr-lbl').html('');
    $('.knxa-ftr-cnt .back, .knxa-ftr-cnt .list').hide();
    if(knxa_widget.tabs[tab].mode == "display") {
	$('.knxa-ftr-lbl').html((knxa_widget.tabs[tab].current + 1) + ' ' + knxa_widget.labels.counter  + ' ' + knxa_widget.tabs[tab].items.length);
	$('.knxa-ftr-cnt .list').show();
    } else if(knxa_widget.tabs[tab].mode == "list") {
	$('.knxa-ftr-cnt .back').show();
    }
}

function build_image_preloader() {
    var images = ['img/OffTabLeftOver.png', 
		  'img/OffTabRightOver.png', 
		  'img/OffTabRepeatOver.png'];

    for(var x = 0; x < knxa_widget.tabs.length; x++) {
	for(var y = 0; y < knxa_widget.tabs[x].items.length; y++) {
	    images.push("content/" + knxa_widget.tabs[x].items[y].image);
	}
    }

    var output = "";

    for(var i = 0; i < images.length; i++) {
	output += '<img src="' + images[i] + '" alt="" />'; 
    }
    output = '<div style="display: none;">' + output + '</div>';

    return output;
}