 /**
 * arena/common.js
 *
 * Dependencies
 * - YUI
 *
 * @author Royston Olivera (royo_2004) <royston.olivera@xoriant.com>
 **/


YAHOO.namespace('gaia.app.Arena');
YAHOO.gaia.app.Arena.Common = function() {
    this._settings = null;
    this._ajaxRequest= null;
   
}
var url1;
var action_url;
YAHOO.gaia.app.Arena.Common.prototype.init = function(settings) {
	  this._settings = {
	  	//variables for thumbnail drop down
		 avatardroplink : YAHOO.util.Dom.get(settings.avatardroplink),
		 avatardropdiv : YAHOO.util.Dom.get(settings.avatardropdiv),
		 profileLink : settings.profileLink,
		 galleryLink : settings.galleryLink,
		 msgLink : settings.msgLink,
		 wlcurstate: settings.wlcurstate,
		 wlrm: settings.wlrm,
		 wladd: settings.wladd,
		 wlimg: settings.wlimg,
		 
		 //variables for share drop down
		 
		
		 sharedroplink : YAHOO.util.Dom.get(settings.sharedroplink),
		 sharedropdiv : YAHOO.util.Dom.get(settings.sharedropdiv),
		 shareURL : settings.shareURL,
		 errordiv : settings.sherrordiv,
		 shareactionURL : settings.shareactionURL
		 
		
		 
		 
		 
	};
	url1 = this._settings.shareURL;
	action_url = this._settings.shareactionURL;
	YAHOO.util.Event.addListener(this._settings.avatardroplink, "click", this._makeDropDown,this,true);
	YAHOO.util.Event.addListener(this._settings.sharedroplink, "click", this._makeShareDropDown,this,true);
	
	
}

YAHOO.gaia.app.Arena.Common.prototype._collapseShareDropDown = function(e,elem_id) {
	//alert("test");
	document.getElementById('favError').innerHTML = "";
	var elem = new YAHOO.util.Element(YAHOO.util.Dom.get('sharedrop'));
	elem.setStyle('display', 'none');
	YAHOO.util.Event.removeListener(YAHOO.util.Dom.get('shareLink'), "click");
	YAHOO.util.Event.addListener(YAHOO.util.Dom.get('shareLink'), "click", YAHOO.gaia.app.Arena.Common.prototype._displayShareDropDown,this,true);
}

YAHOO.gaia.app.Arena.Common.prototype._displayShareDropDown = function(e,elem_id) {
	var elem = new YAHOO.util.Element(YAHOO.util.Dom.get('sharedrop'));
	elem.setStyle('display', 'block');
	elem.setStyle('opacity',1);
	YAHOO.util.Event.removeListener(YAHOO.util.Dom.get('shareLink'), "click");
	YAHOO.util.Event.addListener(YAHOO.util.Dom.get('shareLink'), "click",YAHOO.gaia.app.Arena.Common.prototype._collapseShareDropDown,this,true);
}

