if(!window.Controller)
{
	window.Controller = {};
}


dojo.require("dojo.widget.*");
dojo.require("dojo.lfx.*");
dojo.require("dojo.event.*");
dojo.require("dojo.html.*");

Controller.actions = {};

Controller.actions.login = 
{
	type:"dwr",
		
	arguments:
	["userlogin_email", "userlogin_password", "userlogin_autologin"],
	
	validators:
	[dojo.validate.isEmailAddress, dojo.validate.isText, undefined],

	error_messages:
	["Enter Email", "Enter Password", ""],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.login,

	dwr_callback:
	function(user)
	{  			
		if(user != null)
		{
	  		if(!user.error)
			{
				Controller.executeAction("closeFloatingForm");
				if(user.message != "")
				{
					document.cookie = "wanelopp=" + user.message;
					var date = new Date();
					date.setTime(date.getTime() + 31536000000);
					document.cookie = "wanelopp=" + user.message + ";expires=" + date.toGMTString();	
					
				}
				window.location.reload();		
			}
			else
			{
				var passwordfield = ActionCommons.getElement("userlogin_password");
				if(passwordfield != null)
				{
					passwordfield.value = "";
				}
				
				throw user.message;
	  		}
	  	}
		else
		{
			throw "login error";
		}	
	}
};

Controller.actions.keepalive = 
{
	type:"dwr",
		
	dwr_handler:
	AdministrationHandler.keepAlive,

	dwr_callback:
	function()
	{  			
		
	}
};

Controller.actions.register = 
{
	type:"dwr",
		
	arguments:
	["registration_email", "registration_password", "registration_confirmpassword", "registration_dispname"],
	
	validators:
	[dojo.validate.isEmailAddress, dojo.validate.isText, dojo.validate.isText, dojo.validate.isText],
	
	error_messages:
	["Enter Email", "Enter Password", "Confirm Password", "Display Name"],

	validator:
	function(args)
	{
		if(dojo.string.trim(args[1]) != dojo.string.trim(args[2]))
		{
			throw "Password Mismatch";
		}
	},
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.register,
	
	dwr_callback:
	function(message)
	{		  			    
	  	if(message == null)
		{
			//ActionCommons.refreshDojoDiv("floating_form", "registrationsuccess.action");
			executeAction('closeFloatingForm');
			var loc = window.location;	
			loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=registrationsuccess";			
			//Controller.executeAction("showSubContent",  "registrationsuccess.action", true);
	  	}
		else
		{
	    	throw message;
	  	}
	}
};

Controller.actions.sendPassword = 
{
	type:"dwr",
		
	arguments:
	["sendpassword_email"],
	
	validators:
	[dojo.validate.isEmailAddress],
	
	error_messages:
	["Enter Email"],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.sendPassword,
	
	dwr_callback:
	function(message)
	{		  			    
	  	if(message != null)
		{
	    	throw message;
	  	}
	}
};

Controller.actions.logout = 
{
	type:"dwr",
			
	dwr_handler:
	AdministrationHandler.logout,
	
	dwr_callback:
	function()
	{
		var date = new Date();
		date.setTime(date.getTime() - 1);
		document.cookie = "wanelopp=;expires=" + date.toGMTString();	
		window.location.reload();		  			    
	}
};

Controller.actions.sortCollection =
{
	type:"js",
	
	js_handler:
	function(url)
	{
		var sel = ActionCommons.getElement("sortcollection");
		var sort = sel.options[sel.selectedIndex].value;
		url += "&sortingBy=" + sort;
		ActionCommons.refreshDojoDiv("mycollectionhome_listcollections", url, true);
	}
}

Controller.actions.resultperpagefr =
{
	type:"js",
	
	js_handler:
	function(div, url, elementId, textId)
	{
		var sel = ActionCommons.getElement(elementId);
		var number = sel.options[sel.selectedIndex].value;
		var numbertxt = ActionCommons.getElement(textId);
		numbertxt.value = number;
		ActionCommons.executeSearchfr(div, url);
	}
}

Controller.actions.searchViewChangedFr=
{
	type:"js",
	
	js_handler:
	function(div,url,elementId)
	{
		var sel = ActionCommons.getElement(elementId);
		var view = sel.options[sel.selectedIndex].value;
		var strView = "LIST";
		if(parseInt(view) == 1){
			strView = "GRID";
		}
		executeAction('searchviewfr', div, url, strView);
	}
}

Controller.actions.searchsortingfr =
{
	type:"js",
	
	js_handler:
	function(div,url,sorting)
	{
		var sortingtxt = ActionCommons.getElement("sorting_txt_fr");
		
		if(sortingtxt.value == "")
		{
			sortingtxt.value = 3;
		}

		var link = ActionCommons.getElement("sort_fr_" + sortingtxt.value);
		link.className = "";
		link.href = "javascript:executeAction('searchsortingfr','" + div + "','" + url + "'," + sortingtxt.value + ")";

		sortingtxt.value = sorting;
		
		var link = ActionCommons.getElement("sort_fr_" + sorting);
		link.className = "current_sortlink";
		link.href = "javascript:void(0)";

		ActionCommons.executeSearchfr(div, url.replace("+&+","+%26+"));
	}
}

Controller.actions.searchviewfr =
{
	type:"js",
	
	js_handler:
	function(div,url,view)
	{
		var viewtxt = ActionCommons.getElement("view_txt_fr");
		viewtxt.value = view;
		ActionCommons.executeSearchfr(div, url.replace("+&+","+%26+"));
		if(view=="GRID")
		{
			//ActionCommons.hideDiv("gridview_div_fr");
			//ActionCommons.showDiv("listview_div_fr");
			//ActionCommons.hideDiv("resultscount_select_fr_list");
			//ActionCommons.showDiv("resultscount_select_fr_grid");
		}
		else
		{
			//ActionCommons.hideDiv("listview_div_fr");
			//ActionCommons.showDiv("gridview_div_fr");
			//ActionCommons.hideDiv("resultscount_select_fr_grid");
			//ActionCommons.showDiv("resultscount_select_fr_list");
		}
	}
}

Controller.actions.searchpricefr=
{
	type:"js",
	
	js_handler:
	function(div,url)
	{
		ActionCommons.executeSearchfr(div, url);
	}
}

Controller.actions.resultperpageall=
{
	type:"js",
	
	js_handler:
	function(div,url,elementId,textId)
	{
		var sel = ActionCommons.getElement(elementId);
		var number = sel.options[sel.selectedIndex].value;
		var numbertxt = ActionCommons.getElement(textId);
		numbertxt.value=number;
		ActionCommons.executeSearchall(div, url);
	}
}

Controller.actions.searchViewChanged=
{
	type:"js",
	
	js_handler:
	function(div,url,elementId)
	{
		var sel = ActionCommons.getElement(elementId);
		var view = sel.options[sel.selectedIndex].value;
		var strView = "LIST";
		if(parseInt(view) == 1){
			strView = "GRID";
		}
		executeAction('searchviewall', div, url, strView);
	}
}

Controller.actions.sortproducts=
{
	type:"js",
	
	js_handler:
	function(div,url)
	{
		var sortingtxt = ActionCommons.getElement("sorting_txt_all");
		if(sortingtxt.value == "")
		{
			sortingtxt.value = 3;
		}
		var ddl = ActionCommons.getElement("ddlsortproducts");
		var sorting = ddl.options[ddl.selectedIndex].value;
		sortingtxt.value = sorting;
		ActionCommons.executeSearchall(div, url.replace("+&+","+%26+"));
	}
}

