/**
 * ChapaWidgets
 * 
 * (c) Chapatiz S.A - 2010
 * 
 */

function ChapaWidgets() {

	this.partner_id = undefined;
	this.url = "";
	this.sig = "";
	this.psig = "";
	// ganga_id 0 means the user is not registred
	this.ganga_id = 0;
	this.pile = [];

	// environment
	this.env = 'test';

	// datas for registration
	this.pseudo = undefined;
	this.gender = 0;
	this.member_id = 0;

	// cache in cookies avatar designs
	// this.localCacheEnabled = true;
	this.init = function() {
		/**
		 * cleaning ganga_id
		 */
		if (this.ganga_id == 'NULL' || this.ganga_id == ''
				|| this.ganga_id <= 0 || this.ganga_id == 'false') {
			this.ganga_id = 0;
		}
		/**
		 * cleaning env & url
		 */
		if (this.env == 'local') {
			// local
			this.url = 'http://widgets.chapatiz/';
		} else if (this.env == 'prod') {
			// prod
			this.env = 'prod';
			this.url = 'http://widgets.chapatiz.com/';
		} else {
			// test
			this.url = 'http://widgets.pp.chapatiz.com/';
		}
		/**
		 * cleaning gender (in chapatiz, gender can be f,m or n)
		 */
		if(this.gender==0){
			this.gender = 'n';
		}
		if(this.gender==1){
			this.gender = 'm';
		}
		if(this.gender==2){
			this.gender = 'f';
		}
	};

	this.display = function(widget, divId, params) {

		this.init();

		/**
		 * request
		 */
		switch (widget) {
		/**
		 * private
		 */
		case 'closet':
		case 'shop':
		case 'pets':
		case 'refill':
			// build url with parameters
			// pseudo/email/gender/member_id are sent in case of registration
			var div = document.getElementById(divId);
			var req = this.url + "?partner_id=" + this.partner_id + "&psig="
					+ this.psig + "&widget=" + widget + "&ganga_id="
					+ this.ganga_id + "&member_id=" + this.member_id
					+ "&gender=" + this.gender + "&pseudo=" + this.pseudo
					+ "&email=" + this.email;
			if (widget == 'shop' && params != undefined
					&& params.shop != undefined) {
				// a special shop can be targeted
				req += "&shop=" + params.shop;
			}

			break;
		/**
		 * public
		 */
		case 'onsale':
		case 'credits':
		case 'pet':
		case 'avatar':
		case 'onsale':
			// call the service
			var div = document.getElementById(divId);
			var req = this.url + "?partner_id=" + this.partner_id + "&psig="
					+ this.psig + "&widget=" + widget + "&ganga_id="
					+ this.ganga_id;
			if (widget == 'avatar' || widget == 'pet') {
				if (params.ganga_id != undefined) {
					req += "&member_ganga_id=" + params.ganga_id;
				}
				if (params.member_id != undefined) {
					req += "&member_id=" + params.member_id;
				}
				req += "&size=" + params.size;
			}
			// }
			break;
		default:
			alert("unknown widget");
			break;
		}
		/**
		 * sizes
		 */
		overflow = 'hidden';
		switch (widget) {
		case 'avatar':
			if (params.size == 'small') {
				width = 100;
				height = 97;
				file = 'member_70px.swf';
			} else if (params.size == 'large') {
				width = 150;
				height = 180;
				file = 'fullMember.swf';
			} else if (params.size == 'big') {
				width = 270;
				height = 360;
				file = 'fullMember.swf';
			} else {
				// medium
				width = 120;
				height = 120;
				file = 'fullMember.swf';
			}
			break;
		case 'pet':
			if (params.size == 'small') {
				width = 45;
				height = 45;
			} else if (params.size == 'big') {
				width = 180;
				height = 200;
			} else {
				// medium
				width = 60;
				height = 100;
			}
			break;
		case 'credits':
			width = 160;
			height = 130;
			break;
		case 'closet':
		case 'pets':
			width = 468;
			height = 600;
			break;
		case 'refill':
			width = 665;
			height = 1400;
			overflow = 'auto';
			break;
		case 'shop':
			width = 660;
			height = 1400;
			overflow = 'auto';
			break;
		case 'onsale':
			width = 120;
			height = 600;
			break;

		}
		/**
		 * write iframe or stuff
		 */
		switch (widget) {
		case 'avatar':
			// display directly an avatar
			if (params.member_id != undefined) {
				// gender : undefined :0, boy: 1,girl: 2
				var boys_ad = [ "2779;0;2130;2131;0;0;0;0;0;0;2129;2733;0;0",
						"2779;2211;2216;111;0;0;0;0;0;0;2214;2733;3064;0",
						"2779;0;2637;2638;0;0;0;0;0;0;2636;2733;0;0",
						"2779;3057;3058;3060;0;0;0;0;0;0;2214;2733;3064;0" ];
				var girls_ad = [
						"2780;2647;2649;2650;0;0;0;0;0;0;2648;2733;3624;0",
						"2780;0;2121;2122;0;2123;0;0;0;0;2120;2733;0;0",
						"2780;2309;2310;765;0;2311;0;0;0;0;2308;2733;0;0",
						"2780;2718;2720;2721;0;0;0;0;0;0;2719;2733;0;0" ];
				if (params.gender == 2) {
					var ad = girls_ad[(params.member_id % 4)];
				} else if (params.gender == 12) {
					var ad = boys_ad[(params.member_id % 4)];
				} else {
					// gender is undefined so merge both arrays
					var ads = boys_ad.concat(girls_ad);
					var ad = ads[(params.member_id % 8)];
				}

				if (this.env == 'prod') {
					var url_swf = 'http://01static.chapatiz.com/swf/';
				} else {
					var url_swf = 'http://img.pp.chapatiz.com/swf/';
				}

				var avatar = new SWFObject(url_swf + file, 'avatar', width,
						height, '6', '#000000');
				avatar.addParam('wmode', 'transparent');
				avatar.addVariable('ad', ad);
				avatar.addVariable('m', 'normal');
				avatar.addVariable('url_swf', url_swf);
				// avatar.addVariable('fol','9497, ');
				avatar.write(divId);
				break;
			}

		default:
			div.innerHTML = ("<iframe src='"
					+ req
					+ "' scrolling='no' frameborder='0' style='border:none; overflow:"
					+ overflow + "; width:" + width + "px; height:" + height + "px;' allowTransparency='true'></iframe>");
			break;
		}
	};
/*
	this.getLocalData = function(ganga_id) {

		return true;
	};
*/
	/**
	 * Renders some elements stored in the pile
	 */
	this.render = function() {
		// date = new Date();
		// this.createCookie('test',date.toGMTString(),0.1);

		// alert(this.readCookie('test'));

		/*
		 * for ( el in this.pile ){ // }
		 * 
		 * var ganga_ids = '1,2,3,4'; // Call the service to get the avatar
		 * designs alert("calling : "+this.url+'json.php?ganga_ids='+ganga_ids);
		 * new Ajax.Request(this.url+'json.php?ganga_ids='+ganga_ids, {
		 * method:'get', onSuccess: function(transport){ json =
		 * transport.responseText.evalJSON(true);
		 * 
		 * alert( "res:"+ json.g1.pseudo); }, onFailure: function(){ alert('JSON
		 * service error'); } } );
		 * 
		 */
	};

	/**
	 * cookie stuff
	 */
	/*
	 * this.createCookie = function(name,value,days) { if (days) { var date =
	 * new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var
	 * expires = "; expires="+date.toGMTString(); } else var expires = "";
	 * document.cookie = name+"="+value+expires+"; path=/"; };
	 * 
	 * this.readCookie = function(name) { var nameEQ = name + "="; var ca =
	 * document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c =
	 * ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if
	 * (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); }
	 * return null; };
	 * 
	 * this.eraseCookie = function(name) { createCookie(name,"",-1); };
	 * 
	 * 
	 * this.isPrivate = function(widget){
	 * 
	 * switch(widget){ case 'closet' : case 'shop': case 'refill' : case 'pets' :
	 * return true; break; default : return false; } };
	 */

};