YAHOO.gaia.app.Arena.Common.prototype._makeShareDropDown = function(e,elem_id) {
	//alert("test3");
	
	YAHOO.util.Event.removeListener(YAHOO.util.Dom.get('shareLink'), "click");
	YAHOO.util.Event.addListener(YAHOO.util.Dom.get('shareLink'), "click", YAHOO.gaia.app.Arena.Common.prototype._collapseShareDropDown,this,true);
	YAHOO.util.Dom.get('sharedrop').innerHTML = "";
	var elem = new YAHOO.util.Element(YAHOO.util.Dom.get('sharedrop'));
	elem.setStyle('display', 'block');
	elem.setStyle('z-index',51);
	elem.setStyle('opacity',1);
	var share_div = document.createElement('div');
	share_div.id = "shareContainer";
	var contstyle = new YAHOO.util.Element(share_div);
	contstyle.setStyle('text-align', 'left');  
	YAHOO.util.Dom.get('sharedrop').appendChild(share_div);
	var share_form = document.createElement('form');
	share_form.setAttribute('name','shareForm');
	share_form.setAttribute('id','share_form');
	share_form.setAttribute('method','POST');
	share_form.setAttribute('action','#');
	share_div.appendChild(share_form);
	var fieldset1 = document.createElement('fieldset');
	var fstyle = new YAHOO.util.Element(fieldset1);
	fstyle.setStyle('margin-bottom', '5px');
	share_form.appendChild(fieldset1);
	var label1 = document.createElement('label');
	fieldset1.appendChild(label1);
	var txt1 = 'Copy and paste this link to IMs, email, or forums:';
	var txt1node = document.createTextNode(txt1);
	label1.appendChild(txt1node);
	var input1 = document.createElement('input');
	input1.id="send_url";
	input1.name = "url";
	input1.type = "text";
	input1.value = url1;
	input1.setAttribute('onClick','this.select()');
	input1.readOnly= true; 
	//input1.onclick="alert('trest');";  
	fieldset1.appendChild(input1);  
	
	var errDiv = document.createElement('div');
	errDiv.id = "error_message";
	share_form.appendChild(errDiv);
	YAHOO.util.Dom.addClass(errDiv, 'shareErrorMessage');
	var errstyle = new YAHOO.util.Element(errDiv);
	errstyle.setStyle('padding', '0px 0px 0px 0px');
	
	
	var fieldset2 = document.createElement('fieldset');
	share_form.appendChild(fieldset2);
	var fstyle2 = new YAHOO.util.Element(fieldset2);
	fstyle2.setStyle('margin-top', '10px');
	fstyle2.setStyle('float', 'left');
	var label2 = document.createElement('label');
	fieldset2.appendChild(label2);
	var txt2 = 'Send PM(enter username)';
	var txt2node = document.createTextNode(txt2);
	label2.appendChild(txt2node);
	var input2 = document.createElement('input');
	input2.id="send_to";
	input2.type = "text";
	fieldset2.appendChild(input2); 
	
	var button1 = document.createElement('a');
	YAHOO.util.Dom.addClass(button1, 'info_button');
	var span1 = document.createElement('span');
	YAHOO.util.Dom.addClass(span1, 'button_cap');
	var txtNode = document.createTextNode('&nbsp;');
	span1.appendChild(txtNode);
	button1.appendChild(span1);
	var span2 = document.createElement('span');
	YAHOO.util.Dom.addClass(span2, 'button_text');
	button1.appendChild(span2);
	var sendtext = 'Send';
	var sendtxtNode = document.createTextNode(sendtext);
	span2.appendChild(sendtxtNode);
	share_form.appendChild(button1);

	YAHOO.util.Event.addListener(button1, "click", YAHOO.gaia.app.Arena.Common.prototype._doAjaxSendMessage,this,true);
	
	var button2 = document.createElement('a');
	YAHOO.util.Dom.addClass(button2, 'info_button');
	var span1 = document.createElement('span');
	YAHOO.util.Dom.addClass(span1, 'button_cap');
	var txtNode = document.createTextNode('&nbsp;');
	span1.appendChild(txtNode);
	button2.appendChild(span1);
	var span2 = document.createElement('span');
	YAHOO.util.Dom.addClass(span2, 'button_text');
	button2.appendChild(span2);
	var canceltext = 'Cancel';
	var cantxtNode = document.createTextNode(canceltext);
	span2.appendChild(cantxtNode);
	share_form.appendChild(button2);
	
	YAHOO.util.Event.addListener(button2, "click", YAHOO.gaia.app.Arena.Common.prototype._collapseShareDropDown,this,true);
	
	
	  
}

YAHOO.gaia.app.Arena.Common.prototype._doAjaxSendMessage = function(e, elem_id){
	
	//send the request to the vote.action page over here  
  	YAHOO.util.Event.preventDefault(e);

	var callback = {

        success:function(o) { 
        	YAHOO.gaia.app.Arena.Common.prototype._handleShareSuccess(o);
        },
    	failure:function(o) {
            YAHOO.gaia.app.Arena.Common.prototype._reportShareError(o);
        },
        scope: this

    };
    

    var formObject = document.getElementById('share_form');
   
   YAHOO.util.Connect.setForm(formObject); 
    
    var form_action =action_url;
    form_action += '&send_to=';
    form_action += document.getElementById('send_to').value;
   
  
  this._ajaxRequest = YAHOO.util.Connect.asyncRequest('POST',form_action,callback);
	
	
}