Controller.actions.filterbysupertagids_all=
{
	type:"js",
	
	js_handler:
	function(div,url, supertagtypeid, pagetype)
	{
		//changed on Dec 7, 2009 to include supertagtypeid in the query string
		var element;
		if(!pagetype || pagetype == 'undefined') {
			element  =  document.getElementById('superTagTypeIds_all');
		}else {
			element  =  document.getElementById('superTagTypeIds_fr');
		}
		
		if(element){
			if(element.value.length > 0){
				element.value = element.value + ',' ;
			}
			element.value = element.value + supertagtypeid;
			url += "&superTagTypeIds=" + element.value + "&sorting=3";
			ActionCommons.refreshDojoDiv(div, url.replace("+&+","+%26+"), true);
			return;
		}
		
		var sortingtxt = ActionCommons.getElement("sorting_txt_all");
		if(sortingtxt.value == "")
		{
			sortingtxt.value = 3;
		}
		var ddl = ActionCommons.getElement("ddlsortproducts");
		var sorting = ddl.options[ddl.selectedIndex].value;
		sortingtxt.value = sorting;
		ActionCommons.executeSearchall(div, url.replace("+&+","+%26+"));
	}
}

Controller.actions.showallsupertagsdiv=
{
	type:"js",
	
	js_handler:
	function(divId)
	{
		if(document.currentSuperTagDivId){
			if(document.getElementById(document.currentSuperTagDivId))
				ActionCommons.hideDiv(document.currentSuperTagDivId);
		}
		ActionCommons.showDiv(divId);
		document.currentSuperTagDivId = divId;
	}
}

Controller.actions.hideallsupertagsdiv=
{
	type:"js",
	
	js_handler:
	function(divId)
	{
		if(document.getElementById(divId))
			ActionCommons.hideDiv(divId);
		
		document.currentSuperTagDivId = null;
	}
}

Controller.actions.unselectsupertag=
{
	type:"js",
	
	js_handler:
	function(div, url, superTagId, pagetype)
	{
		//changed on Dec 7, 2009 to include supertagtypeid in the query string
		var element;
		if(!pagetype || pagetype == 'undefined') {
			element  =  document.getElementById('superTagTypeIds_all');
		}else {
			element  =  document.getElementById('superTagTypeIds_fr');
		}
		if(element){
			if(element.value.length > 0){
				var ar = element.value.split(",");
				var i = 0;
				var len = ar.length;
				if(ar[len - 1] == ""){
					len--;
				}
				for(i; i < len; i++){
					var fld = ar[i];
					if(parseInt(fld) == parseInt(superTagId)){
						ar.splice(i, 1);
						break;
					}
				}
				element.value = ar.join(',');
			}
			url += "&superTagTypeIds=" + element.value + "&sorting=3";
			ActionCommons.refreshDojoDiv(div, url.replace("+&+","+%26+"), true);
			return;
		}
		
	}
}
Controller.actions.searchsortingall=
{
	type:"js",
	
	js_handler:
	function(div,url,sorting)
	{
		var sortingtxt = ActionCommons.getElement("sorting_txt_all");
		
		if(sortingtxt.value == "")
		{
			sortingtxt.value = 3;
		}

		var link = ActionCommons.getElement("sort_all_" + sortingtxt.value);
		link.className = "";
		link.href = "javascript:executeAction('searchsortingall','" + div + "','" + url + "'," + sortingtxt.value + ")";

		sortingtxt.value = sorting;
		
		var link = ActionCommons.getElement("sort_all_" + sorting);
		link.className = "current_sortlink";
		link.href = "javascript:void(0)";
		
		ActionCommons.executeSearchall(div, url.replace("+&+","+%26+"));
	}
}

Controller.actions.searchviewall=
{
	type:"js",
	
	js_handler:
	function(div,url,view)
	{
		var viewtxt = ActionCommons.getElement("view_txt_all");
		viewtxt.value=view;
		ActionCommons.executeSearchall(div, url.replace("+&+","+%26+"));
		if(view=="GRID"){
			//ActionCommons.hideDiv("gridview_div_all");
			//ActionCommons.showDiv("listview_div_all");
			//ActionCommons.hideDiv("resultscount_select_all_list");
			//ActionCommons.showDiv("resultscount_select_all_grid");
		}else{
			//ActionCommons.hideDiv("listview_div_all");
			//ActionCommons.showDiv("gridview_div_all");
			//ActionCommons.hideDiv("resultscount_select_all_grid");
			//ActionCommons.showDiv("resultscount_select_all_list");
		}
	}
}
Controller.actions.searchpriceall=
{
	type:"js",
	
	js_handler:
	function(div,url)
	{
		ActionCommons.executeSearchall(div, url, true);
	}
}

Controller.actions.searchonlyreviewall=
{
	type:"js",
	
	js_handler:
	function(div,url,elementId)
	{
		var reviewcheckbox = ActionCommons.getElement("chk_reviewed");
		var reviewtxt = ActionCommons.getElement("onlyreview_txt_all");
		reviewtxt.value=reviewcheckbox.checked;
		ActionCommons.executeSearchall(div, url, true);
	}
}
Controller.actions.sortProduct=
{
	type:"js",
	
	js_handler:
	function(url)
	{
		var sel = ActionCommons.getElement("sortcollectionproducts");
		var sort = sel.options[sel.selectedIndex].value;
		url += "&sortingBy=" + sort;
		ActionCommons.refreshDojoDiv("collection_products", url, true);
	}
}

Controller.actions.showLoginbarForm = 
{
	type:"js",
			
	js_handler:
	function(url)
	{
		Controller.executeAction("showFloatingForm", url, undefined, "0.39em", "4.92em");
		if(url.indexOf('userlogin') >= 0){
			setTimeout ( "setFocusOnLoginForm()", 2000 );
		}
	}
}

Controller.actions.showFloatingFormRelative = 
{
	type:"js",
			
	js_handler:
	function(url, unescapeAMP)
	{
		var djevent = Controller.dojoEvent;
		var main = ActionCommons.getElement("main");
		
		var x = djevent.pageX - main.offsetLeft;
		var y = djevent.pageY - main.offsetTop;
		
		if(x + 424 > main.clientWidth)
		{
			x = main.clientWidth - 424;
		}

		if(y + 424 > main.clientHeight)
		{
			y = main.clientHeight - 424;
		}

		Controller.executeAction("showFloatingForm", url, x + "px", undefined, y + "px", undefined, unescapeAMP);		
	}
};

Controller.actions.showFloatingForm = 
{
	type:"js",
			
	js_handler:
	function(url, left, right, top, bottom, unescapeAMP)
	{
		var div = ActionCommons.getElement("floating_form");
		var style = div.style;
		style.left = style.right = style.top = style.bottom = "";
		if(left != undefined)
		{
			style.left = left;
		}
		
		if(right != undefined)
		{
			style.right = right;
		}

		if(top != undefined)
		{
			style.top = top;
		}
		
		if(bottom != undefined)
		{
			style.bottom = bottom;			
		}
		
		ActionCommons.showDiv("floating_form");
		ActionCommons.refreshDojoDiv("floating_form", url, unescapeAMP);
	}
};

