/**
 * Eva Avatar
 * @author Jon Ege Ronnenberg (logicLAB) (1.x)
 * @author Fini Alring (Deducta) (2.x)
 * @version 2.0
 */
//Configuration
var avatarConfig = {
	url: 'http://telia.dk/service/proxyreq/eva/xmleva.jsp',
        //url: 'js/json/eva_1_json.js',
	flashPath: 'http://static.telia.dk/flash/eva/',
        imgPath: 'http://static.telia.dk/09_facelift/gfx/'
}; 
jQuery(function($){
	
jQuery.namespace("Telia.Avatar.AppData");
	Telia.Avatar.showAnswer = function(data, success){
		
		dataorig = data;
		data = data.savedreply.reply;		
		//var sxhr = this.xhr();
		jQuery("#eva-result").slideUp("normal");
		jQuery("#eva-result").queue(function(){
			jQuery(this).empty();
			var answer = data.answer;
			var question;
			if (data.officialQuestion) {
				question = data.officialQuestion;
			} else if (dataorig.questionText && dataorig.questionText[0]) {
				question = dataorig.questionText[0];
			} else {
				question = '';
			}
			jQuery(this).data("id", data.statementId);
			jQuery(this).append("<p><strong>" + question + "</strong></p>");
			jQuery(this).append("<p>" + answer + "</p>");
			if (data.links) {
				var tmpString = "<ul style='border-top: 1px dashed #666666;'>";
				for (var link in data.links.link) {
					if(data.links.link[link].pushType === 22){
						tmpString += "<li><a rel='external' href='" +
							data.links.link[link].url +
							"'>" +
							data.links.link[link].titleText +
							"</a></li>";	
					} else {
						tmpString += "<li><a href='" +
							data.links.link[link].url +
							"'>" +
							data.links.link[link].titleText +
							"</a></li>";
					}
				}
				tmpString += "</ul>";
				jQuery(this).append(tmpString);
			}
			
			if (typeof data.statements != 'undefined' && typeof data.statements.string != 'undefined') {
				if (data.statements.string.length != 1) {
					// there is more than one extra question. The first one is already displayed - data format sucks
					var tmpString = "<p>Mente du:</p>";
					tmpString += "<ul>";
					var answers = new Dictionary();
					var normalizedId;
					for (var i = 1; i < data.statements.string.length; i++) {
						normalizedId = typeof data.statementIds.int != 'undefined' ? data.statementIds.int[i] : data.statementIds[0].int[i];
						tmpString += "<li><a href='#' id='q" +
							normalizedId +
							"'>" +
							data.statements.string[i] +
							"</a></li>";
						answers.add("q" + normalizedId, data.statements.string[i]);
					}
					tmpString += "</ul>";
					jQuery(this).append(tmpString);
					
					// save the questions in memory - the jQuery.data method seems to conflict with Mootools
					Telia.Avatar.AppData.answers = answers;
					// attach click events to the links
					jQuery("#eva-result li a[id]").click(function(e){
						e.preventDefault();
						/*	DEBUG 
						console.log(this.id);
						console.log(Telia.Avatar.AppData.answers.item(this.id));
						*/
						jQuery("#question").val(Telia.Avatar.AppData.answers.item(this.id));
						$.getJSON(avatarConfig.url, $("#eva form").serialize(), Telia.Avatar.showAnswer);
					});
				}
			}
			jQuery(this).dequeue();
			// slide down to fit the image/flash
			//jQuery("#eva-avatar").animate({ height:162, queue: false });
			//apply external links before shown
			applyExternalLinks();
			// remove old flash embed
			//jQuery("#eva-avatar").html("");
			// change flash file
			var path = avatarConfig.flashPath + data.image.name;
                        jQuery("#eva-avatar").css("background-image", "url(" + avatarConfig.imgPath + "eva/img_eva_big_smile.png)");
                        setTimeout('jQuery("#eva-avatar").css("background-image", "url(" + avatarConfig.imgPath + "eva/img_eva_little_smile.png)")', 3000);
                        setTimeout('jQuery("#eva-avatar").css("background-image", "url(" + avatarConfig.imgPath + "eva/img_eva_smile.png)")', 5000);

			//jQuery("#eva-avatar").html(

                           /* insertImage(
                                    {
                                            src: path,
                                            height: 150,
                                            width: 180,
                                            data: path,
                                            image: {
                                                    alt: 'Spørg Eva',
                                                    src: 'gfx/eva/' + 'img_eva_big_smile' + '.png'
                                            }
                                    }
                            ) */
                        /*    insertFlash(
                                    {
                                            src: path,
                                            height: 150,
                                            width: 180,
                                            data: path,
                                            params: [
                                                    { name: 'wmode', value:'transparent' },
                                                    { name: 'movie', value: path }
                                            ],
                                            image: {
                                                    alt: 'Spørg Eva',
                                                    src: 'http://static.telia.dk/flash/eva/fallbacks/' + data.image.name.match(/.*[^.swf]/) + ".png"
                                            },
                                            cssClass: 'max'
                                    },
                                    { update: false }
                            ) */
                        //);

			jQuery("#eva-result").slideDown("normal");
			jQuery("#button_ask").attr("disabled", "");
			jQuery("#question").select();
		});
	};
	/**
	 * Set all links with the attribute rel=external to open in a new window (or tab)
	 */
	function applyExternalLinks() {

		jQuery("a[rel=external]").click(function(e){
			this.target = "_blank";
		});
	}
/*
	function insertFlash(htmlOptions){
        var objTag = '<object type="application/x-shockwave-flash"' +
        	' data="' + htmlOptions.data + '" width="' + htmlOptions.width +
			'" height="' + htmlOptions.height + '" class="' + htmlOptions.cssClass + '">';
        for (var i = 0; i < htmlOptions.params.length; i++) {
            objTag += '<param name="' + htmlOptions.params[i].name + '" value="' + htmlOptions.params[i].value + '"/>';
        }
        objTag += '<img src="' + htmlOptions.image.src + '" width="' + htmlOptions.width + '" height="' + htmlOptions.width + '" alt="' + htmlOptions.image.alt + '" />';
		objTag += '</object>';
		return objTag;
	}
*/


	function insertImage(htmlOptions) {


            //var objTag = '<img src="' + htmlOptions.image.src + '" Xwidth="' + htmlOptions.width + '" Xheight="' + htmlOptions.height + '" alt="' + htmlOptions.image.alt + '" />';
            //return objTag;
	}

	// attach submit handler (main)
	jQuery("#eva form").submit(function(e) {

		e.preventDefault();

                jQuery("#eva-avatar").css("background-image", "url(" + avatarConfig.imgPath + "eva/img_eva_little_smile.png)");

		jQuery("#button_ask").attr("disabled", "disabled");
		
		jQuery.ajax({
			data: jQuery("#eva form").serialize(),
			dataType: 'json',
			error: function(xhr, status, err){
				//jQuery("#eva-avatar").html("<img src='http://static.telia.dk/images/eva/eva_error.png' alt='Eva har i øjeblikket tekniske problemer' />");
                                jQuery("#eva-avatar").css("background-image", "url(" + avatarConfig.imgPath + "eva/eva_error.png)");
                                jQuery("#button_ask").attr("disabled", "");
			},
			success: Telia.Avatar.showAnswer,
			url: avatarConfig.url
		});
	});
});