YAHOO.gaia.app.Arena.Common.prototype._handleShareSuccess = function(o) {
	
		YAHOO.util.Event.removeListener(YAHOO.util.Dom.get('shareLink'), "click");
	 var response = eval("(" + o.responseText + ")");
	 if(response.response == 1){
	 	
	 	document.getElementById('favError').innerHTML = "";
	 	document.getElementById('shareContainer').innerHTML = "";
		var errstyle = new YAHOO.util.Element(document.getElementById('shareContainer'));
		errstyle.setStyle('text-align', 'center');
	 	document.getElementById('shareContainer').innerHTML = "Message Sent Successfully";
	 	//this._fadeIn(document.getElementById('sharedrop'),1);
	 	var test = this;
		
		var attributes = {
			
		opacity: { from:1,to: 0 } 
		};
		var anim = new YAHOO.util.Anim(document.getElementById('sharedrop'),attributes,1);
		anim.onComplete.subscribe(YAHOO.gaia.app.Arena.Common.prototype._addList);
		anim.animate();  
			 	
	 }else{
	 	var errstyle = new YAHOO.util.Element(document.getElementById('error_message'));
		errstyle.setStyle('display', 'block');
		errstyle.setStyle('opacity', '1');
	 	document.getElementById('error_message').innerHTML = response.error;
		setTimeout(YAHOO.gaia.app.Arena.Common.prototype._fadeerror,3000);
		setTimeout(YAHOO.gaia.app.Arena.Common.prototype._hideerror,5000);
		
	 }
		   	
    	
}

YAHOO.gaia.app.Arena.Common.prototype._hideerror = function(){
	var errstyle = new YAHOO.util.Element(document.getElementById('error_message'));
	errstyle.setStyle('display', 'none');
}


YAHOO.gaia.app.Arena.Common.prototype._fadeerror = function(){
	var duration = 2;
	var el = document.getElementById('error_message');	
	var attributes = {
			
		opacity: { from:1,to: 0 }
	};
	var anim = new YAHOO.util.Anim(el,attributes,duration);
	anim.animate();  
	
}



YAHOO.gaia.app.Arena.Common.prototype._fadeIn = function(el,duration){
		
	var attributes = {
			
		opacity: { from:1,to: 0 } 
	};
	var anim = new YAHOO.util.Anim(el,attributes,duration);
	anim.onComplete.subscribe(this._addList);
	anim.animate();  
}
YAHOO.gaia.app.Arena.Common.prototype._addList = function(elem_id) {
	
	YAHOO.util.Event.addListener(YAHOO.util.Dom.get('shareLink'), "click", YAHOO.gaia.app.Arena.Common.prototype._makeShareDropDown,elem_id,true);
	
}

YAHOO.gaia.app.Arena.Common.prototype._reportShareError = function(o) {
	//alert("Failed");
}