Controller.actions.closeFloatingForm = 
{
	type:"js",
			
	js_handler:
	function()
	{
		ActionCommons.hideDiv("floating_form", true);
	}
};

Controller.actions.showSubContent = 
{
	type:"js",
	
	js_handler:
	function(url, unescapeAMP, unescape)
	{
		ActionCommons.refreshDojoDiv("contentarea_content", url, unescapeAMP, unescape);	
	}
};

Controller.actions.refreshDIVById = 
{
	type:"js",
	
	js_handler:
	function(divId, url, unescapeAMP, unescape)
	{
		ActionCommons.refreshDojoDiv(divId, url, unescapeAMP, unescape);	
	}
};

Controller.actions.upload = 
{
	type:"js",
	
	js_handler:
	function()
	{
		ActionCommons.showDiv("upload_progress");
		ActionCommons.hideDiv("upload_form");
		window.setTimeout("Controller.executeAction('refreshProgress')", 1000);
	}
};

Controller.actions.refreshProgress = 
{
	type:"dwr",

	dwr_handler:
	UploadMonitor.getUploadInfo,
	
	error_target:
	"upload_progress_text",
	
	dwr_callback:
	function(uploadInfo)
	{
		if(uploadInfo.complete)
		{
			if(uploadInfo.error)
			{
				throw uploadInfo.error;
			}
			else
			{
				var refresh = ActionCommons.getElement("upload_refresh");
				if(refresh.value != "")
				{
					if(refresh.value == "page")
					{
						window.location.reload();
						return;
					}
					ActionCommons.refreshDojoDiv(refresh.value);				
				}

				var resultFile = ActionCommons.getElement("upload_result_file");
				if(resultFile.value != "")
				{
					var target =  ActionCommons.getElement(resultFile.value);
					target.value = uploadInfo.fileName;
				}

				var sourceFile = ActionCommons.getElement("upload_source_file");
				if(sourceFile.value != "")
				{
					var target =  ActionCommons.getElement(sourceFile.value);
					var file = ActionCommons.getElement("upload_file");
					target.value = file.value;
				}

				Controller.executeAction("closeFloatingForm");				
			}
		}
	
		var fill = ActionCommons.getElement("upload_progress_bar_fill");
		var bar = ActionCommons.getElement("upload_progress_bar");			
				  			    
		var progress = uploadInfo.percent;
			
		var text = ActionCommons.getElement("upload_progress_text");		
		fill.style.width = progress + "%";
		text.innerHTML = "upload in progress: " + progress + "%";

		window.setTimeout("Controller.executeAction('refreshProgress')", 1000);		
	}	
};

Controller.actions.addCollection = 
{
	type:"dwr",
		
	arguments:
	["addcollection_title", "addcollection_desc"], 
	
	validators:
	[dojo.validate.isText, validateCollectionText],
	
	error_messages:
	["Enter Collection Title", "Please limit the description to 255 characters."],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	CollectionHandler.addCollection,
	
	dwr_callback:
	function(collection)
	{
		if(collection != null)
		{
	  		if(!collection.error)
			{
				var temp=ActionCommons.getElement("camefrom").value;
				if(temp==1){
					Controller.executeAction("closeFloatingForm");
					//alert(collection.productCollectionId);
					var element = ActionCommons.getElement("productcollectionid");
					if(element)
					{
						var opt = new Option(collection.collectionName, collection.productCollectionId, false, true);
						element.options.add(opt);
					}
					//ActionCommons.refreshDojoDiv("selectcollection_div");
				}else if (temp==2) {
					var element = ActionCommons.getElement("collectionId");
					if(element)
					{
						var opt = new Option(collection.collectionName, collection.productCollectionId, false, true);
						element.options.add(opt);
					}
					document.getElementById('div_addcollection_title').style.display = 'none'; 
				}else{
					Controller.executeAction("closeFloatingForm");
					//changed to goto collection detail page on 9/9/9
					//window.location.reload();
					var loc = window.location;
					loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=listcollectiondetails&id=" + collection.productCollectionId + "&userId=" + collection.user.userId;
				}
			}
			else
			{
				throw collection.message;
	  		}
	  	}
		else
		{
			throw "unable to create a new collection";
		}
	}
};

Controller.actions.addComment = 
{
	type:"dwr",
		
	arguments:
	["review_id", "comment_text"], 
	
	validators:
	[undefined, dojo.validate.isText],
	
	error_messages:
	[undefined, "Enter Comment"],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	ReviewHandler.addComment,
	
	dwr_callback:
	function(message)
	{
		Controller.executeAction("closeFloatingForm");
		ActionCommons.refreshDojoDiv("productreviewhome_reviewcomments");
	}
};

Controller.actions.editCollection = 
{
	type:"dwr",
		
	arguments:
	["editcollection_id","editcollection_title", "editcollection_desc"], 
	
	validators:
	[dojo.validate.isText,dojo.validate.isText, validateCollectionText],
	
	error_messages:
	["Invalid Id","Enter Collection Title", "Please limit the description to 255 characters."],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	CollectionHandler.editCollection,
	
	dwr_callback:
	function(collection)
	{
		if(collection != null)
		{
	  		if(!collection.error)
			{
				Controller.executeAction("closeFloatingForm");
				var loc = window.location;	
				loc.href = loc.protocol + "//" + loc.host + loc.pathname + loc.search + "&status=1";				
			}
			else
			{
				throw collection.message;
	  		}
	  	}
		else
		{
			throw "unable to edit the collection";
		}
	}
};

Controller.actions.addProductToCollection = 
{
	type:"dwr",
		
	arguments:
	["product_id","collectionId","review_text","hdn_rating", "addproduct_tags"], 
	
	validators:
	[undefined,undefined, validateReviewText, validateAddProductToCollection, undefined],
	
	error_messages:
	["","", "Enter Review Text", "Enter Review Rating", ""],
	
	error_target:
	"floating_form_err_txt",


	dwr_handler:
	ProductHandler.addProductToCollection,
	
	dwr_callback:
	function(product)
	{
		if(product != null)
		{
	  		if(!product.error)
			{

				//added by sarvjeet on august 30, 2009 to hide add review button, if
				//adding to product has also added the review too.
				var reviewText = "";
				if(document.getElementById('review_text')){
					reviewText = ActionCommons.getElement("review_text").value;
				}

				//added by sarvjeet on Oct 19, 2009 to refresh the page, if review or tags have been added
				//and the user is on product details page
				if(ActionCommons.getElement("savediv_id").value == ""){
					if( (dojo.string.trim(reviewText)).length > 0 || (dojo.string.trim(document.getElementById('addproduct_tags').value)).length > 0){
						window.location.reload();
					}
				}




				if( (dojo.string.trim(reviewText)).length > 0){
					if(document.getElementById("productdetail_addreview")){
						ActionCommons.hideDiv("productdetail_addreview");
					}
					if(document.getElementById("review_section")){
						ActionCommons.hideDiv("review_section");
					}
				}
				//var temp=ActionCommons.getElement("savediv_id").value;
				ActionCommons.getElement("floating_form_err_txt").innerHTML =  "Product has been added to your collection.";
				//Controller.executeAction("closeFloatingForm");
				//ActionCommons.hideDiv("savetomyproduct"+temp);
				//ActionCommons.showDiv("savedtomyproduct"+temp);
				delayOverlayClose("Your product has been saved. Feels pretty good, doesn't it?");
			}
			else
			{
				throw product.message;
	  		}
	  	}
		else
		{
			throw "unable to add product to the collection";
		}
	}
};

