Turns out, advertising stereotypes men too
A look at some of the worst male-bashing commercials.
Judy Berman
Jun. 16, 2008 | We all know advertising preys on the worst gender stereotypes: Only men drink beer, of course, and women dominate the laundry detergent and household cleaner demographic. Feminists have been pointing this out for years, but now men's-rights advocates are declaring their disgust with the advertising industry. In an article called "Top 10: Worst Male-Bashing Ads," Ask Men's Marc Voyer ranks the most egregious offenders of 2008.
A few of Voyer's picks are spot-on. An ad for 1st for Women, a South African insurance company, shows a guy running after a car full of his friends, playing a sophomoric joke by not stopping to let him in. They get so caught up in their game that they drive off a cliff. The punch line? "Why we insure women only." You can watch the commercial here:
Many of the ads are just as insulting to women as they are to men. A Roomba spot (below) features a mother complaining that her kids are pigs and her husband is a donkey (or, as Voyer suggests, a jackass). Since she can't handle cleaning up after a stable of barnyard animals all by herself, she enlists the help of a robotic vacuum. "Forget men sharing baby duties, knowing how to vacuum, doing dishes, and picking up after themselves and others. Instead, the cliched message is that women are the civilized voice burdened with managing men and their ingrained frat-boy mindset," writes Voyer. But ingrained in the idea that men are constitutionally incapable of cooking a meal is the equally pernicious assumption that women should take full responsibility for all household chores.
Since feminists have acquired the reputation of being utterly humorless, I'd also like to note that Voyer may also take himself a little too seriously at times. He rages against a Polysporin spot that shows a father careening down a Slip-N-Slide and into a bunch of garbage cans. "The moral of this story: Dads are even dumber and more childlike than their own offspring," Voyer seethes. Yeah, it's also called slapstick. The clip reminded me of the Thanksgiving when my own father accidentally landed in my aunt's swimming pool. His clothes were soaked, I was in hysterics and the story remains a family favorite. It's a gaffe anyone could have made, and no one thought less of his intelligence -- much less questioned the competence of his entire gender -- because of it.
-- Judy Berman
Salon About Salon Contact & Help Corrections Advertise in Salon Salon Personals Salon Jobs Salon Mobile Salon Newsletter RSS Feeds
Salon Premium: Premium log in What is Salon Premium?
A & E Books Comics Community: Table Talk & The WELL Life News & Politics Opinion Sports Tech & Business Letters
Investor Relations Privacy Policy Terms of Service
Copyright ©2008 Salon Media Group, Inc. Reproduction of material from any Salon pages without written permission is strictly prohibited. SALON® is registered in the U.S. Patent and Trademark Office as a trademark of Salon Media Group Inc.
Extract from ABC's of Relationship of Selling through Service, by Futrell and Valvasory.
A //fabulous// approach to buyer need satisfaction.
A powerful selling technique used by successful sales people today is benefit selling. In benefit selling, the salesperson relates a product's benefits to the customer's needs using the product's features and advantages as support.
First online class Professional Sales 1219
The process of analyzing each prospect and customer to maximize the chances of reaching a sales goal.
<html><div class="tool last" id="print"><a onclick="window.print();return false;" href=""><img width="22" height="22" title="Print this page" src="http://images.apple.com/support/iknow/images/i_print.png" alt="" /></a></div> <div class="clear"> </div><p><!-- ADDTHIS BUTTON BEGIN --> <script type="text/javascript">
addthis_pub = 'YOUR-ACCOUNT-ID';
</script><a onClick="return addthis_sendto()" onMouseOut="addthis_close()" onMouseOver="return addthis_open(this, '', '[URL]', '[TITLE]')" href="http://www.addthis.com/bookmark.php"><img width="115" height="15" border="0" alt="" src="http://s9.addthis.com/button1-bm.gif" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script> <!-- ADDTHIS BUTTON END --> <br /> Advertising is a form of communication whose purpose is to inform potential customers about products and services and how to obtain and use them. Many advertisements are also designed to generate increased consumption of those products and services through the creation and reinforcement of brand image and brand loyalty. For these purposes advertisements often contain both factual information and persuasive messages. Every major medium is used to deliver these messages, including: television, radio, movies, magazines, newspapers, video games, the Internet, and billboards. Advertising is often placed by an advertising agency on behalf of a company. Advertising spending has increased dramatically in recent years. In the United States alone in 2006, spending on advertising reached $155 billion, reported TNS Media Intelligence. That same year, according to a report titled Global Entertainment and Media Outlook: 2006-2010 issued by global accounting firm PricewaterhouseCoopers, worldwide advertising spending was $385 billion. The accounting firm's report projected worldwide advertisement spending to exceed half-a-trillion dollars by 2010.<p>
According to the book "Advertising & Promotion", by Belch, Belch and Guolla, advertising is any form of paid non-personal communication about an organization, product, service, or idea by an identified sponsor. The paid aspect of this definition reflects the fact that the space or time for an advertising message generally must be bought. The occasional exception is the 'public service announcement'.
</p><p><a href="http://en.wikipedia.org/wiki/Advertising"><span style="font-family: Times New Roman;">W</span></a></p></html>
<HTML>
<!-- Wikipedia Link -->
<font size="2" face="Times">
| <a href="http://en.wikipedia.org/wiki/Advertisement">W</a>
</font>
<!-- End Wikipedia Link -->
</HTML>
[[Advertising]] is defined as any paid form of non personal communication about an organization, product, service, or idea by an identified sponsor. The //paid// aspect of this definition reflects the fact that the space or time for an advertising message generally must be bought. An occasional exception to this is the public service announcement, whose advertising space or time is donated by the media.
Marketing and Communications (IntegratedMarketingCommunications)
<HTML>
<a href="http://www.facebook.com/sharer.php" onclick="window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(location.href)+'&t='+encodeURIComponent(document.title), 'facebook','toolbar=no,width=700,height=400'); return false;"><img width="16" alt="facebook" src="http://i11.tinypic.com/626e0dk.gif" height="16" /></a>
</HTML>
<HTML>
<!-- Wikipedia Link -->
<font size="2" face="Times">
| <a href="http://en.wikipedia.org/wiki/Advertising">W</a>
</font>
<!-- End Wikipedia Link --><p>
Advertising is defined as any paid form of non personal communication about an organization, product, service, or idea by an identified sponsor. The //paid// aspect of this definition reflects the fact that the space or time for an advertising message generally must be bought. An occasional exception to this is the public service announcement, whose advertising space or time is donated by the media.<p>
<!-- Wikipedia Link -->
<font size="2" face="Times">
| <a href="http://en.wikipedia.org/wiki/Advertising">W</a>
</font>
<!-- End Wikipedia Link --><p>
Promotion is the coordination of all seller initiated efforts to set up channels of information and persuasion to sell goods and services or promote an idea. While implicit communication occurs through the various elements of the marketing mix (MarketingMix), most of an organization's communications with the marketplace take place as part of a carefully planned and controlled promotional program.
<p>
<iframe src="http://rcm.amazon.com/e/cm?t=etnikowines-20&o=1&p=8&l=as1&asins=1400064287&fc1=000000&IS2=1<1=_blank&lc1=C77329&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</HTML>
A type of close that doesn't give the prospect a choice of buying or not buying but instead asks which one or how many items he or she wishes to buy.
<HTML>
<iframe src="http://rcm.amazon.com/e/cm?t=etnikowines-20&o=1&p=8&l=as1&asins=1400064287&fc1=000000&IS2=1<1=_blank&lc1=C77329&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</HTML>
British Columbia Institute of Technology
Refer to [[www.bcit.ca|http://www.bcit.ca]]
<HTML>
<div id="print" class="tool last">
<a href="" onclick="window.print();return false;"><img src="http://images.apple.com/support/iknow/images/i_print.png" width="22" height="22" title="Print this page"></a>
</div>
<div class="clear"></div>
</div>
<!-- ADDTHIS BUTTON BEGIN -->
<script type="text/javascript">
addthis_pub = 'YOUR-ACCOUNT-ID';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', '[URL]', '[TITLE]')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://s9.addthis.com/button1-bm.gif" width="115" height="15" border="0" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
<!-- ADDTHIS BUTTON END -->
</HTML>
--
A good teoretical definition is:
An intangible value-added aspect of a particular good that is otherwise not considered unique.
According to investopedia, Brand Equity (BrandEquity) is created through aggressive mass marketing campaigns. Good examples of companies with strong brand equity are corporations such as Nike and Coca-Cola, whose corporate logos are recognized worldwide.
Acording to Corebrands.com, the world's most powerful brands are never accidental. They grow out of long-term strategies based on superior insight into brand dynamics: where the brand lives, who it affects and how it affects them, its inherent strengths and weaknesses, barriers and opportunities. Grounded with intelligence and driven by leadership's commitment, the optimal Brand Strategy is a finely tuned, precision instrument that guides all expressions of the brand.
The meaning of brands
Brands are a means of differentiating a company’s products and services from those of its competitors.
There is plenty of evidence to prove that customers will pay a substantial price premium for a good brand and remain loyal to that brand. It is important, therefore, to understand what brands are and why they are important.
Macdonald sums this up nicely in the following quote emphasising the importance of brands:
“…it is not factories that make profits, but relationships with customers, and it is company and brand names which secure those relationships”
Businesses that invest in and sustain leading brands prosper whereas those that fail are left to fight for the lower profits available in commodity markets.
To close a sell remember:
- Be sure your prospect understand what you say.
- Always present a complete story to ensure understanding.
- Tailor your close to each prospect. 80 percent of our customers will respond to a standard close. It is the other 20 percent of customers that you needs to prepare for. Prepare to give the expert customer all facts requested, to give the egotistical customer prise, to lead the indecisive customer, and to slow down for a slow thinker.
- Before you close, attempt a trial close (TrialClose).
- After asking for the order, be silent.
- Set high goals for yourself, and develop a personl commitment to reach your goals.
- Develop and maintain a positive, confident, and enthusiastic attitude toward yourself, your products, your prospects, and your trial close.
Leave your comments [[here|https://www.blogger.com/comment.g?blogID=4061854689299209036&postID=6476621563670578918]]
Communications media impact more than the reach of messages. They impact content and customs; for example, Thomas Edison had to discover that hello was the least ambiguous greeting by voice over a distance; previous greetings such as hail tended to be garbled in the transmission. Similarly, the terseness of e-mail and chat rooms produced the need for the emoticon.
Modern communication media now allow for intense long-distance exchanges between larger numbers of people (many-to-many communication via e-mail, Internet forums). On the other hand, many traditional broadcast media and mass media favor one-to-many communication (television, cinema, radio, newspaper, magazines).
The adoption of a dominant communication medium is important enough that historians have folded civilization into "ages" according to the medium most widely used. A book titled "Five Epochs of Civilization" by William McGaughey (Thistlerose, 2000) divides history into the following stages: Ideographic writing produced the first civilization; alphabetic writing, the second; printing, the third; electronic recording and broadcasting, the fourth; and computer communication, the fifth. The media effects what people think about themselves and how they perceive people as well. What we think about self image and what others should look like comes from the media.
While it could be argued that these "Epochs" are just a historian's construction, digital and computer communication shows concrete evidence of changing the way humans organize. The latest trend in communication, termed smartmobbing, involves ad-hoc organization through mobile devices, allowing for effective many-to-many communication and social networking.
<HTML>
<div id="print" class="tool last">
<a href="" onclick="window.print();return false;"><img src="http://images.apple.com/support/iknow/images/i_print.png" width="22" height="22" title="Print this page"></a>
</div>
<div class="clear"></div>
</div>
<!-- ADDTHIS BUTTON BEGIN -->
<script type="text/javascript">
addthis_pub = 'YOUR-ACCOUNT-ID';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', '[URL]', '[TITLE]')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://s9.addthis.com/button1-bm.gif" width="115" height="15" border="0" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
<!-- ADDTHIS BUTTON END -->
</HTML>
--
LONDON (Reuters Life!) - The British government launched a three-month public consultation on Saturday on how to cut the number of people smoking.
Removing branding and logos from cigarette packets, making retailers sell cigarettes from under the counter and banning the advertising of smoking paraphernalia, such as cigarette papers, are some of the measures proposed by the Department of Health.
Abolishing packs of 10, to cut the number of young people taking up the habit, and restricting youngsters' access to cigarette vending machines are also being considered.
The take-up of smoking among young people is lower than a decade ago, but more than 200,000 people aged under 16 start smoking every year.
They are three times more likely to die of cancer than people who start smoking in their mid-20s.
"Protecting children from smoking is a government priority and taking away temptation is one way to do this," Public Health Minister Dawn Primarolo said on Saturday.
"If banning brightly colored packets, removing cigarettes from display and removing the cheap option of a pack of 10 helps save lives, then that is what we should do -- but we want to hear everyone's views first."
Smoking-related disease kills 87,000 people a year, and despite a drop in the number of smokers by 1.9 million in the past decade, smoking remains the biggest killer in England.
SearchMarketing MarketingNews Marketing Cloud Comments
/***
|''Name:''|EasyEditPlugin|
|''Description:''|Lite and extensible Wysiwyg editor for TiddlyWiki.|
|''Version:''|1.3.3|
|''Date:''|Dec 21,2007|
|''Source:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal Collin|
|''License:''|[[BSD open source license|License]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 2.0; InternetExplorer 6.0|
!Demo
*On the plugin [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[WysiwygDemo]] and use the {{{write}}} button.
!Installation
#import the plugin,
#save and reload,
#use the <<toolbar easyEdit>> button in the tiddler's toolbar (in default ViewTemplate) or add {{{easyEdit}}} command in your own toolbar.
! Useful Addons
*[[HTMLFormattingPlugin|http://www.tiddlytools.com/#HTMLFormattingPlugin]] to embed wiki syntax in html tiddlers.<<br>>//__Tips__ : When this plugin is installed, you can use anchor syntax to link tiddlers in wysiwyg mode (example : #example). Anchors are converted back and from wiki syntax when editing.//
*[[TaggedTemplateTweak|http://www.TiddlyTools.com/#TaggedTemplateTweak]] to use alternative ViewTemplate/EditTemplate for tiddler's tagged with specific tag values.
!Configuration
|Buttons in the toolbar (empty = all).<<br>>//Example : bold,underline,separator,forecolor//<<br>>The buttons will appear in this order.| <<option txtEasyEditorButtons>>|
|EasyEditor default height | <<option txtEasyEditorHeight>>|
|Stylesheet applied to the edited richtext |[[EasyEditDocStyleSheet]]|
|Template called by the {{{write}}} button |[[EasyEditTemplate]]|
!How to extend EasyEditor
*To add your own buttons, add some code like the following in a systemConfig tagged tiddler (//use the prompt attribute only if there is a parameter//) :
**{{{EditorToolbar.buttons.heading = {label:"H", toolTip : "Set heading level", prompt: "Enter heading level"};}}}
**{{{EditorToolbar.buttonsList +=",heading";}}}
*To get the list of all possible commands, see the documentation of the [[Gecko built-in rich text editor|http://developer.mozilla.org/en/docs/Midas]] or the [[IE command identifiers|http://msdn2.microsoft.com/en-us/library/ms533049.aspx]].
*To go further in customization, see [[Link button|EasyEditPlugin-LinkButton]] as an example.
!Code
***/
//{{{
var geckoEditor={};
var IEeditor={};
config.options.txtEasyEditorHeight = config.options.txtEasyEditorHeight ? config.options.txtEasyEditorHeight : "500px";
config.options.txtEasyEditorButtons = config.options.txtEasyEditorButtons ? config.options.txtEasyEditorButtons : "";
// TW2.1.x compatibility
config.browser.isGecko = config.browser.isGecko ? config.browser.isGecko : (config.userAgent.indexOf("gecko") != -1);
config.macros.annotations = config.macros.annotations ? config.macros.annotations : {handler : function() {}}
// EASYEDITOR MACRO
config.macros.easyEdit = {
handler : function(place,macroName,params,wikifier,paramString,tiddler) {
var field = params[0];
var height = params[1] ? params[1] : config.options.txtEasyEditorHeight;
var editor = field ? new easyEditor(tiddler,field,place,height) : null;
},
gather: function(element){
var iframes = element.getElementsByTagName("iframe");
if (iframes.length!=1) return null
var text = "<html>"+iframes[0].contentWindow.document.body.innerHTML+"</html>";
text = config.browser.isGecko ? geckoEditor.postProcessor(text) : (config.browser.isIE ? IEeditor.postProcessor(text) : text);
return text;
}
}
// EASYEDITOR CLASS
function easyEditor(tiddler,field,place,height) {
this.tiddler = tiddler;
this.field = field;
this.browser = config.browser.isGecko ? geckoEditor : (config.browser.isIE ? IEeditor : null);
this.wrapper = createTiddlyElement(place,"div",null,"easyEditor");
this.wrapper.setAttribute("easyEdit",this.field);
this.iframe = createTiddlyElement(null,"iframe");
this.browser.setupFrame(this.iframe,height,contextualCallback(this,this.onload));
this.wrapper.appendChild(this.iframe);
}
easyEditor.prototype.onload = function(){
this.editor = this.iframe.contentWindow;
this.doc = this.editor.document;
if (!this.browser.isDocReady(this.doc)) return null;
if (!this.tiddler.isReadOnly() && this.doc.designMode.toLowerCase()!="on") {
this.doc.designMode = "on";
if (this.browser.reloadOnDesignMode) return false; // IE fire readystatechange after designMode change
}
var internalCSS = store.getTiddlerText("EasyEditDocStyleSheet");
setStylesheet(internalCSS,"EasyEditDocStyleSheet",this.doc);
this.browser.initContent(this.doc,store.getValue(this.tiddler,this.field));
var barElement=createTiddlyElement(null,"div",null,"easyEditorToolBar");
this.wrapper.insertBefore(barElement,this.wrapper.firstChild);
this.toolbar = new EditorToolbar(this.doc,barElement,this.editor);
this.browser.plugEvents(this.doc,contextualCallback(this,this.scheduleButtonsRefresh));
this.editor.focus();
}
easyEditor.SimplePreProcessoror = function(text) {
var re = /^<html>(.*)<\/html>$/m;
var htmlValue = re.exec(text);
var value = (htmlValue && (htmlValue.length>0)) ? htmlValue[1] : text;
return value;
}
easyEditor.prototype.scheduleButtonsRefresh=function() { //doesn't refresh buttons state when rough typing
if (this.nextUpdate) window.clearTimeout(this.nextUpdate);
this.nextUpdate = window.setTimeout(contextualCallback(this.toolbar,EditorToolbar.onUpdateButton),easyEditor.buttonDelay);
}
easyEditor.buttonDelay = 200;
// TOOLBAR CLASS
function EditorToolbar(target,parent,window){
this.target = target;
this.window=window;
this.elements={};
var row = createTiddlyElement(createTiddlyElement(createTiddlyElement(parent,"table"),"tbody"),"tr");
var buttons = (config.options.txtEasyEditorButtons ? config.options.txtEasyEditorButtons : EditorToolbar.buttonsList).split(",");
for(var cpt = 0; cpt < buttons.length; cpt++){
var b = buttons[cpt];
var button = EditorToolbar.buttons[b];
if (button) {
if (button.separator)
createTiddlyElement(row,"td",null,"separator").innerHTML+=" ";
else {
var cell=createTiddlyElement(row,"td",null,b+"Button");
if (button.onCreate) button.onCreate.call(this, cell, b);
else EditorToolbar.createButton.call(this, cell, b);
}
}
}
}
EditorToolbar.createButton = function(place,name){
this.elements[name] = createTiddlyButton(place,EditorToolbar.buttons[name].label,EditorToolbar.buttons[name].toolTip,contextualCallback(this,EditorToolbar.onCommand(name)),"button");
}
EditorToolbar.onCommand = function(name){
var button = EditorToolbar.buttons[name];
return function(){
var parameter = false;
if (button.prompt) {
var parameter = this.target.queryCommandValue(name);
parameter = prompt(button.prompt,parameter);
}
if (parameter != null) {
this.target.execCommand(name, false, parameter);
EditorToolbar.onUpdateButton.call(this);
}
return false;
}
}
EditorToolbar.getCommandState = function(target,name){
try {return target.queryCommandState(name)}
catch(e){return false}
}
EditorToolbar.onRefreshButton = function (name){
if (EditorToolbar.getCommandState(this.target,name)) addClass(this.elements[name].parentNode,"buttonON");
else removeClass(this.elements[name].parentNode,"buttonON");
this.window.focus();
}
EditorToolbar.onUpdateButton = function(){
for (b in this.elements)
if (EditorToolbar.buttons[b].onRefresh) EditorToolbar.buttons[b].onRefresh.call(this,b);
else EditorToolbar.onRefreshButton.call(this,b);
}
EditorToolbar.buttons = {
separator : {separator : true},
bold : {label:"B", toolTip : "Bold"},
italic : {label:"I", toolTip : "Italic"},
underline : {label:"U", toolTip : "Underline"},
strikethrough : {label:"S", toolTip : "Strikethrough"},
insertunorderedlist : {label:"\u25CF", toolTip : "Unordered list"},
insertorderedlist : {label:"1.", toolTip : "Ordered list"},
justifyleft : {label:"[\u2261", toolTip : "Align left"},
justifyright : {label:"\u2261]", toolTip : "Align right"},
justifycenter : {label:"\u2261", toolTip : "Align center"},
justifyfull : {label:"[\u2261]", toolTip : "Justify"},
removeformat : {label:"\u00F8", toolTip : "Remove format"},
fontsize : {label:"\u00B1", toolTip : "Set font size", prompt: "Enter font size"},
forecolor : {label:"C", toolTip : "Set font color", prompt: "Enter font color"},
fontname : {label:"F", toolTip : "Set font name", prompt: "Enter font name"},
heading : {label:"H", toolTip : "Set heading level", prompt: "Enter heading level (example : h1, h2, ...)"},
indent : {label:"\u2192[", toolTip : "Indent paragraph"},
outdent : {label:"[\u2190", toolTip : "Outdent paragraph"},
inserthorizontalrule : {label:"\u2014", toolTip : "Insert an horizontal rule"},
insertimage : {label:"\u263C", toolTip : "Insert image", prompt: "Enter image url"}
}
EditorToolbar.buttonsList = "bold,italic,underline,strikethrough,separator,increasefontsize,decreasefontsize,fontsize,forecolor,fontname,separator,removeformat,separator,insertparagraph,insertunorderedlist,insertorderedlist,separator,justifyleft,justifyright,justifycenter,justifyfull,indent,outdent,separator,heading,separator,inserthorizontalrule,insertimage";
if (config.browser.isGecko) {
EditorToolbar.buttons.increasefontsize = {onCreate : EditorToolbar.createButton, label:"A", toolTip : "Increase font size"};
EditorToolbar.buttons.decreasefontsize = {onCreate : EditorToolbar.createButton, label:"A", toolTip : "Decrease font size"};
EditorToolbar.buttons.insertparagraph = {label:"P", toolTip : "Format as paragraph"};
}
// GECKO (FIREFOX, ...) BROWSER SPECIFIC METHODS
geckoEditor.setupFrame = function(iframe,height,callback) {
iframe.setAttribute("style","width: 100%; height:" + height);
iframe.addEventListener("load",callback,true);
}
geckoEditor.plugEvents = function(doc,onchange){
doc.addEventListener("keyup", onchange, true);
doc.addEventListener("keydown", onchange, true);
doc.addEventListener("click", onchange, true);
}
geckoEditor.postProcessor = function(text){return text};
geckoEditor.preProcessor = function(text){return easyEditor.SimplePreProcessoror(text)}
geckoEditor.isDocReady = function() {return true;}
geckoEditor.reloadOnDesignMode=false;
geckoEditor.initContent = function(doc,content){
if (content) doc.execCommand("insertHTML",false,geckoEditor.preProcessor(content));
}
// INTERNET EXPLORER BROWSER SPECIFIC METHODS
IEeditor.setupFrame = function(iframe,height,callback) {
iframe.width="99%"; //IE displays the iframe at the bottom if 100%. CSS layout problem ? I don't know. To be studied...
iframe.height=height.toString();
iframe.attachEvent("onreadystatechange",callback);
}
IEeditor.plugEvents = function(doc,onchange){
doc.attachEvent("onkeyup", onchange);
doc.attachEvent("onkeydown", onchange);
doc.attachEvent("onclick", onchange);
}
IEeditor.isDocReady = function(doc){
if (doc.readyState!="complete") return false;
if (!doc.body) return false;
return (doc && doc.getElementsByTagName && doc.getElementsByTagName("head") && doc.getElementsByTagName("head").length>0);
}
IEeditor.postProcessor = function(text){return text};
IEeditor.preProcessor = function(text){return easyEditor.SimplePreProcessoror(text)}
IEeditor.reloadOnDesignMode=true;
IEeditor.initContent = function(doc,content){
if (content) doc.body.innerHTML=IEeditor.preProcessor(content);
}
function contextualCallback(obj,func){
return function(){return func.call(obj)}
}
Story.prototype.previousGatherSaveEasyEdit = Story.prototype.previousGatherSaveEasyEdit ? Story.prototype.previousGatherSaveEasyEdit : Story.prototype.gatherSaveFields; // to avoid looping if this line is called several times
Story.prototype.gatherSaveFields = function(e,fields){
if(e && e.getAttribute) {
var f = e.getAttribute("easyEdit");
if(f){
var newVal = config.macros.easyEdit.gather(e);
if (newVal) fields[f] = newVal;
}
this.previousGatherSaveEasyEdit(e, fields);
}
}
config.commands.easyEdit={
text: "write",
tooltip: "Edit this tiddler in wysiwyg mode",
readOnlyText: "view",
readOnlyTooltip: "View the source of this tiddler",
handler : function(event,src,title) {
clearMessage();
var tiddlerElem = document.getElementById(story.idPrefix + title);
var fields = tiddlerElem.getAttribute("tiddlyFields");
story.displayTiddler(null,title,"EasyEditTemplate",false,null,fields);
return false;
}
}
config.shadowTiddlers.ViewTemplate = config.shadowTiddlers.ViewTemplate.replace(/\+editTiddler/,"+editTiddler easyEdit");
config.shadowTiddlers.EasyEditTemplate = config.shadowTiddlers.EditTemplate.replace(/macro='edit text'/,"macro='easyEdit text'");
config.shadowTiddlers.EasyEditToolBarStyleSheet = "/*{{{*/\n";
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar {font-size:0.8em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".editor iframe {border:1px solid #DDD}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar td{border:1px solid #888; padding:2px 1px 2px 1px; vertical-align:middle}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar td.separator{border:0}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .button{border:0;color:#444}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .buttonON{background-color:#EEE}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar {margin:0.25em 0}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .boldButton {font-weight:bold}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .italicButton .button {font-style:italic;padding-right:0.65em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .underlineButton .button {text-decoration:underline}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .strikeButton .button {text-decoration:line-through}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .unorderedListButton {margin-left:0.7em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyleftButton .button {padding-left:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyrightButton .button {padding-right:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyfullButton .button, .easyEditorToolBar .indentButton .button, .easyEditorToolBar .outdentButton .button {padding-left:0.1em;padding-right:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .increasefontsizeButton .button {padding-left:0.15em;padding-right:0.15em; font-size:1.3em; line-height:0.75em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .decreasefontsizeButton .button {padding-left:0.4em;padding-right:0.4em; font-size:0.8em;}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .forecolorButton .button {color:red;}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .fontnameButton .button {font-family:serif}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet +="/*}}}*/";
store.addNotification("EasyEditToolBarStyleSheet", refreshStyles);
config.shadowTiddlers.EasyEditDocStyleSheet = "/*{{{*/\n \n/*}}}*/";
if (config.annotations) config.annotations.EasyEditDocStyleSheet = "This stylesheet is applied when editing a text with the wysiwyg easyEditor";
//}}}
/***
!Link button add-on
***/
//{{{
EditorToolbar.createLinkButton = function(place,name) {
this.elements[name] = createTiddlyButton(place,EditorToolbar.buttons[name].label,EditorToolbar.buttons[name].toolTip,contextualCallback(this,EditorToolbar.onInputLink()),"button");
}
EditorToolbar.onInputLink = function() {
return function(){
var browser = config.browser.isGecko ? geckoEditor : (config.browser.isIE ? IEeditor : null);
var value = browser ? browser.getLink(this.target) : "";
value = prompt(EditorToolbar.buttons["createlink"].prompt,value);
if (value) browser.doLink(this.target,value);
else if (value=="") this.target.execCommand("unlink", false, value);
EditorToolbar.onUpdateButton.call(this);
return false;
}
}
EditorToolbar.buttonsList += ",separator,createlink";
EditorToolbar.buttons.createlink = {onCreate : EditorToolbar.createLinkButton, label:"L", toolTip : "Set link", prompt: "Enter link url"};
geckoEditor.getLink=function(doc){
var range=doc.defaultView.getSelection().getRangeAt(0);
var container = range.commonAncestorContainer;
var node = (container.nodeType==3) ? container.parentNode : range.startContainer.childNodes[range.startOffset];
if (node && node.tagName=="A") {
var r=doc.createRange();
r.selectNode(node);
doc.defaultView.getSelection().addRange(r);
return (node.getAttribute("tiddler") ? "#"+node.getAttribute("tiddler") : node.href);
}
else return (container.nodeType==3 ? "#"+container.textContent.substr(range.startOffset, range.endOffset-range.startOffset).replace(/ $/,"") : "");
}
geckoEditor.doLink=function(doc,link){ // store tiddler in a temporary attribute to avoid url encoding of tiddler's name
var pin = "href"+Math.random().toString().substr(3);
doc.execCommand("createlink", false, pin);
var isTiddler=(link.charAt(0)=="#");
var node = doc.defaultView.getSelection().getRangeAt(0).commonAncestorContainer;
var links= (node.nodeType!=3) ? node.getElementsByTagName("a") : [node.parentNode];
for (var cpt=0;cpt<links.length;cpt++)
if (links[cpt].href==pin){
links[cpt].href=isTiddler ? "javascript:;" : link;
links[cpt].setAttribute("tiddler",isTiddler ? link.substr(1) : "");
}
}
geckoEditor.beforeLinkPostProcessor = geckoEditor.beforelinkPostProcessor ? geckoEditor.beforelinkPostProcessor : geckoEditor.postProcessor;
geckoEditor.postProcessor = function(text){
return geckoEditor.beforeLinkPostProcessor(text).replace(/<a tiddler="([^"]*)" href="javascript:;">(.*?)(?:<\/a>)/gi,"[[$2|$1]]").replace(/<a tiddler="" href="/gi,'<a href="');
}
geckoEditor.beforeLinkPreProcessor = geckoEditor.beforeLinkPreProcessor ? geckoEditor.beforeLinkPreProcessor : geckoEditor.preProcessor
geckoEditor.preProcessor = function(text){
return geckoEditor.beforeLinkPreProcessor(text).replace(/\[\[([^|\]]*)\|([^\]]*)]]/g,'<a tiddler="$2" href="javascript:;">$1</a>');
}
IEeditor.getLink=function(doc){
var node=doc.selection.createRange().parentElement();
if (node.tagName=="A") return node.href;
else return (doc.selection.type=="Text"? "#"+doc.selection.createRange().text.replace(/ $/,"") :"");
}
IEeditor.doLink=function(doc,link){
doc.execCommand("createlink", false, link);
}
IEeditor.beforeLinkPreProcessor = IEeditor.beforeLinkPreProcessor ? IEeditor.beforeLinkPreProcessor : IEeditor.preProcessor
IEeditor.preProcessor = function(text){
return IEeditor.beforeLinkPreProcessor(text).replace(/\[\[([^|\]]*)\|([^\]]*)]]/g,'<a ref="#$2">$1</a>');
}
IEeditor.beforeLinkPostProcessor = IEeditor.beforelinkPostProcessor ? IEeditor.beforelinkPostProcessor : IEeditor.postProcessor;
IEeditor.postProcessor = function(text){
return IEeditor.beforeLinkPostProcessor(text).replace(/<a href="#([^>]*)">([^<]*)<\/a>/gi,"[[$2|$1]]");
}
IEeditor.beforeLinkInitContent = IEeditor.beforeLinkInitContent ? IEeditor.beforeLinkInitContent : IEeditor.initContent;
IEeditor.initContent = function(doc,content){
IEeditor.beforeLinkInitContent(doc,content);
var links=doc.body.getElementsByTagName("A");
for (var cpt=0; cpt<links.length; cpt++) {
links[cpt].href=links[cpt].ref; //to avoid IE conversion of relative URLs to absolute
links[cpt].removeAttribute("ref");
}
}
config.shadowTiddlers.EasyEditToolBarStyleSheet += "\n/*{{{*/\n.easyEditorToolBar .createlinkButton .button {color:blue;text-decoration:underline;}\n/*}}}*/";
config.shadowTiddlers.EasyEditDocStyleSheet += "\n/*{{{*/\na {color:#0044BB;font-weight:bold}\n/*}}}*/";
//}}}
Exchange is the act of obtaining a desired object from someone (or from a enterprise) by offering something in return.
Features Attributes and Benefits
<HTML>
<a href="http://www.facebook.com/sharer.php" onclick="window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(location.href)+'&t='+encodeURIComponent(document.title), 'facebook','toolbar=no,width=700,height=400'); return false;"><img width="16" alt="facebook" src="http://i11.tinypic.com/626e0dk.gif" height="16" /></a>
</HTML>
Direct - Open ended - Rephrasing - Redirect
1. Acknowledge. Acknowledge the buyer's viewpoint.
2. Identify and Clarify. Identify the problem and clarify the concern.
3. Meet the Objection. How to respond depends on the objection.
4. Use a Trial Close. After meeting an objection the salesperson needs to know whether he has overcome it. Make sure.
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
Feel free to interact on this website.
The goal of marketing is to create customer satisfaction by building value-based relationships
with customers, in conjunction with other internal and external business units. The end-result is
gaining market leadership by understanding consumer needs and finding solutions of superior
value, quality, and service.
1- To inform
2- To persuade
3- To motivate
4- To build mutual understanding
Excerpt.- Green marketing is back, and while some may cavil that it never went away, the quality and quantity of marketing messages has shifted markedly in recent months. By all indications, this time it's no longer a half-hearted, fringe activity.
It's been more than seventeen years since my book, The Green Consumer, was published in the U.S. That took place during the media frenzy of Earth Day 1990, when the world (or at least some of it) awakened to many of the significant environmental challenges we face. We were told by bestselling authors and other self-appointed mavens that the planet was ailing but that doing "simple things" could save the earth, and we felt empowered.
[[Reference|http://makower.typepad.com/joel_makower/2007/09/green-marketing.html]]
Ref: [[A Blog as reference|http://bizzflip.typepad.com/bizzflipcom/2007/07/the-start-up-jo.html]]
IntegratedMarketing Communications Campaign is a project developed by marketers to improve a company's marketing plan.
[<img[Marketing Plan|http://www.interactivemedia.com.sg/images/marketing_pic_act.jpg]]
As defined by the American Marketing Association is a planning process designed to assure that all brand contacts received by a customer or prospect for a product, service, or organization are relevant to that person and consistent over time.
Integrated MKT communications
Marketing is defined as "the process of planning and executing the conception, [[pricing]], [[promotion]], and [[distribution]] of ideas, goods, and [[services]] to create exchanges that satisfy individual and organizational objectives".
The [[marketing]] function in an [[organization]] facilitates the exchange process and the development of relationships by carefully examining the needs and wants of consumers, developing a product or service that satisfies these [[needs]], offering it at a certain [[price]], making it available though a particular place of channel of distribution, and developing a program of promotion or communication. These four Ps (product, price, place (distribution), and promotion (marketing communications) are elements of the marketing mix. Tha basic task of marketing is combining these four elements into a marketing pogram to facilitate the potential for exchange with consumers in the marketplace.
According to Wikipedia, Intellectual property is a legal field that refers to creations of the mind such as musical, literary, and artistic works; inventions; and symbols, names, images, and designs used in commerce, including copyrights, trademarks, patents, and related rights. Under intellectual property law, the holder of one of these abstract "properties" has certain exclusive rights to the creative work, commercial symbol, or invention which is covered by it.
What relates to marketing is its [[copyright]] topic. Primarily because is what companies create and how they protect it in diferent markets.
LinkedIn is an online network of more than 20 million experienced professionals from around the world, representing 150 industries.
LinkedIn is located in Mountain View, California and is funded by world-class investors including Sequoia Capital, Greylock, the European Founders Fund, and Bessemer Venture Partners.
[img[LinkedIn|http://www.linkedin.com/img/pic/pic_logo_119x32.gif][http://www.linkedin.com]]
[[MKT]] See [[marketing]].
[[Welcome]]
[[Marketing]]
[[Promotion]] GettingStarted
<HTML>
<div id="print" class="tool last">
<a href="" onclick="window.print();return false;"><img src="http://images.apple.com/support/iknow/images/i_print.png" width="22" height="22" title="Print this page"></a>
</div>
<div class="clear"></div>
</div>
<!-- ADDTHIS BUTTON BEGIN -->
<script type="text/javascript">
addthis_pub = 'YOUR-ACCOUNT-ID';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', '[URL]', '[TITLE]')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://s9.addthis.com/button1-bm.gif" width="115" height="15" border="0" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
<!-- ADDTHIS BUTTON END -->
</HTML>
According to the book "Marketing, An Introduction", by Armstrong, Korler, Cunningham, and Mitchell, Marketing is a social and managerial process whereby individuals and groups obtain what they need and want through creating and exchanging products and value with others.
Promotion (AdvertisingPromotion)
[img[http://www.dreamstime.com/advice-business-salesperson-thumb1129360.jpg]]
The four Ps: product, [[price]], place ([[distribution]]) and [[promotion]] (marketing communications). Are elements of the marketing mix. The basic task of marketing is combining these four elements into a marketing program to facilitate the potential for exchange with consumers in the marketplace.
<HTML>
<p width="100%" align="center"><embed pluginspage="http://www.adobe.com/go/getflashplayer" src="http://www.yourminis.com/Dir/GetContainer.api?uri=yourminis/yourminis/mini:rsscontainer" wmode="transparent" width="450" height="310" FlashVars="uri=yourminis%2Fyourminis%2Fmini%3Arsscontainer&xheight=310&xwidth=450&title=Marketing%20News&swfurl=%2Fwidget%5Frsscontainer%2Eswf&textcolor=16638898&height=300&width=440&view=minimal&appparam=http%3A%2F%2Fnews%2Egoogle%2Ecom%2Fnews%3Fhl%3Den%26tab%3Dwn%26ned%3Dus%26q%3Dmarketing%26ie%3DUTF%2D8%26output%3Drss&auth=&numberlines=5&subtext=0&inline=0&tooltips=0&newwindow=0&" type="application/x-shockwave-flash" allowScriptAccess="always"></embed><br /></p>
</HTML>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<!--}}}-->
Leaning the buyer's needs and wants.
Research before you communicate with the buyer.
Questioning, listening and observing are particularly important once you are in contact with the buyer.
<HTML>
<a href="http://www.facebook.com/sharer.php" onclick="window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(location.href)+'&t='+encodeURIComponent(document.title), 'facebook','toolbar=no,width=700,height=400'); return false;"><img width="16" alt="facebook" src="http://i11.tinypic.com/626e0dk.gif" height="16" /></a>
</HTML>
//{{{
window.applyPageTemplate_orig_ads = window.applyPageTemplate;
window.applyPageTemplate = function(title) {
applyPageTemplate_orig_ads(title);
var box = document.getElementById('adsenseBox');
var bar = document.getElementById('adsenseBar');
var sidebar = document.getElementById('sidebar');
var sidebarOptions = document.getElementById('sidebarOptions');
var displayArea = document.getElementById('displayArea');
var tiddlerDisplay = document.getElementById('tiddlerDisplay');
if (false && sidebar && sidebarOptions && box) {
sidebar.insertBefore(box,sidebarOptions.nextSibling);
box.style.display = 'block';
}
else if (sidebar && box) {
sidebar.insertBefore(box,sidebar.childNodes[0]);
box.style.display = 'block';
}
if (displayArea && bar) {
//displayArea.insertBefore(bar,displayArea.childNodes[0]);
displayArea.appendChild(bar);
bar.style.display = 'block';
}
};
setStylesheet(
'#adsenseBox { background:#eee; }\n'+
'#adsenseBar { background:#eee; padding-left:1em; }\n'+
'',
'adsenseStyles');
//}}}
OutdoorAds or Out of Home Advertising:
Out-of-home advertising (also referred to as OOH) is essentially all type of advertising that reaches the consumer while he or she is outside the home. This is in contrast to broadcast, print, or internet advertising, which may be delivered to viewers out-of-home (e.g. via tradeshow, newsstand, hotel lobby room), but are usually for home or office viewing. Outdoor products are divided among three primary categories: Billboards, street furniture and transit. The most common product in OOH is the billboard. OOH encompasses outdoor advertising but extends to the indoors as well (such as ads in malls).
This is a non-exhaustive list. There are virtually no limits to shape and size of out-of-home advertising media.
<div id='header' class='header' macro='gradient vert #555555 #3b3b3b '>
<div class='siteTitle' refresh='content' tiddler='SiteTitle'></div>
<span id='topMenu' refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
- Price
- Product is not needed
- Prospect has an overstock of you or your competitor's products
- Delivery schedules
Selling is not a very complex process; it's just difficult to do consistently. That's why, whether you regard it as an art or a science, the discipline of selling starts with setting a precall objective.
A sales call must moves systematically toward a sale. Often, we are not talking about elaborate planning. Sometimes it only takes a few seconds before acall. But on every occasion it's vital for the sales representative ask, "Why I'm going in here for? What is the result I'm trying to achieve?".
The amount of money exchanged for something of value. Price and Value may differ; price is the transaction amount, whereas value is an opinion or estimate of worth.
<HTML>
<a href="http://findarticles.com/p/articles/mi_hb5986/is_200709/ai_n24179052">FindArticles - In the price?</a>
<cite>Investors Chronicle - magazine and web content, September, 2007</cite>
</HTML>
A salesperson who is a problem solver is who has the ability to develop and combine nontraditional alternatives to meet the specific needs (or wants) of the customer.
Is a good or service which can be bought and sold. In marketing, a product is anything that can be offered to a market that might satisfy a want or need.
In retailing, products are called merchandise. In manufacturing, products are purchased as raw materials and sold as finished goods. Commodities are usually raw materials such as metals and agricultural products, but a commodity can also be anything widely available in the open market.
Product, in marketing communications is often studied as part of service; being service the goal of satisfy a prospect need.
[[Product (as part of business) in W|http://en.wikipedia.org/wiki/Product_%28business%29]]
<HTML>
<!-- Wikipedia Link -->
<font size="2" face="Times">
| <a href="http://en.wikipedia.org/wiki/Promotion_%28marketing%29">W</a>
</font>
<!-- End Wikipedia Link -->
</HTML>
Promotion is the coordination of all seller initiated efforts to set up channels of information and persuasion to sell goods and services or promote an idea. While implicit communication occurs through the various elements of the marketing mix (MarketingMix), most of an organization's communications with the marketplace take place as part of a carefully planned and controlled promotional program.
Is a planned process to influence public opinion, through sound character and proper performance, based on mutually satisfactory two-way communication.
One of the most important objectives is identify key messages, target audiences and desired channels of communication.
Research is conducted toi do three things:
1- describe a process, situation or phenomenon
2- explain why something is happening
3- predict what probably will happen
RelationshipMarketing is the process of creating maintaining, and enhancing strong, value-laden relationships with customers and other stakeholders.
ReverseRipple is a NeedsAnalysis technique about asking general quiestions to the prospect first and then the mosre specific ones.
The SPIN technique include four types of questions in a specific sequence.
Stand for: Situation, Problem, Implication, Need-payoff
SPIN Selling was the originated by Neil Rackham who authored a book of the same name in 1988.
SPIN Selling is based on extensive research by Rackham and his company, Huthwaite. They examined large, complicated sales scenarios. After analysing more than 35,000 sales calls they were able to put to rest a variety of traditional myths about closing sales.
The book has been very successful selling over 150,000 copies.
The original survey showed that in successful sales calls it's the buyer who does most of the talking, which means that the salespeople are asking questions.
Asking questions means that the salesperson is building Rapport with the buyer building Rapport with the buyer which allows the buyer to feel more comfortable talking.
SPIN Selling proposes there are four types of questions, thus SPIN stands for :
* Situation ( questions )
Current scenario.
* Problem ( questions )
Problem questions implies the potential buyer have an issue on his/her operation. He/she will give some hints about something that bother him/her.
* Implication ( questions )
Diminishing profits. Longer product deliveries, etc.
* Need-payoff ( questions )
How cost effective prospect operation is. How's prospect efficiency compares with competition. Prospect will consider overhead cost when purchasing something.
Situation Questions deal with the facts about the buyers existing situation.
Problem Questions ask about the buyer's pain and focus the buyer on this pain while clarifying the problem, before asking implication questions. . These give Implied Needs.
Implication Questions discuss the effects of the problem, before talking about solutions, and develop the seriousness of the problem to increase the buyer's motivation to change.
Need-Payoff Questions get the buyer to tell you about their Explicit Needs and the benefits your solutions offers, rather than forcing you to explain the benefits to the buyer. Getting the buyer to state the benefits has greater impact while sounding a lot less pushy. What these questions do is probe for explicit needs.
The research uncovered the following facts :
The first students trained in the "SPIN" model showed an average of 17% improvement in sales results. (Other models show improvements on sales as well) Is pretty obvious tha rapport is essential in the selling process.
Ref: Source Here: [[www.sellingandpersuasiontechniques.com|http://www.sellingandpersuasiontechniques.com/SPIN-selling.html]]
-Plan and write down what you will say. This helps you organize and concisely present your message.
-Clearly identify yourself and your company.
-State the purpose of your call and briefly outline how the prospect may benefit from the interview.
-Prepare a brief sales message, stressing product benefits over features. Present only enough information to stimulate interest.
-Do not take no for an answer. Be persistent even if there is a negative reaction to the call.
-Ask for an interview so that you can further explain product benefits.
-Phrase your appointment request as a question. Your prospect should be given a choice, such as: "Would be nine a clock Tuesday be good for you?".
The presentation is to guide the prospect into the attention, interest, desire, and conviction.
SalesPresentation
Salesperson = ProblemSolver
<HTML>
<form action="http://www.google.com/cse" id="cse-search-box">
<div>
<input type="hidden" name="cx" value="012816376226779375206:tdhmacaja2y" />
<input type="text" name="q" size="25" />
<input type="submit" name="sa" value="Search" />
</div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>
</HTML>
Is generally acepted as an intagible acction in which the marketer will charge for.
Other short definitions include:
Intagible product.
The act or process of buying and selling in a market.
The commercial functions involved in transferring goods from producer to consumer.
[[Services More Profitably|http://www.bnet.com/2439-13056_23-200235.html]][img[http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/External.svg/12px-External.svg.png]]
The SalesPerson who understands the full range of the customer's needs is in a much better position to provide a product solution that helps the customer progress more efficiently and effectively toward achieving her organization's strategic goal.
/*{{{*/
/*Monochrome Theme for TiddlyWiki*/
/*Design and CSS by Saq Imtiaz*/
/*Version 1.0*/
/*}}}*/
/*{{{*/
body {background:#3B3B3B; color:#D4F7C1; font:13px Verdana, Helvetica, sans-serif;
}
#header {padding: 0em 0em 0em 0em; background:transparent; font-family: arial,helvetica; font-size:12px;
}
.siteTitle {
padding-top:5px;
float:left;
font-family: 'Trebuchet MS' sans-serif;
font-weight: bold;
font-size: 32px;
color: #E0610C; margin-right:2em;margin-left:0.5em;
}
#topMenu br {display:none;}
#topMenu a, #topMenu .tiddlyLink, #topMenu .button {margin:0em; color:#666; padding:15px 15px 10px 15px;padding-top:1.6em;border:none; border-right: 1px solid #666;float:left;}
#topMenu {border-left: 1px solid #666; float:left;margin:0;}
#topMenu a:hover {color:#ccc; background:#3b3b3b;}
#displayArea {margin-left:1.35em; margin-right:17.65em; margin-top:0.5em; padding-top:1em; padding-bottom:10px;}
.tiddler {background:#5D5D5D; margin-bottom:20px; padding:1em 2em 1em 2em;}
a, a:hover{
color:#fff;
text-decoration: none; background:transparent;
}
.viewer a, .viewer a:hover{border-bottom:1px dotted #fff; font-weight:normal;}
.viewer .button, .editorFooter .button{
color: #fff;
border: 1px solid #fff;
}
.viewer .button:hover,
.editorFooter .button:hover, .viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{
color: #fff;
background: #3B3B3B;
border-color: #3B3B3B;
}
.title {color:#33FF00; font-family:'Lucida Grande', Verdana, Sans-Serif; font-size:1.5em;
}
.subtitle, .subtitle a { color: #777; font-size: 0.95em;margin:0.2em;}
.shadow .title{color:#777;}
.toolbar {font-size:92%;}
.selected .toolbar a {color:#666;border:0;}
.selected .toolbar a:hover {color:#D5D5D5; background:transparent;border:0;}
.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#666;border:0; background:transparent;border:0;}
.tagging, .tagged {
border: 1px solid #555;
background-color: #444;
}
.selected .tagging, .selected .tagged {
background-color: #3B3B3B;
border: 1px solid #666;
}
.tagging .listTitle, .tagged .listTitle {
color: #666;
}
.selected .tagging .listTitle, .selected .tagged .listTitle {
color: #aaa;
}
.tagging .button, .tagged .button {
color: #838383;
}
.selected .tagging .button, .selected .tagged .button {
color:#c3c3c3;
}
.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}
.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {
border: none; background:transparent; text-decoration:underline; color:#333;
}
#sidebarOptions {margin-top:1.3em;}
#sidebar {margin-right:1.35em;}
#sidebarTabs .tabContents {
font-family: arial,helvetica;}
#sidebarOptions a, #sidebarOptions a:hover{border:none;color:#666;}
#sidebarOptions a:hover, #sidebarOptions a:active {background:#454545; color:#ccc;}
#sidebarTabs .tabContents {background:#454545;border:0px solid #666; border-right:1px solid #454545;}
#sidebarOptions input {background:#ccc; border:1px solid #666;}
#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#666;font-weight:normal;}
#sidebarTabs .tabContents .tiddlyLink:hover, #sidebarTabs .tabContents .button:hover {color:#ccc; background:transparent;}
.listTitle {color:#777;}
#sidebarTabs .tabSelected,#sidebarTabs .tabSelected:hover{background:#454545;border:none;color:#ccc; border:1px solid #454545;}
#sidebarTabs .tabUnselected{background:#3B3B3B; border:1px solid #454545; color:#666;}
#sidebarTabs .txtMoreTab .tabSelected,
#sidebarTabs .txtMoreTab .tab:hover,
#sidebarTabs .txtMoreTab .tabContents{
color: #ccc;
background: #3B3B3B; border:1px solid #3B3B3B;
}
#sidebarTabs .txtMoreTab .tabUnselected {
color: #777; border:1px solid #3B3B3B;
background: #454545;
}
#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#ccc; background:transparent;}
#sidebarOptions .sliderPanel {
background: #454545; font-size: .9em;
}
#sidebarOptions .sliderPanel input {border:1px solid #666; background:#ccc;}
#sidebarOptions .sliderPanel .txtOptionInput {border:1px solid #666;width:9em;}
#sidebarOptions .sliderPanel a {font-weight:normal; color:#666;background-color: #454545; border-bottom:1px dotted #333;}
#sidebarOptions .sliderPanel a:hover {
color:#ccc;
background-color: #454545;
border:none;
border-bottom:1px dotted #111;
}
.popup {
background: #3B3B3B;
border: 1px solid #454545;
}
.popup li.disabled {
color: #000;
}
.popup li a, .popup li a:visited {
color: #777;
border: none;
}
.popup li a:hover {
background: #3b3b3b;
color: #c3c3c3;
border: none;
}
.popup hr {
color: #777;
background: #777;
border-bottom: 1px;
}
.listBreak div{
border-bottom: 1px solid #777;
}
#messageArea {
border: 4px dotted #ccc;
background: #454545;
color: #777;
font-size:90%;
}
#messageArea .button{
color: #859080;
background:#ccc;
border: 1px solid #ccc;
}
#messageArea .button:hover {
color: #ccc;
background: #3B3B3B;
border-color: #3B3B3B;
}
.viewer blockquote {
border-left: 5px solid #3B3B3B; background:#3B3B3B
}
.viewer table, .viewer td {
border: 1px solid #2E2E2E;
}
.viewer th, thead td {
background: #3B3B3B;
border: 1px solid #3B3B3B;
color: #ccc;
}
.viewer pre {
border: 1px solid #3b3b3b;
background: #5F5F5F;
}
.viewer code {
color: #c3c3c3; background:#5f5f5f;
}
.viewer hr {
border-top: dashed 1px #222; margin:0 1em;
}
.editor input {
border: 1px solid #ccc; margin-top:5px;
}
.editor textarea {
border: 1px solid #ccc;
}
h1,h2,h3,h4,h5 { color: #9c9c9c; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }
h1 {font-size:18px;}
h2 {font-size:16px;}
h3 {font-size: 14px;}
@media print {.tiddler .toolbar {display; none ! important; }}
/***
!Usage
<<tagglyTagCloud>>
!Code
***/
//{{{
version.extensions.tagglyTagCloud = {major: 1, minor: 0 , revision: 0, date: new Date(2006,2,4)};
//Created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
config.macros.tagglyTagCloud = {
noTags: "No tag cloud created because there are no tags.",
tooltip: "%1 tiddlers tagged with '%0'"
};
config.macros.tagglyTagCloud .handler = function(place,macroName,params) {
var tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);
var tags = store.getTags();
for (var t=0; t<tags.length; t++) {
for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) tags[t][0] = "";
}
if(tags.length == 0)
createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);
//Findout the maximum number of tags
var mostTags = 0;
for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0){
if (tags[t][1] > mostTags) mostTags = tags[t][1];
}
//divide the mostTags into 4 segments for the 4 different tagCloud sizes
var tagSegment = mostTags / 4;
for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0){
var tagCloudElement = createTiddlyElement(tagCloudWrapper,"span",null,null,null);
tagCloudWrapper.appendChild(document.createTextNode(" "));
var theTag = createTiddlyLink(tagCloudElement,tags[t][0],true);
theTag.className += " tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1);
// theTag.setAttribute("tag",tags[t][0]);
}
};
setStylesheet(".tagCloud span{height: 1.8em;margin: 3px;}.tagCloud1{font-size: 1.2em;}.tagCloud2{font-size: 1.4em;}.tagCloud3{font-size: 1.6em;}.tagCloud4{font-size: 1.8em;}.tagCloud5{font-size: 1.8em;font-weight: bold;}","tagCloudsStyles");
//}}}
Transaction is a trade between two parties that involves at least two things of value, agreed-on conditions, a time of agreement, and a place of agreement.
Trial closing is the process of helping people make a decision that will benefit them. You help people make the decision by asking them to buy.
As successful salespeople know, there are no magic phrases and techniques to use in closing a sale. It is the end result of your presentation. If everything has been done to properly develop a sales presentation, closing the sale is the next step in a logical sequence.
/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{
// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'mkt';
// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
// disable autosave in d3
if (window.location.protocol != "file:")
config.options.chkGTDLazyAutoSave = false;
// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[Welcome to Tiddlyspot]] ");
MainMenu = MainMenu.replace(/^/,"[[Welcome to Tiddlyspot]] ");
}
// create some shadow tiddler content
merge(config.shadowTiddlers,{
'Welcome to Tiddlyspot':[
"This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
"<<tiddler TspotControls>>",
"See also GettingStarted.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),
'TspotControls':[
"| tiddlyspot password:|<<option pasUploadPassword>>|",
"| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
"| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),
'TspotSidebar':[
"<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),
'TspotOptions':[
"tiddlyspot password:",
"<<option pasUploadPassword>>",
""
].join("\n")
});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 16/05/2008 15:25:30 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 16/05/2008 15:26:52 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 16/05/2008 15:29:36 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . |
| 16/05/2008 15:31:38 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 16/05/2008 15:37:28 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 16/05/2008 15:38:42 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 16/05/2008 15:40:39 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . |
| 06/06/2008 14:18:17 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . | ok |
| 06/06/2008 14:26:44 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . |
| 16/06/2008 10:14:15 | MauricioOrtiz | [[/|http://mkt.tiddlyspot.com/]] | [[store.cgi|http://mkt.tiddlyspot.com/store.cgi]] | . | [[index.html | http://mkt.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
major: 1, minor: 0, revision: 2,
date: new Date("Apr 19, 2007"),
source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
coreVersion: '2.2.0 (Beta 5)'
};
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");
merge(config.macros.option.types, {
'pas': {
elementType: "input",
valueField: "value",
eventName: "onkeyup",
className: "pasOptionInput",
typeValue: config.macros.option.passwordInputType,
create: function(place,type,opt,className,desc) {
// password field
config.macros.option.genericCreate(place,'pas',opt,className,desc);
// checkbox linked with this password "save this password on this computer"
config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);
// text savePasswordCheckboxLabel
place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
},
onChange: config.macros.option.genericOnChange
}
});
merge(config.optionHandlers['chk'], {
get: function(name) {
// is there an option linked with this chk ?
var opt = name.substr(3);
if (config.options[opt])
saveOptionCookie(opt);
return config.options[name] ? "true" : "false";
}
});
merge(config.optionHandlers, {
'pas': {
get: function(name) {
if (config.options["chk"+name]) {
return encodeCookie(config.options[name].toString());
} else {
return "";
}
},
set: function(name,value) {config.options[name] = decodeCookie(value);}
}
});
// need to reload options to load passwordOptions
loadOptionsCookie();
/*
if (!config.options['pasPassword'])
config.options['pasPassword'] = '';
merge(config.optionsDesc,{
pasPassword: "Test password"
});
*/
//}}}
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
major: 4, minor: 1, revision: 0,
date: new Date("May 5, 2007"),
source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
coreVersion: '2.2.0 (#3125)'
};
//
// Environment
//
if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false; // true to activate both in Plugin and UploadService
//
// Upload Macro
//
config.macros.upload = {
// default values
defaultBackupDir: '', //no backup
defaultStoreScript: "store.php",
defaultToFilename: "index.html",
defaultUploadDir: ".",
authenticateUser: true // UploadService Authenticate User
};
config.macros.upload.label = {
promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
config.macros.upload.handler = function(place,macroName,params) {
if (readOnly)
return;
var label;
if (document.location.toString().substr(0,4) == "http")
label = this.label.saveLabel;
else
label = this.label.uploadLabel;
var prompt;
if (params[0]) {
prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0],
(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
} else {
prompt = this.label.promptOption;
}
createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};
config.macros.upload.action = function(params)
{
// for missing macro parameter set value from options
var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
var username = params[4] ? params[4] : config.options.txtUploadUserName;
var password = config.options.pasUploadPassword; // for security reason no password as macro parameter
// for still missing parameter set default value
if ((!storeUrl) && (document.location.toString().substr(0,4) == "http"))
storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
if (storeUrl.substr(0,4) != "http")
storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
if (!toFilename)
toFilename = bidix.basename(window.location.toString());
if (!toFilename)
toFilename = config.macros.upload.defaultToFilename;
if (!uploadDir)
uploadDir = config.macros.upload.defaultUploadDir;
if (!backupDir)
backupDir = config.macros.upload.defaultBackupDir;
// report error if still missing
if (!storeUrl) {
alert(config.macros.upload.messages.noStoreUrl);
clearMessage();
return false;
}
if (config.macros.upload.authenticateUser && (!username || !password)) {
alert(config.macros.upload.messages.usernameOrPasswordMissing);
clearMessage();
return false;
}
bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password);
return false;
};
config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir)
{
if (!storeUrl)
return null;
var dest = bidix.dirname(storeUrl);
if (uploadDir && uploadDir != '.')
dest = dest + '/' + uploadDir;
dest = dest + '/' + toFilename;
return dest;
};
//
// uploadOptions Macro
//
config.macros.uploadOptions = {
handler: function(place,macroName,params) {
var wizard = new Wizard();
wizard.createWizard(place,this.wizardTitle);
wizard.addStep(this.step1Title,this.step1Html);
var markList = wizard.getElement("markList");
var listWrapper = document.createElement("div");
markList.parentNode.insertBefore(listWrapper,markList);
wizard.setValue("listWrapper",listWrapper);
this.refreshOptions(listWrapper,false);
var uploadCaption;
if (document.location.toString().substr(0,4) == "http")
uploadCaption = config.macros.upload.label.saveLabel;
else
uploadCaption = config.macros.upload.label.uploadLabel;
wizard.setButtons([
{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption,
onClick: config.macros.upload.action},
{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
]);
},
refreshOptions: function(listWrapper) {
var uploadOpts = [
"txtUploadUserName",
"pasUploadPassword",
"txtUploadStoreUrl",
"txtUploadDir",
"txtUploadFilename",
"txtUploadBackupDir",
"chkUploadLog",
"txtUploadLogMaxLine",
]
var opts = [];
for(i=0; i<uploadOpts.length; i++) {
var opt = {};
opts.push()
opt.option = "";
n = uploadOpts[i];
opt.name = n;
opt.lowlight = !config.optionsDesc[n];
opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
opts.push(opt);
}
var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
for(n=0; n<opts.length; n++) {
var type = opts[n].name.substr(0,3);
var h = config.macros.option.types[type];
if (h && h.create) {
h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
}
}
},
onCancel: function(e)
{
backstage.switchTab(null);
return false;
},
wizardTitle: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
cancelButtonPrompt: "Cancel prompt",
listViewTemplate: {
columns: [
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
}
//
// upload functions
//
if (!bidix.upload) bidix.upload = {};
if (!bidix.upload.messages) bidix.upload.messages = {
//from saving
invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
var callback = function(status,uploadParams,original,url,xhr) {
if (!status) {
displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
return;
}
if (bidix.debugMode)
alert(original.substr(0,500)+"\n...");
// Locate the storeArea div's
var posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
bidix.upload.uploadRss(uploadParams,original,posDiv);
};
if(onlyIfDirty && !store.isDirty())
return;
clearMessage();
// save on localdisk ?
if (document.location.toString().substr(0,4) == "file") {
var path = document.location.toString();
var localPath = getLocalPath(path);
saveChanges();
}
// get original
var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
var originalPath = document.location.toString();
// If url is a directory : add index.html
if (originalPath.charAt(originalPath.length-1) == "/")
originalPath = originalPath + "index.html";
var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
var log = new bidix.UploadLog();
log.startUpload(storeUrl, dest, uploadDir, backupDir);
displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
if (bidix.debugMode)
alert("about to execute Http - GET on "+originalPath);
var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
bidix.upload.uploadRss = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
if(status) {
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
bidix.upload.uploadMain(params[0],params[1],params[2]);
} else {
displayMessage(bidix.upload.messages.rssFailed);
}
};
// do uploadRss
if(config.options.chkGenerateAnRssFeed) {
var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),callback,Array(uploadParams,original,posDiv));
} else {
bidix.upload.uploadMain(uploadParams,original,posDiv);
}
};
bidix.upload.uploadMain = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
var log = new bidix.UploadLog();
if(status) {
// if backupDir specified
if ((params[3]) && (responseText.indexOf("backupfile:") > -1)) {
var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
}
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
store.setDirty(false);
log.endUpload("ok");
} else {
alert(bidix.upload.messages.mainFailed);
displayMessage(bidix.upload.messages.mainFailed);
log.endUpload("failed");
}
};
// do uploadMain
var revised = bidix.upload.updateOriginal(original,posDiv);
bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};
bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
var localCallback = function(status,params,responseText,url,xhr) {
url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
if (xhr.status == httpStatus.NotFound)
alert(bidix.upload.messages.storePhpNotFound.format([url]));
if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
alert(responseText);
if (responseText.indexOf("Debug mode") >= 0 )
responseText = responseText.substring(responseText.indexOf("\n\n")+2);
} else if (responseText.charAt(0) != '0')
alert(responseText);
if (responseText.charAt(0) != '0')
status = null;
callback(status,params,responseText,url,xhr);
};
// do httpUpload
var boundary = "---------------------------"+"AaB03x";
var uploadFormName = "UploadPlugin";
// compose headers data
var sheader = "";
sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
sheader += uploadFormName +"\"\r\n\r\n";
sheader += "backupDir="+uploadParams[3] +
";user=" + uploadParams[4] +
";password=" + uploadParams[5] +
";uploaddir=" + uploadParams[2];
if (bidix.debugMode)
sheader += ";debug=1";
sheader += ";;\r\n";
sheader += "\r\n" + "--" + boundary + "\r\n";
sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
sheader += "Content-Length: " + data.length + "\r\n\r\n";
// compose trailer data
var strailer = new String();
strailer = "\r\n--" + boundary + "--\r\n";
data = sheader + data + strailer;
if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
if (!posDiv)
posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
store.allTiddlersAsHtml() + "\n" +
original.substr(posDiv[1]);
var newSiteTitle = getPageTitle().htmlEncode();
revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
return revised;
};
//
// UploadLog
//
// config.options.chkUploadLog :
// false : no logging
// true : logging
// config.options.txtUploadLogMaxLine :
// -1 : no limit
// 0 : no Log lines but UploadLog is still in place
// n : the last n lines are only kept
// NaN : no limit (-1)
bidix.UploadLog = function() {
if (!config.options.chkUploadLog)
return; // this.tiddler = null
this.tiddler = store.getTiddler("UploadLog");
if (!this.tiddler) {
this.tiddler = new Tiddler();
this.tiddler.title = "UploadLog";
this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
this.tiddler.created = new Date();
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
}
return this;
};
bidix.UploadLog.prototype.addText = function(text) {
if (!this.tiddler)
return;
// retrieve maxLine when we need it
var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
if (isNaN(maxLine))
maxLine = -1;
// add text
if (maxLine != 0)
this.tiddler.text = this.tiddler.text + text;
// Trunck to maxLine
if (maxLine >= 0) {
var textArray = this.tiddler.text.split('\n');
if (textArray.length > maxLine + 1)
textArray.splice(1,textArray.length-1-maxLine);
this.tiddler.text = textArray.join('\n');
}
// update tiddler fields
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
// refresh and notifiy for immediate update
story.refreshTiddler(this.tiddler.title);
store.notify(this.tiddler.title, true);
};
bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {
if (!this.tiddler)
return;
var now = new Date();
var text = "\n| ";
var filename = bidix.basename(document.location.toString());
if (!filename) filename = '/';
text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
text += config.options.txtUserName + " | ";
text += "[["+filename+"|"+location + "]] |";
text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
text += uploadDir + " | ";
text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
text += backupDir + " |";
this.addText(text);
};
bidix.UploadLog.prototype.endUpload = function(status) {
if (!this.tiddler)
return;
this.addText(" "+status+" |");
};
//
// Utilities
//
bidix.checkPlugin = function(plugin, major, minor, revision) {
var ext = version.extensions[plugin];
if (!
(ext &&
((ext.major > major) ||
((ext.major == major) && (ext.minor > minor)) ||
((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
// write error in PluginManager
if (pluginInfo)
pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
}
};
bidix.dirname = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(0, lastpos);
} else {
return filePath.substring(0, filePath.lastIndexOf("\\"));
}
};
bidix.basename = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("#")) != -1)
filePath = filePath.substring(0, lastpos);
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(lastpos + 1);
} else
return filePath.substring(filePath.lastIndexOf("\\")+1);
};
bidix.initOption = function(name,value) {
if (!config.options[name])
config.options[name] = value;
};
//
// Initializations
//
// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);
// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");
//optionsDesc
merge(config.optionsDesc,{
txtUploadStoreUrl: &q