YAHOO.gaia.app.Arena.Common.prototype._collapseDropDown = function(e,elem_id) {
	//alert("test");
	var elem = new YAHOO.util.Element(this._settings.avatardropdiv);
	elem.setStyle('z-index', -1);
	YAHOO.util.Event.removeListener(this._settings.avatardroplink, "click");
	YAHOO.util.Event.addListener(this._settings.avatardroplink, "click", this._displayDropDown,this,true);
}
YAHOO.gaia.app.Arena.Common.prototype._displayDropDown = function(e,elem_id) {
	var elem = new YAHOO.util.Element(this._settings.avatardropdiv);
	elem.setStyle('z-index', 2);
	
	YAHOO.util.Event.removeListener(this._settings.avatardroplink, "click");
	YAHOO.util.Event.addListener(this._settings.avatardroplink, "click", this._collapseDropDown,this,true);
}
YAHOO.gaia.app.Arena.Common.prototype._makeDropDown = function(e,elem_id) {
	YAHOO.util.Event.removeListener(this._settings.avatardroplink, "click");
	YAHOO.util.Event.addListener(this._settings.avatardroplink, "click", this._collapseDropDown,this,true);
	var drop_div = document.createElement('div');
	drop_div.id = "dropContainer";
	/*var elem = new YAHOO.util.Element(drop_div);
	elem.setStyle('opacity', 0);
	YAHOO.util.Event.addListener(drop_div, "mouseover", this._collapseDropDown,drop_div,true);*/
	/*var elem = new YAHOO.util.Element(drop_div);
	elem.setStyle('border', '1px solid #dcdee3');*/
	/*elem.setStyle('z-index', 2);*/
	
	var drop_list = document.createElement('ul');
	drop_list.id = "dropContainerList";
	drop_div.appendChild(drop_list);
	
	var elem_1 = document.createElement('li');
	drop_list.appendChild(elem_1);
	var div_1 = document.createElement('div');
	var div_1style = new YAHOO.util.Element(div_1);
	div_1style.setStyle('padding', '0px 5px 0px 5px')
	elem_1.appendChild(div_1);
	var link_1 = document.createElement('a');
	link_1.href = this._settings.profileLink;
	div_1.appendChild(link_1);
	var txt = '- View Profile';
  	var txtNode = document.createTextNode(txt);
  	link_1.appendChild(txtNode);
  	
  	var elem_2 = document.createElement('li');
	drop_list.appendChild(elem_2);
	var div_2 = document.createElement('div');
	var div_2style = new YAHOO.util.Element(div_2);
	div_2style.setStyle('padding', '0px 5px 0px 5px')
	elem_2.appendChild(div_2);
	var link_2 = document.createElement('a');
	link_2.href = this._settings.galleryLink;
	div_2.appendChild(link_2);
	var txt = '- View Gallery';
  	var txtNode = document.createTextNode(txt);
  	link_2.appendChild(txtNode);
  	
  	var elem_3 = document.createElement('li');
	drop_list.appendChild(elem_3);
	var div_3 = document.createElement('div');
	var div_3style = new YAHOO.util.Element(div_3);
	div_3style.setStyle('padding', '0px 5px 0px 5px')
	div_3.id = "wlContainer";
	elem_3.appendChild(div_3);
	/*var link_3 = document.createElement('a');
	link_3.href = "#";
	div_3.appendChild(link_3);
	var txt = '- Add to Watchlist';
  	var txtNode = document.createTextNode(txt);
  	link_3.appendChild(txtNode);
  	*/
  	
  	
		
  
  	
  	var elem_4 = document.createElement('li');
	drop_list.appendChild(elem_4);
	var div_4 = document.createElement('div');
	var div_4style = new YAHOO.util.Element(div_4);
	div_4style.setStyle('padding', '0px 5px 0px 5px')
	elem_4.appendChild(div_4);
	
	var link_4 = document.createElement('a');
	link_4.href = this._settings.msgLink;
	div_4.appendChild(link_4);
	var txt = '- Send Private Message';
  	var txtNode = document.createTextNode(txt);
  	link_4.appendChild(txtNode);
  	
  	this._settings.avatardropdiv.appendChild(drop_div);
  	initFavorite(
			{
				wlerrordiv: 'favError',
				wlsigninerr: 'Please sign in to access this feature.',
				wlajaxerr: 'Please try again after sometime.',
				wldiv: document.getElementById('wlContainer'),
				wlcurstate: this._settings.wlcurstate,
				wlrm: this._settings.wlrm,
				wladd: this._settings.wladd,
				
				rmText: '- Remove from Idols',
				addText: '- Become a Fan'
			}
		);
}

function initCommon(settings) {
	
    Common = new YAHOO.gaia.app.Arena.Common();
    Common.init(settings);
	
}