Controller.actions.showDeleteConfirmation = 
{
	type:"js",
	
	js_handler:
	function()
	{
		var ret = confirm('Do you really want to delete this collection?');
		if(ret){
			Controller.executeAction("deleteCollection");
		}
	}
};

Controller.actions.deleteCollection = 
{
	type:"dwr",
	
	authenticate:true,
		
	arguments:
	["collection_id"], 
	
	dwr_handler:
	CollectionHandler.deleteCollectionsById,
	
	dwr_callback:
	function(collection)
	{
		var userid = dwr.util.getValue('user_id');
		var loc = window.location;	
		loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=mycollectionshome&userId=" + userid;
	}
};

Controller.actions.rateReview = 
{
	type:"dwr",
		
	arguments:
	["review_id"], 
	
	dwr_handler:
	ReviewHandler.rateReview,
	
	dwr_callback:
	function(message)
	{		
		window.location.reload();
		//ActionCommons.refreshDojoDiv("productreviewhome_reviewdetail");
	}
};

Controller.actions.saveMessage = 
{
	type:"dwr",
		
	arguments:
	["sm_hdn_previousmessageid", "sm_hdn_messagetype","sm_hdn_userid_to", "sm_hdn_messagestatus", "sm_hdn_messagetitle", "sendmessage_body"], 
	
	validators:
	[undefined, dojo.validate.isText,dojo.validate.isText, dojo.validate.isText, dojo.validate.isText,dojo.validate.isText],
	
	error_messages:
	["", "Invalid Message Type","Enter Message Recipient", "Invalid Message Status", "Invalid Message Title", "Invalid Message Content"],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	MessageHandler.addMessage,
	
	dwr_callback:
	function(message)
	{
		if(message != null)
		{
	  		if(!message.error)
			{
				ActionCommons.showDiv("sm_success_msg");
				ActionCommons.hideDiv("sm_form");
				ActionCommons.hideDiv("floating_form_header");
				//var element = document.getElementById("sm_hdn_previousmessageid");
				//if(element){
					//if(element.value.length > 0){
						window.location.reload();
					//}
				//}
				
			}			else
			{
			throw message.message;
	  		}
	  	}
		else
		{
			throw "unable to send the message";
		}
	}
};

Controller.actions.addReview = 
{
	type:"dwr",
		
	arguments:
	["product_id","collectionId","review_text","hdn_rating","addreview_saveornot0", "addproduct_tags"], 
	
	validators:
	[undefined, undefined, dojo.validate.isText,isReviewRated,undefined, undefined],
	
	error_messages:
	["", "", "Enter Review Text", "Enter Review Rating", "", ""],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	ProductHandler.addReview,
	
	dwr_callback:
	function(message)
	{
		dwr.util.setValue("floating_form_err_txt", "");
				  			    
	  	if(message != "")
		{
	    	throw message;
	  	}
		
		var temp=ActionCommons.getElement("reviewdiv_id").value;
		if(temp==-2){
			var userid = ActionCommons.getElement("userId").value;
			var collectionId = ActionCommons.getElement("collectionId").value;
			var collectionname = ActionCommons.getElement("collection_name").value;
			var success = ActionCommons.getElement("success").value;
			var loc = window.location;	
			loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=listcollectiondetails&id=" + collectionId + "&userId=" + userid + "&success=" + success;			
		}else{
			var productId =  ActionCommons.getElement("product_id").value;
			Controller.executeAction("closeFloatingForm");		
			if(temp==-1){
				var loc = window.location;	
				loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=productdetails&productId=" + productId;			
				//window.location.reload();
			}else{
				ActionCommons.refreshDojoDiv("all_listing_main");
			}
		}
	}
};

Controller.actions.editReview = 
{
	type:"dwr",
		
	arguments:
	["reviewid","review_text","hdn_rating", "hdn_previousrating"], 
	
	validators:
	[undefined, dojo.validate.isText,undefined, undefined],
	
	error_messages:
	["", "Enter Review Text", "", ""],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	ProductHandler.editReview,
	
	dwr_callback:
	function(message)
	{
		dwr.util.setValue("floating_form_err_txt", "");
				  			    
	  	if(message != "")
		{
	    	throw message;
	  	}else {
	  		//alert ("The review has been updated.");
			var temp=ActionCommons.getElement("reviewdiv_id").value;
			if(temp==-2){
				var userid = ActionCommons.getElement("userId").value;
				var productId = ActionCommons.getElement("productId").value;
				var reviewid = ActionCommons.getElement("reviewid").value;
				var loc = window.location;	
				Controller.executeAction("closeFloatingForm");
				loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=productreviewhome&productId=" + productId + "&userId=" + userid + "&reviewId=" + reviewid;			
			}else if (temp == -1){
				var userid = ActionCommons.getElement("userId").value;
				var loc = window.location;	
				Controller.executeAction("closeFloatingForm");
				loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=userproductreviews&userId=" + userid;			
			}else {
				window.location.reload();
			}	  		
	  		
	  	}
		
		/*
		var temp=ActionCommons.getElement("reviewdiv_id").value;
		if(temp==-2){
			var userid = ActionCommons.getElement("userId").value;
			var collectionId = ActionCommons.getElement("collectionId").value;
			var collectionname = ActionCommons.getElement("collection_name").value;
			var success = ActionCommons.getElement("success").value;
			var loc = window.location;	
			loc.href = loc.protocol + "//" + loc.host + loc.pathname + "?contentaction=listcollectiondetails&id=" + collectionId + "&userId=" + userid + "&success=" + success;			
		}else{
			Controller.executeAction("closeFloatingForm");		
			if(temp==-1){
				window.location.reload();
			}else{
				ActionCommons.refreshDojoDiv("all_listing_main");
			}
		}
		*/
	}
};


Controller.actions.updateInvite = 
{
	type:"dwr",
		
	dwr_handler:
	MessageHandler.setMessageStatus,
	
	dwr_callback:
	function(message)
	{
	  	if(message.error)
		{
	    	throw message.message;
	  	}else{
			//hack put in by sarvjeet
			var div = dojo.widget.byId("userhomepage_friendalerts");
			var url = "recentpendinginvites.action?callingpage=1&userId=";
			url += message.to.userId;
			if(!div){
				div = dojo.widget.byId("contentarea_content");
				div.href = url;
				ActionCommons.refreshDojoDiv("contentarea_content");
			}else {
				ActionCommons.refreshDojoDiv("userhomepage_friendalerts");
			}
			
			var temp = document.getElementById("alert_success_msg");
			if(message.messageStatus.text == 'accept'){
				
				if(temp)temp.innerHTML = "<span>"+message.from.userName + " has been added to your friend list.</span>";
				
			}else {
			
				if(temp)temp.innerHTML = "";
			}
			//section added to update alertcount on the login bar
			var alertCount = message.message;
			
			if(message.message){
				var val = parseInt(message.message);
				if(val > 0){
					var element = document.getElementById("alertCount");
					if(element){
						element.innerHTML = "(" + val + "alerts)";
					}
				}else {
					var element = document.getElementById("alertCount");
					if(element){
						element.parentNode.removeChild(element);
					}
				}
				
			}
	  	}
	  	
	}
};

Controller.actions.submitSearchForm = 
{
	type:"js",
	
	js_handler:
	function(frm, txt, stat)
	{
		if(!ActionCommons.validateSearchForm(frm, txt, stat))
		{
			throw "Enter Search String";
		}

		document[frm].submit();	
	}
};

Controller.actions.submitAddProductForm = 
{
	type:"js",
	
	js_handler:
	function(frm, txt, stat)
	{
		if(ActionCommons.validateAddProductForm(frm, txt, stat) == true)
		{
			document[frm].submit();
		}
	}
};

Controller.actions.edituserprofile = 
{
	type:"dwr",
		
	arguments:
	["user_name","user_realname","user_email","user_shoppingFav","user_storesFav1","user_storesFav2","user_storesFav3","user_storesFav4","user_storesFav5","user_storesFav6","user_interests","user_location","user_aboutme","user_MySpace","user_Facebook","user_YouTube","user_Twitter","user_blog","user_bussiness","user_other"],
	
	validators:
	[dojo.validate.isText,"",dojo.validate.isEmailAddress,validateShoppingFavoritesText,undefined,undefined,undefined,undefined,undefined,undefined,validateInterestsText,undefined,validateAboutMeText,checkValidUrl,checkValidUrl,checkValidUrl,checkValidUrl,checkValidUrl,checkValidUrl,checkValidUrl],

	error_messages:
	["Enter name","","Enter Email","Valid Shopping","","","","","","","Invalid Interests","", "Valid AboutMe","Valid Url","Valid Url","Valid Url","Valid Url","Valid Url","Valid Url","Valid Url"],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.editUser,

	dwr_callback:
	function(user)
	{  			
		if(user != null)
		{
	  		if(!user.error)
			{
				throw "profile edit successful";
			}
			else
			{
				throw user.message;
	  		}
	  	}
		else
		{
			throw "login error.";
		}	
	}
};

Controller.actions.changepassword = 
{
	type:"dwr",
		
	arguments:
	["user_id", "old_password","new_password","confirm_password"],
	
	validators:
	[undefined,dojo.validate.isText,dojo.validate.isText, dojo.validate.isText],
	
	validator:
	function(args)
	{
		if(dojo.string.trim(args[2]) != dojo.string.trim(args[3]))
		{
			throw "Password Mismatch";
		}
	},
	
	error_messages:
	["","Enter old password","Enter new password", "Confirm Password"],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.changePassword,

	dwr_callback:
	function(message)
	{  			
		if(message == null)
		{
	  		
				Controller.executeAction("closeFloatingForm");
		}
		else
		{
			throw message;
		}	
	}
};

Controller.actions.sendInvite = 
{
	type:"dwr",
		
	arguments:
	["invite_user_email", "email_txtbx","invite_body"],
	
	validators:
	[undefined,dojo.validate.isText,dojo.validate.isText],

	error_messages:
	["","Enter email addresses","Enter Email", "","","",""],
	
	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.editUser,

	dwr_callback:
	function(user)
	{  			
		if(user != null)
		{
	  		if(!user.error)
			{
				throw "profile edit successful";
			}
			else
			{
				throw user.message;
	  		}
	  	}
		else
		{
			throw "login error.";
		}	
	}
};

Controller.actions.sendInvitation = 
{
	type:"dwr",
		
	arguments:
	["email_txtbx", "invite_body"],
	
	validators:
	[dojo.validate.isEmailAddress, undefined],
	
	error_messages:
	["Enter valid Email(s)", ""],

	error_target:
	"floating_form_err_txt",
	
	dwr_handler:
	AdministrationHandler.sendInvite,
	
	dwr_callback:
	function(message)
	{		  			    
	  	
	  	if(message)
	  	{
	  		var element;
	  		//element = document.getElementById("sm_success_msg");
	  		
	  		//if(element)
	  		//{
	  		//	element.innerHTML = message;
	  		//}
	  		element = document.getElementById("email_txtbx");
	  		if(element)
	  		{
	  			element.value = "";
	  		}
	  		element = document.getElementById("floating_form_err_txt");
	  		if(element)
	  		{
	  			element.innerHTML = message;
	  		}
	  	}
	  	//commented by sarvjeet on aug 12, 2008
	  	//throw message;
	}
};

Controller.actions.sendInvitationDirect = 
{
	type:"dwr",
	
	authenticate:true,
		
	dwr_handler:
	MessageHandler.sendInvite,
	
	dwr_callback:
	function(message)
	{		
		if(message == "")
		{  			    
	  		ActionCommons.refreshDojoDiv("usercontactslist_div");
	  	}
	}
};

Controller.actions.addtofriend = 
{
	type:"dwr",
		
	authenticate:true,
		
	dwr_handler:
	MessageHandler.addToFriend,
	
	dwr_callback:
	function(message)
	{
		if(message==null){  			    
	  		ActionCommons.refreshDojoDiv("usercontactslist_div");
	  	}
	}
};

Controller.actions.addselectedfriend = 
{
	type:"dwr",
		
	authenticate:true,
		
	dwr_handler:
	MessageHandler.addSelectedFriend,
	
	dwr_callback:
	function(message)
	{
		if(message==""){
			Controller.executeAction("showFloatingForm", "addfriendconfirmation.action", undefined);
		}
	}
};

Controller.actions.addallfriend = 
{
	type:"js",
	
	js_handler:
	function(selected)
	{
		var totalUser = ActionCommons.getElement("totalUser").value;
		var args = new Array();
		for(var i=0;i<totalUser;i++){
			var checkbox=ActionCommons.getElement("chk_"+i);
			if(selected){
				if(checkbox.checked){
					var userid=checkbox.value;
					args.push(userid);
				}
			}else{
				checkbox.checked=true;
				var userid=checkbox.value;
				args.push(userid);
			}
		}	
		Controller.executeAction("addselectedfriend",args);
	}
};

Controller.actions.authenticate = 
{
	type:"dwr",
		
	dwr_handler:
	AdministrationHandler.isSessionActive,
	
	dwr_callback:
	function(user)
	{	
		if(Controller.execActionArgs != undefined)
		{
			if(user.message == "")
			{
				Controller.executeAction.apply(Controller, Controller.execActionArgs);	
			}
			else
			{
				Controller.execActionArgs = undefined;
				Controller.executeAction("showLoginbarForm", "userlogin.action");
			}
		}
	}
};
/*
Controller.actions.addProductViaUrl = 
{
	type:"dwr",
		
	arguments:
	["addproduct_title", "addproduct_desc","addproduct_price","choosephoto_hidden","addproduct_photo_hidden","collectionId","product_url", "categoryId", "addproduct_tags"], 
	
	validators:
	[dojo.validate.isText, undefined,dojo.validate.isText,  undefined, undefined, undefined, undefined, dojo.validate.isText, dojo.validate.isText],
	
	error_messages:
	["Enter Product Name", "Enter Product Description","Enter Product Minimum Price","","","","", "Please select a category", "Please enter tags separated by comma"],
	
	error_target:
	"addproduct_err_text",
	
	dwr_handler:
	ProductHandler.addProductViaUrl,
	
	dwr_callback:
	function(product)
	{
		if(product.error)
		{
	    	throw product.message;
	  	}else{
	  		var collection=ActionCommons.getElement("collectionId");
	  		var collectionId=collection.options[collection.selectedIndex].value;
	  		var collectionName=collection.options[collection.selectedIndex].text;
	  		Controller.executeAction("showSubContent",  "addproductreview.action?productid="+product.productId+"&amp;product="+product.productName+"&amp;collectionId="+collectionId+"&amp;collectionName="+collectionName, true);
	  	}
	}
};

*/


Controller.actions.addProductAndReviewViaUrl = 
{
	type:"dwr",
		
	arguments:
	["productTitle", "productDescription","price","choosePhoto","uploadPhoto","collectionId","productUrl", "categoryId", "tags", "reviewText", "reviewRating", "noReview", "productId"], 
	
	error_target:
	"err_text",
	
	dwr_handler:
	ProductHandler.addProductAndReviewViaUrl,
	
	dwr_callback:
	function(product)
	{
		if(product.error)
		{
	    	var anc = document.getElementById('btnSaveTop');
	    	if(anc){
	    		anc.innerHTML = 'Failed.';
	    	}
	    	anc = document.getElementById('btnSaveBottom');
	    	if(anc){
	    		anc.innerHTML = 'Failed.';
	    	}
	    	throw product.message;
	  	}else{
	  		var element = document.getElementById("productId");
	  		if(element) {
	  			var productId = parseInt(element.value);
	  			if(productId > 0) {
	  				var loc = window.location;	
	  				var url = '?contentaction=productdetails&productId=' + productId + '&p1=0';
					loc.href = loc.protocol + "//" + loc.host + loc.pathname +  url; 
	  			}else {
			  		var collectionId = document.getElementById("collectionId").value;
			  		var userId = document.getElementById("userId").value;
			  		Controller.executeAction("showSubContent",  "listcollectiondetails.action?success=1&amp;id=" + collectionId + "&amp;userId=" + userId + "&mymenu=yes", true);
	  			}
	  		}
	  		else {
		  		var collectionId = document.getElementById("collectionId").value;
		  		var userId = document.getElementById("userId").value;
		  		Controller.executeAction("showSubContent",  "listcollectiondetails.action?success=1&amp;id=" + collectionId + "&amp;userId=" + userId + "&mymenu=yes", true);
	  		}
	  	}
	}
};


Controller.actions.showReviewPage = 
{
	type:"js",
		
	arguments:
	["addproduct_title", "addproduct_desc","addproduct_price","choosephoto_hidden","addproduct_photo_hidden","collectionId","product_url", "categoryId", "addproduct_tags"], 
	
	validators:
	[dojo.validate.isText, dojo.validate.isText, checkProductPrice,  undefined, undefined, undefined, undefined, dojo.validate.isText, undefined],
	
	error_messages:
	["Enter Product Name", "Enter Product Description","Enter Product Minimum Price","","","","", "Please select a category", "Please enter tags separated by comma"],
	
	error_target:
	"addproduct_err_text",
	
	js_handler:
	function()
	{
  		//var f = { maxlength:1000};
  		
  		//if(!dojo.validate.isText(document.getElementById('addproduct_desc').value, f)){
  		//	document.getElementById('addproduct_err_text').innerHTML = "Please reduce the product description to 1000 characters";
  		//	return;
  		//}
  		if(!dojo.validate.isText(document.getElementById('choosephoto_hidden').value) && !dojo.validate.isText(document.getElementById('addproduct_photo_hidden').value)){
  			document.getElementById('addproduct_err_text').innerHTML = "Wanelo requires one photo for product display.";
  			return;
  		}
  		
  		
  		
  		var collection=ActionCommons.getElement("productcollectionid");
  		var collectionId=collection.options[collection.selectedIndex].value;
  		var collectionName=collection.options[collection.selectedIndex].text;
  		var cat = ActionCommons.getElement("category");
  		var topCategoryId = cat.options[cat.selectedIndex].value;


  		//added by sarvjeet on august 27 to submit the form
  		
  		document.getElementById('productTitle').value = document.getElementById("addproduct_title").value;
  		document.getElementById('productDescription').value = document.getElementById("addproduct_desc").value;
  		document.getElementById('collectionId').value = collectionId;
		document.getElementById('collectionName').value = collectionName;
		document.getElementById('topCategoryId').value = topCategoryId;
		document.getElementById('price').value = document.getElementById("addproduct_price").value;
		
		document.getElementById('choosePhoto').value = document.getElementById("choosephoto_hidden").value;
		document.getElementById('uploadPhoto').value = document.getElementById("addproduct_photo_hidden").value;
		document.getElementById('photoName').value = document.getElementById("addproduct_photo").value;
		document.getElementById('productUrl').value = document.getElementById("product_url").value;
		document.getElementById('tags').value = document.getElementById("addproduct_tags").value;
		
  		var frm = document.getElementById("addproductreview");
  		frm.action = "index.action";
  		frm.method = "post";
  		frm.submit();

		
		return;
  		var url = "addproductreview.action?";
  		url = url + "product=" + escape(document.getElementById("addproduct_title").value) ;
  		url = url + "&amp;productDescription=" + escape(document.getElementById("addproduct_desc").value.replace("\n","<br/>"));
  		url = url + "&amp;collectionId=" + collectionId;
  		url = url + "&amp;collectionName=" + collectionName;
  		url = url + "&amp;categoryId=" + document.getElementById("categoryId").value;
  		url = url + "&amp;topCategoryId=" + topCategoryId;
  		url = url + "&amp;imageUrls=" + escape(document.getElementById("imageUrls").value);
  		url = url + "&amp;price=" + document.getElementById("addproduct_price").value;
  		url = url + "&amp;choosePhoto=" + document.getElementById("choosephoto_hidden").value;
  		url = url + "&amp;uploadPhoto=" + document.getElementById("addproduct_photo_hidden").value;
  		url = url + "&amp;photoName=" + document.getElementById("addproduct_photo").value;
  		url = url + "&amp;productUrl=" + escape(document.getElementById("product_url").value);
  		url = url + "&amp;tags=" + document.getElementById("addproduct_tags").value;
  		url = url + "&amp;reviewText=" + escape(document.getElementById("reviewText").value);
  		url = url + "&amp;reviewRating=" + document.getElementById("reviewRating").value;
  		url = url + "&amp;noReview=" + document.getElementById("noReview").value;
  		Controller.executeAction("showSubContent",  url, true);
	}
};

Controller.actions.productPreview = 
{
	type:"js",
		
	js_handler:
	function()
	{
  		var noReview = document.getElementById("addreview_saveornot0").value;
  		var reviewText = document.getElementById("review_text").value;
  		if(noReview != 'true'){
  			var tempRating = document.getElementById('hdn_rating');
  			if(tempRating){
  				if(tempRating.value == "" > 0 || parseInt(tempRating.value) <= 0){
  					Controller.showMessage("Enter Review Rating", "addreview_err_text");
  					return false;
  				}
  			}
  			var f = {maxlength:8000}
  			if(!dojo.validate.isText(reviewText, f)){
  				Controller.showMessage("Enter Review Text", "addreview_err_text");
  				return false;
  			}
  			
  		}
  		
  		var frm = document.getElementById("productpreview");
  		frm.action = "index.action";
  		frm.method = "post";
  		document.getElementById('reviewText').value = document.getElementById("review_text").value;
  		document.getElementById('reviewRating').value = document.getElementById("hdn_rating").value;
  		document.getElementById('noReview').value = document.getElementById("addreview_saveornot0").value;
  		
  		frm.submit();
  		return;
  		/*
		var frm = dojo.byId("productpreview");
		var targetDiv = dojo.byId("contentarea_content");
		var result = new dojo.io.FormBind(
		    {
		    	mimetype: "text/html",
		    	target:targetDiv,
		    	url: "productpreview.action",
		    	formNode: frm,
		    	load: function(type, data, evt){
		     		target.innerHTML = data;
		     	},
		     	error: function(t, e) {alert(e);}
		     	
	    	}
	    );
	    return;
	    */
  		var url = "productpreview.action?";
  		url = url + "productTitle=" + escape(document.getElementById("product").value) ;
  		url = url + "&amp;productDescription=" + escape(document.getElementById("productDescription").value) ;
  		url = url + "&amp;collectionId=" + document.getElementById("collectionId").value ;
  		url = url + "&amp;categoryId=" + document.getElementById("categoryId").value;
  		url = url + "&amp;topCategoryId=" + document.getElementById("topCategoryId").value;
  		url = url + "&amp;imageUrls=" + escape(document.getElementById("imageUrls").value);;
  		url = url + "&amp;price=" + document.getElementById("price").value;
  		url = url + "&amp;choosePhoto=" + document.getElementById("choosePhoto").value;
  		url = url + "&amp;uploadPhoto=" + document.getElementById("uploadPhoto").value;
  		url = url + "&amp;photoName=" + document.getElementById("photoName").value;
  		url = url + "&amp;productUrl=" + escape(document.getElementById("productUrl").value);
  		url = url + "&amp;tags=" + document.getElementById("tags").value;
  		url = url + "&amp;reviewText=" + escape(document.getElementById("review_text").value);
  		url = url + "&amp;reviewRating=" + document.getElementById("hdn_rating").value;
  		url = url + "&amp;noReview=" + document.getElementById("addreview_saveornot0").value;
  		url = url + "&amp;collectionName=" + document.getElementById("collection_name").value;
  		Controller.executeAction("showSubContent",  url, true);
	}
};


Controller.actions.backToAddProduct = 
{
	type:"js",
		
	js_handler:
	function()
	{
  		var ret = confirm("Are you sure you want to start over? \n\nIf you do, any information you've entered thus far will be lost.  \n\nPress OK for START OVER \n\n");
  		if(!ret){
  			return;
  		}
  		var productUrl = document.getElementById("productUrl").value;
  		var userId = document.getElementById("userId").value;
  		var url = "?contentaction=addproductviaurl&userId=" + userId ;
  		url = url + "&searchString=" + productUrl ;
		var loc = window.location;	
		loc.href = loc.protocol + "//" + loc.host + loc.pathname +  url;  		
	}
};


Controller.actions.editProduct = 
{
	type:"js",
		
	js_handler:
	function()
	{
  		/*var ret = confirm("Are you sure you want to start over? \n\nIf you do, any information you've entered thus far will be lost.  \n\nPress OK for START OVER \n\n");
  		if(!ret){
  			return;
  		}*/
 		window.onbeforeunload = null;
 		var frm = document.getElementById("editproduct");
  		frm.action = "index.action";
  		frm.method = "post";
  		frm.submit();
  		return;
  		
  		var collectionId= document.getElementById("collectionId").value;
  		var collectionName=document.getElementById("collectionName").value;
  		var topCategoryId = document.getElementById("topCategoryId").value;
  		var url = "backToMainPage.action?";
  		url = url + "productTitle=" + escape(document.getElementById("productTitle").value) ;
  		url = url + "&amp;productDescription=" + escape(document.getElementById("productDescription").value.replace("\n","<br/>"));
  		url = url + "&amp;collectionId=" + collectionId;
  		url = url + "&amp;collectionName=" + collectionName;
  		url = url + "&amp;categoryId=" + document.getElementById("categoryId").value;
  		url = url + "&amp;topCategoryId=" + topCategoryId;
  		url = url + "&amp;imageUrls=" + escape(document.getElementById("imageUrls").value);;
  		url = url + "&amp;price=" + document.getElementById("price").value;
  		url = url + "&amp;choosePhoto=" + document.getElementById("choosePhoto").value;
  		url = url + "&amp;uploadPhoto=" + document.getElementById("uploadPhoto").value;
  		url = url + "&amp;photoName=" + document.getElementById("photoName").value;
  		url = url + "&amp;productUrl=" + escape(document.getElementById("productUrl").value);
  		url = url + "&amp;tags=" + document.getElementById("tags").value;
  		url = url + "&amp;reviewText=" + escape(document.getElementById("reviewText").value);
  		url = url + "&amp;reviewRating=" + document.getElementById("reviewRating").value;
  		url = url + "&amp;noReview=" + document.getElementById("noReview").value;
  		Controller.executeAction("showSubContent",  url, true);


		/*
  		var productUrl = document.getElementById("productUrl").value;
  		var userId = document.getElementById("userId").value;
  		var url = "?contentaction=addproductviaurl&userId=" + userId ;
  		url = url + "&searchString=" + productUrl ;
		var loc = window.location;	
		loc.href = loc.protocol + "//" + loc.host + loc.pathname +  url;  */		
	}
};



Controller.actions.backToAddNewProduct = 
{
	type:"js",
		
	js_handler:
	function()
	{
  		/*var ret = confirm("Are you sure you want to start over? \n\nIf you do, any information you've entered thus far will be lost.  \n\nPress OK for START OVER \n\n");
  		if(!ret){
  			return;
  		}*/
  		var frm = document.getElementById("productpreview");
  		frm.action = "index.action";
  		frm.method = "post";
  		//contentaction is different here
  		document.getElementById('productpreview_contentaction').value = 'backToMainPage';
  		document.getElementById('reviewText').value = document.getElementById("review_text").value;
  		document.getElementById('reviewRating').value = document.getElementById("hdn_rating").value;
  		document.getElementById('noReview').value = document.getElementById("addreview_saveornot0").value;
  		
  		frm.submit();
  		return;


  		var collectionId= document.getElementById("collectionId").value;
  		var collectionName=document.getElementById("collection_name").value;
  		var topCategoryId = document.getElementById("topCategoryId").value;
  		var url = "backToMainPage.action?";
  		url = url + "productTitle=" + escape(document.getElementById("product").value) ;
  		url = url + "&amp;productDescription=" + escape(document.getElementById("productDescription").value.replace("\n","<br/>"));
  		url = url + "&amp;collectionId=" + collectionId;
  		url = url + "&amp;collectionName=" + collectionName;
  		url = url + "&amp;categoryId=" + document.getElementById("categoryId").value;
  		url = url + "&amp;topCategoryId=" + topCategoryId;
  		url = url + "&amp;imageUrls=" + escape(document.getElementById("imageUrls").value);;
  		url = url + "&amp;price=" + document.getElementById("price").value;
  		url = url + "&amp;choosePhoto=" + document.getElementById("choosePhoto").value;
  		url = url + "&amp;uploadPhoto=" + document.getElementById("uploadPhoto").value;
  		url = url + "&amp;photoName=" + document.getElementById("photoName").value;
  		url = url + "&amp;productUrl=" + escape(document.getElementById("productUrl").value);
  		url = url + "&amp;tags=" + document.getElementById("tags").value;
  		url = url + "&amp;reviewText=" + escape(document.getElementById("review_text").value);
  		url = url + "&amp;reviewRating=" + document.getElementById("hdn_rating").value;
  		url = url + "&amp;noReview=" + document.getElementById("addreview_saveornot0").value;
  		Controller.executeAction("showSubContent",  url, true);


		/*
  		var productUrl = document.getElementById("productUrl").value;
  		var userId = document.getElementById("userId").value;
  		var url = "?contentaction=addproductviaurl&userId=" + userId ;
  		url = url + "&searchString=" + productUrl ;
		var loc = window.location;	
		loc.href = loc.protocol + "//" + loc.host + loc.pathname +  url;  */		
	}
};


Controller.actions.getChildren = 
{
	type:"dwr",
		
	arguments:
	["categoryId"], 
	
	validators:
	[undefined],
	
	error_messages:
	[""],
	
	dwr_handler:
	CategoryHandler.getChildren,
	
	dwr_callback:
	function(categorylist)
	{
		if(categorylist.error)
		{
	    	throw categorylist.message;
	  	}else{
	  		var sel;
	  		var header = "";
	  		var level = document.getElementById("level");
	  		if(level.value == "1"){
	  			sel = document.getElementById("subCategory");
	  			header = "--Select Subcategory--";
	  		}else {
	  			sel = document.getElementById("subSubCategory");
	  			header = "--Select Sub-sub-category--";
	  		}
	  		if(sel){
	  			clearOptions(sel);
	  			sel.options.add(new Option(header, "-1"));
	  			var cat;
	  			var list = categorylist.list;
		  		for(var i=0; i< list.size(); i++){
		  			var cat = list[i];
		  			sel.options.add(new Option(cat.categoryName, cat.categoryId));
		  		}
	  		}
	  		
	  	}
	}
};

Controller.actions.showAnswer = 
{
	type:"js",
	
	js_handler:
	function(questionId)
	{
		var element = document.getElementById("hdnCurrentDivId");
		if(element){
				if(element.value != ""){
					var div = ActionCommons.getElement(element.value);
					if(div) {
						div.style.display = "none";
					}	
				}
		}
		var question = document.getElementById("hdnCurrentQuestionId");
		if(question){
				if(question.value != ""){
					var link = ActionCommons.getElement(question.value);
					if(link) {
						link.style.fontSize = "0.86em";
					}	
				}
		}
		
		var div = ActionCommons.getElement("help_answers_" + questionId);
		if(div) {
			div.style.display = "block";
		}
		var newLink = ActionCommons.getElement("help_question_" + questionId);
		if(newLink){
			newLink.style.fontSize = "1em";
		}
		if(element){
			element.value = "help_answers_" + questionId;		
		}
		if(question){
			question.value = "help_question_" + questionId;
		}
	}
};

Controller.actions.showAuthSubContent = 
{
	type:"js",
	
	authenticate:true,
	
	js_handler:
	function(url, unescapeAMP, unescape)
	{
		ActionCommons.refreshDojoDiv("contentarea_content", url, unescapeAMP, unescape);	
	}
};

Controller.actions.refreshAuthDIVById = 
{
	type:"js",
	
	authenticate:true,
	
	js_handler:
	function(divId, url, unescapeAMP, unescape)
	{
		ActionCommons.refreshDojoDiv(divId, url, unescapeAMP, unescape);	
	}
};

Controller.actions.showAuthFloatingFormRelative = 
{
	type:"js",
	
	authenticate:true,
			
	js_handler:
	function(url, unescapeAMP)
	{
		Controller.executeAction("showFloatingFormRelative", url,unescapeAMP);		
	}
};

Controller.actions.validateNewDiscussion = 
{
	type:"js",
	
	js_handler:
	function()
	{
		var span = document.getElementById('floating_form_err_txt');
		var title = document.getElementById('discussion_title').value;
		var text = document.getElementById('discussion_desc').value;
		var msg = validateDiscussionTitle(title);
		if( msg != "" ){ 
			span.style.display = 'block';
			span.innerHTML = msg;
			return false;
		}
		msg = validateDiscussionText(text);
		if( msg != "" ){
			span.style.display = 'block';
			span.innerHTML = msg;
			return false;
		}
		disableButton('btnAdd','Posting...');
		//validateDiscussionText
		Controller.executeAction("addDiscussion");		
	}
};

Controller.actions.addDiscussion = 
{
	type:"dwr",
		
	arguments:
	["categoryId","discussion_title","discussion_desc"], 
	
	validators:
	[undefined, dojo.validate.isText , dojo.validate.isText],
	
	error_messages:
	["", "Valid Discussion", "Valid Discussion"],
		
	error_target:
	"floating_form_err_txt",


	dwr_handler:
	DiscussionHandler.addDiscussion,
	
	dwr_callback:
	function(discussion)
	{
		if(discussion != null)
		{
	  		if(!discussion.error)
			{
				window.location.reload();
			}
			else
			{
				throw discussion.message;
	  		}
	  	}
		else
		{
			throw "unable to add discussion.";
		}
	}
};

Controller.actions.validateDiscussionComment = 
{
	type:"js",
	
	js_handler:
	function()
	{
		var span = document.getElementById('floating_form_err_txt');
		var text = document.getElementById('disc_comment').value;
		msg = validateDiscussionCommentText(text);
		if( msg != "" ){
			span.style.visibility = 'visible';
			span.innerHTML = msg;
			return false;
		}
		disableButton('btnAdd','Wait...');
		//validateDiscussionText
		Controller.executeAction("addDiscussionComment");		
	}
};

Controller.actions.addDiscussionComment = 
{
	type:"dwr",
		
	arguments:
	["hdn_discussionid","disc_comment"], 
	
	validators:
	[undefined, undefined],
	
	error_messages:
	["", ""],
		
	error_target:
	"floating_form_err_txt",


	dwr_handler:
	DiscussionHandler.addDiscussionComment,
	
	dwr_callback:
	function(discussionComment)
	{
		if(discussionComment != null)
		{
	  		if(!discussionComment.error)
			{
				window.location.reload();
			}
			else
			{
				var span = document.getElementById('floating_form_err_txt');
				if(span){
					span.style.visibility = 'visible';
				}
				throw discussionComment.message;
	  		}
	  	}
		else
		{
			throw "unable to add comment.";
		}
	}
};

Controller.actions.bulkUpdateSuperTags = 
{
	type:"dwr",
	
	arguments:
	["categoryId"],
	
	validators:
	[dojo.validate.isText],
	
	error_messages:
	["Please choose a category ."],
	
	error_target:
	"addproduct_err_text",
	
	dwr_handler:
	ProductHandler.getBulkUpdateProducts,
	
	dwr_callback:
	function(result)
	{
		if(result=='')
		{
			throw "All product super tags updated successfully.";
		}
		else
		{
			throw result;
		}
	}
	
};