/* ---------- js/siteGlobal.js ---------- */

var siteGlobal=function(){function validateForm(id){function isEmpty(val){var testExp=/^\w+/i;return(testExp.test(val))?false:true;}
var errors=[];var formEl=($(id).tagName=='FORM')?$(id):$(id).down('form');formEl.select('.req').each(function(el,i){if(el.hasClassName('req')){var elLbl=$(el.id+'_label').innerHTML;switch(el.tagName){case'INPUT':switch(el.type){case'text':if(isEmpty(el.value)){errors.push(elLbl+' was left empty.');}else{if(el.hasClassName('email')){var format=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;if(!format.test(el.value)){errors.push(elLbl+' is formatted wrong.');}}}
break;case'radio':break;case'checkbox':break;}
break;case'SELECT':if(el.value==''){errors.push(elLbl+' was left empty.');}
break;case'TEXTAREA':if(isEmpty(el.value)){errors.push(elLbl+' was left empty.');}
break;}}});return errors;}
function alertErrors(errEL,errs,type){if(errs.length>0){var errStr='';errs.each(function(err){errStr+='<li>'+err+'</li>';});errStr='<div class="errContent"><h2>The following errors have been detected:</h2><ol>'+errStr+'</ol><div class="close" onclick="javascript:siteGlobal.closeFormMsg(this);"></div></div>';var errMsgEL=errEL.next('div.errMsg');if(errMsgEL===undefined){var newEL=new Element('div',{'class':'errMsg','style':'display:none;'});errEL.insert({'after':newEL});errMsgEL=errEL.next('div.errMsg');}
errMsgEL.update(errStr).blindDown({'duration':.5});}}
var pub=function(){return{emailFriendPop:function(siteID,contentID){if(!$('eFriendPopUp')){var newEL=new Element('div',{'id':'eFriendPopUp','style':'display:none'});$('tWrapper').insert({'bottom':newEL});}
var eForm='<div class="wrapper">\
    <div class="form">\
    <h2>E-mail this page to a colleague.</h2>\
    <form id="eFriendForm" action="#" method="post" onsubmit="return siteGlobal.emailFriendSend();">\
    <fieldset>\
    <legend>To:</legend>\
    <div class="cols">\
     <div class="col">\
      <label id="ToName_label" for="ToName">Name</label>\
      <input type="text" class="text req" id="ToName" name="ToName" value="" />\
     </div>\
     <div class="col">\
      <label id="ToEmail_label" for="ToEmail">Email</label>\
      <input type="text" class="text req email" id="ToEmail" name="ToEmail" value="" />\
     </div>\
    </div>\
    </fieldset>\
    <fieldset>\
    <legend>From:</legend>\
    <div class="cols">\
     <div class="col">\
      <label id="FromName_label" for="FromName">Name</label>\
      <input type="text" class="text req" id="FromName" name="FromName" value="" />\
     </div>\
     <div class="col">\
      <label id="FromEmail_label" for="FromEmail">Email</label>\
      <input type="text" class="text req email" id="FromEmail" name="FromEmail" value="" />\
     </div>\
    </div>\
    </fieldset>\
    <fieldset class="formButtons">\
     <input type="submit" class="formButton fSubmit" value="" />\
     <input type="button" class="formButton fCancel" onclick="siteGlobal.emailFriendClose();" />\
    </fieldset>\
    <input type="hidden" name="siteID" value="'+siteID+'" />\
    <input type="hidden" name="contentID" value="'+contentID+'" />\
    </form>\
    </div>\
    </div>';var formEL=$('eFriendPopUp').update(eForm).appear({'durtion':.5});},emailFriendSend:function(){var formEL=$('eFriendForm');var errors=validateForm(formEL);if(errors.length>0){alertErrors(formEL,errors);}else{var ajaxFile='ajax/emailFriend.php';var ajaxParams=formEL.serialize(true);ajaxParams.cmd='send';var ajaxOpts={method:'post',parameters:ajaxParams,onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();var thanksMSG='<fieldset>'+resp.msg+'</fieldset><fieldset class="formButtons"><input type="button" class="formButton fClose" onclick="siteGlobal.emailFriendClose();" /></fieldset>';formEL.onsubmit=null;formEL.update(thanksMSG);}}
new Ajax.Request(ajaxFile,ajaxOpts);}
return false;},emailFriendClose:function(){var fEL=$('eFriendPopUp');fEL.fade({'durtion':.5});},printFriendly:function(contentID,siteID){var siteID=siteID||1;var pURL=this.baseHTML+'printFriendly.php';var pCSS='printFriendly/site_'+siteID+'/site_'+siteID+'.css';Dynalicious.printFriendly({'el':'.printFriendly','url':pURL,'css':pCSS});},siteLogin:function(){var formEL=$('loginForm');var errors=validateForm(formEL);if(errors.length<1){var ajaxFile='ajax/front_login.php';var ajaxParams=formEL.serialize(true);ajaxParams.cmd='login';var ajaxOpts={method:'post',parameters:ajaxParams,onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();if(resp.errors.length>0){alertErrors(formEL,resp.errors);}else{window.location=resp.redir;}}}
new Ajax.Request(ajaxFile,ajaxOpts);}else{alertErrors(formEL,errors);}
return false;},closeFormMsg:function(btnEL){$(btnEL).up('.errMsg').blindUp({'duration':.5});},popUpImg:function(img){var newEL=new Element('div',{'id':'imgPopUp','class':'imgPopUp','style':'visibility:hidden;position:absolute;top:0;z-index:999999;left:50%;'}).update('<img src="'+img+'" /><div class="close" onclick="javascript:siteGlobal.closePopUpImg(this);"></div>');$('tWrapper').insert({'bottom':newEL});var popEL=$('imgPopUp');var popImg=popEL.down('img');new PeriodicalExecuter(function(pe){var imgDims=popImg.getDimensions();if(imgDims.width>0){var divWidth=imgDims.width;var divHeight=imgDims.height;var divMar=0-(divWidth/2);popEL.setStyle({'display':'none','visibility':'visible','marginLeft':divMar+'px','width':divWidth+'px','height':divHeight+'px'});popEL.blindDown({'duration':.5});pe.stop();}},.1);},closePopUpImg:function(btnEL){$(btnEL).up('.imgPopUp').blindUp({'duration':.5,'afterFinish':function(){$(btnEL).up('.imgPopUp').remove();}});}}}();return pub;}();function send_msg(){var errors=new Array();var error_msg="The following errors have been detected:\n----------------------------------------\n";if($('name').value==''||$('name').value==' '){errors.push('Please fill in your name!');}
if($('email').value==''||$('email').value==' '){errors.push('Please fill in your email!');}
if($('message').value==''||$('message').value==' '){errors.push('Please send me a message!');}
if(errors.length>0){for(var i=0;i<errors.length;i++){error_msg+=(i+1)+". "+errors[i]+"\n";}
error_msg+="----------------------------------------\nPlease fix and re-submit.";alert(error_msg);}else{var ajax_script='http://www.dalyvisions.com/ajax/send_msg.php';var params='email='+encodeURIComponent($('email').value)+'&name='+encodeURIComponent($('name').value)+'&message='+encodeURIComponent($('message').value)+'&doit=y';var opts={method:'post',parameters:params,onSuccess:function(resp){alert(resp.responseText);$('contact_form').innerHTML='<p class="msg">Thanks for your inquiry into dalyVisions!</p>';},onFailure:function(){alert('Something went wrong...');}};new Ajax.Request(ajax_script,opts);}}
var curr_picts=null;function showPicts(picts){if(curr_picts!=null){new Effect.BlindUp(curr_picts);}
new Effect.BlindDown(picts);curr_picts=picts;}
function hidePicts(picts){new Effect.BlindUp(picts);curr_picts=null;}
function focusField(id,str){var val=$(id).value;if(val==str){$(id).value='';}}
function blurField(id,str){var val=$(id).value;if(val==''){$(id).value=str;}}
function FAQToggleAnswer(question){var answers=question.getElementsByTagName('ul');if(answers[0]){if(answers[0].style.display!='block'){answers[0].style.display='block';}else{answers[0].style.display='none';}}}
function siteSearch(on_submit){var errors=[];var error_srting='';var form_el=$('siteSearch_form');var search_phrase=$('siteSearch_phrase').value;if(search_phrase==''||search_phrase=='-search-'){errors.push('Search phrase was left empty.');}
if(errors.length>0){error_srting='The following errors have been detected:'+"\n\n";for(var i=0;i<errors.length;i++){error_srting+=(i+1)+'. '+errors[i]+"\n";}
error_srting+="\n"+'Please fix these errors and re-submit the form.';alert(error_srting);if(on_submit){return false;}}else{if(on_submit){return true;}else{form_el.submit();}}}
function joinEmail(on_submit){var errors=[];var error_srting='';var form_el=$('joinEmail_form');if($('join_email').value==''){errors.push('Please enter your email address.');}
if(errors.length>0){error_srting='The following errors have been detected:'+"\n\n";for(var i=0;i<errors.length;i++){error_srting+=(i+1)+'. '+errors[i]+"\n";}
error_srting+="\n"+'Please fix these errors and re-submit the form.';alert(error_srting);if(on_submit){return false;}}else{if(on_submit){return true;}else{form_el.submit();}}}
function featured(id,state,url){switch(state){case'over':$(id).addClassName('featuredItem_hover');break;case'out':$(id).removeClassName('featuredItem_hover');break;case'click':window.location=url;break;}}

/* ---------- js/AskAnswer/AskAnswer.js ---------- */

var AskAnswer=function(){var BASE=Dynalicious.httpBase+'js/AskAnswer/';var ajaxFile=BASE+'ajax/';var ajaxRunning=[];var cssFile=BASE+'css/default.css';var SELF=this;var TOPICS=[];var QUESTIONS=[];var ANSWER=[];var COUNTRY=0;var COUNTRIES=[];var STATES=[];var INDUSTRIES=[];var HELPFUL=[];function getSelected(type){var selected=undefined;var pEl=$(type).down('.content')||undefined;if(pEl!==undefined&&!pEl.empty()){var focusEl=pEl.down('li.focus');if(focusEl!==undefined){var preFocusEl=focusEl.previous('li',0);var focusIndex=0;while(preFocusEl!==undefined){focusIndex++;preFocusEl=preFocusEl.previous('li',0);}
switch(type){case'topics':selected=TOPICS[focusIndex];break;case'questions':selected=QUESTIONS[focusIndex];break;}}}
return selected;}
function getElIndex(el,selector){var elIndex=0;var preEl=el.previous(selector);while(preEl!==undefined){elIndex++;preEl=preEl.previous(selector);}
return elIndex;}
function ajaxIdle(fnc){return(inArray(fnc,ajaxRunning))?false:true;}
function ajaxStart(fnc){ajaxStop(fnc)
ajaxRunning.push(fnc);}
function ajaxStop(fnc){var i,len=ajaxRunning.length;for(i=0;i<len;i++){if(fnc==ajaxRunning[i]){ajaxRunning.splice(i,1);break;}}}
function inArray(needle,haystack){var i,hayLen=haystack.length;for(i=0;i<hayLen;i++){if(needle==haystack[i]){return true;}}
return false;}
function getTopics(){ajaxStart('getTopics');var ajaxOpts={method:'post',parameters:{'cmd':'getTopics'},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();TOPICS=resp.data;ajaxStop('getTopics');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getQuestions(){ajaxStart('getQuestions');var ajaxOpts={method:'post',parameters:{'cmd':'getQuestions','topicID':getSelected('topics').id},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();QUESTIONS=resp.data;ajaxStop('getQuestions');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getAnswer(i){ajaxStart('getAnswer');var ajaxOpts={method:'post',parameters:{'cmd':'getAnswer','questionID':QUESTIONS[i].id},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();ANSWER[i]=resp.data;ajaxStop('getAnswer');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getComments(){ajaxStart('getComments');var ajaxOpts={method:'post',parameters:{'cmd':'getComments','answerID':getSelected('topics').id},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();COMMENTS=resp.data;ajaxStop('getComments');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function listTopics(id,qID){var qID=qID||0;var focusID=id||0;var focusIndex=-1;getTopics();new PeriodicalExecuter(function(pe){if(ajaxIdle('getTopics')){var container=$('topics');var content='';var items=TOPICS;if(items.length>0){var itemsList=[];items.each(function(item,i){if(focusID==item.id){focusIndex=i;}
itemsList.push('<li>'+item.title+'</li>');});content='<ul>'+"\n"+itemsList.join('')+'</ul>'+"\n";}
itemContent='<div class="Dynalicious DynaScroll scroll" DynaParams="{\'theme\':null,\'info\':[\'both\',null]}" id="topicsList"><div class="DynaContainer">'+content+'</div></div>';container.down('.content').update(itemContent);Dynalicious.reload(container);if(focusIndex>-1){selectTopic(focusIndex,qID);}
pe.stop();}},.1);}
function selectTopic(topicIndex,qID){$('topics').down('div.content').down('li',topicIndex).addClassName('focus');listQuestions(qID);}
function listQuestions(id){var focusID=id||0;var focusIndex=-1;ANSWER.clear();getQuestions();new PeriodicalExecuter(function(pe){if(ajaxIdle('getQuestions')){var container=$('questions');var content='';var items=QUESTIONS;if(items.length>0){var itemsList=[];items.each(function(item,i){var focus='';if(item.id==focusID){focusIndex=i;}
itemsList.push('<li>'+item.question+'</li>');});content='<ul>'+"\n"+itemsList.join('')+'</ul>'+"\n";}
itemContent='<div class="Dynalicious DynaScroll scroll" DynaParams="{\'theme\':null,\'info\':[\'both\',null]}" id="questionsList"><div class="DynaContainer">'+content+'</div></div>';container.down('h2.title').update('Topic: '+getSelected('topics').title);container.down('.content').update(itemContent);container.show();Dynalicious.reload(container);if(focusIndex>-1){selectQuestion(focusIndex);}
pe.stop();}},.1);}
function selectQuestion(questionIndex){$('questions').down('div.content').down('li',questionIndex).addClassName('focus');answerQuestion(questionIndex);}
function answerQuestion(i){if(typeof ANSWER[i]!=='object'){getAnswer(i);new PeriodicalExecuter(function(pe){if(ajaxIdle('getAnswer')){revealAnswer(i);pe.stop();}},.1);}else{revealAnswer(i);}}
function revealAnswer(i){var container=$('results');$('answer').down('.content').update();$('related').down('.content').update();var aInfo=(QUESTIONS[i].fname!==undefined&&QUESTIONS[i].fname!=='')?'<div class="qSubmitBy">This question submitted by: '+QUESTIONS[i].fname+' - '+QUESTIONS[i].industry+' - '+QUESTIONS[i].state+' - '+QUESTIONS[i].country+'</div>':'';aInfo+='<div class="answer">'+ANSWER[i].answer+'</div>';$('answer').down('.content').update(aInfo);var qID=getSelected('questions').id;var aActs='<ul>';if(!Dynalicious.inArray(qID,HELPFUL)){aActs+='<li class="act_helpful">This was helpful</li>';}
aActs+='<li class="act_info">I need more info</li><li class="act_share">Share this topic</li><li class="act_print">Print Friendly</li></ul>';$('answer').down('.actions').update(aActs);var relatedContent='';if(typeof ANSWER[i].files==='object'){var files='';ANSWER[i].files.each(function(fInfo,fI){var fDisplay=(typeof fInfo.title==='string'&&fInfo.title!='')?fInfo.title:fInfo.name;files+='<div><img src="'+fInfo.img+'" /><a href="'+fInfo.path+fInfo.name+'" target="_blank">'+fDisplay+'</a></div>';});if(files!=''){relatedContent+='<div class="files">'+files+'</div>';}}
if(typeof ANSWER[i].videos==='object'){var videos='';ANSWER[i].videos.each(function(vInfo,vI){videos+='<div class="vid"><img src="'+vInfo.img+'" /><h3>'+vInfo.title+'</h3><p>'+vInfo.copy+'</p><div class="actions"><ul><li class="act_play">Play</li></ul></div></div>';});if(videos!=''){relatedContent+='<div class="videos">'+videos+'</div>';}}
if(typeof ANSWER[i].links==='object'){var links='';ANSWER[i].links.each(function(lInfo,lI){links+='<li><a href="'+lInfo.href+'">'+lInfo.title+'</a></li>';});if(links!=''){relatedContent+='<div class="links"><h3>Additional Links</h3><ul>'+links+'</ul></div>';}}
if(relatedContent!=''){$('related').down('.content').update(relatedContent);}
new Effect.BlindDown(container,{duration:0.3});}
function checkTarget(target_el){var tmp_el=undefined;if(target_el.tagName!='LI'){tmp_el=target_el.up('li',0);}
return(tmp_el!==undefined)?tmp_el:target_el;}
function overEvent(event){var target_el=checkTarget(event.element());if(target_el.tagName=='LI'){target_el.addClassName('hover');}}
function outEvent(event){var target_el=event.element();var related_el=event.relatedTarget||event.toElement;if(related_el!==null){while(related_el!=target_el&&related_el.nodeName!='BODY'&&related_el.nodeName!='HTML'){related_el=related_el.parentNode;}
if(related_el==target_el)return;target_el.removeClassName('hover');}}
function upEvent(event){var target_el=checkTarget(event.element());var target_index=-1;var sect=target_el.up('div.sect').identify();var opts=(target_el.up('div.actions')!==undefined)?true:false;switch(target_el.tagName){case'LI':var ok=(!target_el.hasClassName('focus')&&target_el.up('ul.arrows')===undefined)?true:false;var actionsEl=target_el.up('div.actions');if(actionsEl!==undefined){var action=Dynalicious.getAction(target_el);}
target_index=getElIndex(target_el,'LI');if(!opts&&ok){var currFocus=target_el.up('div.sect').down('li.focus');if(currFocus!==undefined){currFocus.removeClassName('focus');}
target_el.addClassName('focus');}
switch(sect){case'topics':if(ok){$('questions').down('div.content').update();$('results').down('div.content').update();$('results').hide();listQuestions();}
break;case'questions':if(action!==undefined){switch(action){case'submit':openInfoForm('question');break;}}else{answerQuestion(target_index);}
break;case'answer':if(action!==undefined){switch(action){case'share':openShareForm();break;case'print':var printEls=[$('questions').down('div.content').down('.focus'),$('results').down('.answer')];var siteID=siteID||1;var pURL='printFriendly.php';var pCSS='printFriendly/site_'+siteID+'/site_'+siteID+'.css';Dynalicious.printFriendly({'el':printEls,'url':pURL,'css':pCSS});break;case'helpful':isHelpful();break;case'info':openInfoForm();break;}}
break;case'related':if(action!==undefined){switch(action){case'play':var vI=getElIndex(target_el,'div.vid');var qEL=$('questions').down('div.content').down('li.focus');var qI=getElIndex(qEL,'li');var vid=ANSWER[qI].videos[vI];playVideo(vid);break;}}
break;}
break;}}
function openShareForm(){var shareForm='<div class="form" id="shareTopicForm">\
  <div class="formMsg" style="display:none;"><div class="formMsgBody"></div><a href="javascript:AskAnswer.hideFormMsg(\'shareTopicForm\');" class="formMsgClose">close</a></div>\
  <div class="formBody">\
  <form>\
  <fieldset>\
  <label id="shareFromName_label" for="shareFromName">Your Name</label><input type="text" class="text req" value="" id="shareFromName" name="shareFromName" />\
  <label id="shareFromEmail_label" for="shareFromEmail">Your Email</label><input type="text" class="text req" value="" id="shareFromEmail" name="shareFromEmail" />\
  <label id="shareToEmail_label" for="shareToEmail">Share Email(s)</label><span class="fieldDescript">Separated by commas</span><textarea class="req" id="shareToEmail" name="shareToEmail"></textarea>\
  </fieldset>\
  </form>\
  <div class="buttons"><ul><li onclick="AskAnswer.shareTopic();">share</li><li onclick="AskAnswer.closeWin();">cancel</li></ul></div>\
  </div>\
  </div>';Dynalicious.openOverlayWin(shareForm,{'closeWin':false,'w':'300px','h':'230px'});}
function openInfoForm(type){var type=type||'info';var contactOpts='<option value="By Phone">By Phone</option><option value="By Email">By Email</option>';var infoForm='<div class="form infoForm" id="'+type+'Form">\
  <div class="formMsg" style="display:none;"><div class="formMsgBody"></div><a href="javascript:AskAnswer.hideFormMsg(\''+type+'Form\');" class="formMsgClose">close</a></div>\
  <div class="formBody">\
  <form>\
  <fieldset>\
  <div class="cols">\
   <div class="col">\
    <label id="infoFirstName_label" for="infoFirstName">First Name</label><input type="text" class="text req" value="" id="infoFirstName" name="infoFirstName" />\
    <label id="infoLastName_label" for="infoLastName">Last Name</label><input type="text" class="text req" value="" id="infoLastName" name="infoLastName" />\
    <label id="infoCompanyName_label" for="infoCompanyName">Company Name</label><input type="text" class="text req" value="" id="infoCompanyName" name="infoCompanyName" />\
    <label id="infoCountry_label" for="infoCountry">Country</label><select class="req" id="infoCountry" name="infoCountry"></select>\
    <label id="infoPhone_label" for="infoPhone">Phone</label><input type="text" class="text req" value="" id="infoPhone" name="infoPhone" />\
    <label id="infoEmail_label" for="infoEmail">Email</label><input type="text" class="text req" value="" id="infoEmail" name="infoEmail" />\
    <label id="infoContact_label" for="infoContact">How would you like to be contacted?</label><select class="req" id="infoContact" name="infoContact"><option value="">Choose your preferred method</option>'+contactOpts+'</select>\
   </div>\
   <div class="col">\
    <label id="infoQuestion_label" for="infoQuestion">Question</label><textarea class="req" id="infoQuestion" name="infoQuestion"></textarea>\
   </div>\
  </div>\
  </fieldset>\
  </form>\
  <div class="buttons"><ul><li onclick="AskAnswer.submitInfo(\''+type+'\');">submit</li><li onclick="AskAnswer.closeWin();">cancel</li></ul></div>\
  </div>\
  <a href="privacy-policy.html">Privacy Policy</a>\
  </div>';Dynalicious.openOverlayWin(infoForm,{'closeWin':false,'w':'500px','h':'370px'});getCountryOpts('infoCountry');}
function getIndustries(){ajaxStart('getIndustries');var ajaxOpts={method:'post',parameters:{'cmd':'getIndustries'},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();INDUSTRIES=resp.data;ajaxStop('getIndustries');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getIndustryOpts(selectID){getIndustries();new PeriodicalExecuter(function(pe){if(ajaxIdle('getIndustries')&&$(selectID)){var items=INDUSTRIES;var itemsList=[];itemsList.push('<option value="">Choose an industry</option>');if(items.length>0){items.each(function(item,i){itemsList.push('<option value="'+item.id+'">'+item.name+'</option>');});}
$(selectID).update(itemsList.join(''));pe.stop();}},.1);}
function getCountries(){ajaxStart('getCountries');var ajaxOpts={method:'post',parameters:{'cmd':'getCountries'},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();COUNTRIES=resp.data;ajaxStop('getCountries');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getCountryOpts(selectID){getCountries();new PeriodicalExecuter(function(pe){if(ajaxIdle('getCountries')&&$(selectID)){var items=COUNTRIES;var itemsList=[];itemsList.push('<option value="">Choose a country</option>');if(items.length>0){items.each(function(item,i){itemsList.push('<option value="'+item.name+'">'+item.name+'</option>');});}
$(selectID).update(itemsList.join(''));pe.stop();}},.1);}
function getStates(countryID){ajaxStart('getStates');var ajaxOpts={method:'post',parameters:{'cmd':'getStates','countryID':countryID},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();STATES=resp.data;ajaxStop('getStates');}}
new Ajax.Request(ajaxFile,ajaxOpts);}
function getStateOpts(countryID,selectID){getStates(countryID);new PeriodicalExecuter(function(pe){if(ajaxIdle('getStates')&&$(selectID)){var items=STATES;var itemsList=[];itemsList.push('<option value="">Choose a state</option>');if(items.length>0){items.each(function(item,i){itemsList.push('<option value="'+item.id+'">'+item.name+'</option>');});}
$(selectID).update(itemsList.join(''));pe.stop();}},.1);}
function checkForm(id){function isEmpty(val){var testExp=/^\w+/i;return(testExp.test(val))?false:true;}
var resp={};resp.errors=[];var formEl=($(id).tagName=='FORM')?$(id):$(id).down('form');formEl.select('.req').each(function(el,i){if(el.hasClassName('req')){var elLbl=$(el.id+'_label').innerHTML;switch(el.tagName){case'INPUT':switch(el.type){case'text':if(isEmpty(el.value)){resp.errors.push(elLbl+' was left empty.');}
break;case'radio':break;case'checkbox':break;}
break;case'SELECT':if(el.value==''){resp.errors.push(elLbl+' was left empty.');}
break;case'TEXTAREA':if(isEmpty(el.value)){resp.errors.push(elLbl+' was left empty.');}
break;}}});resp.pass=(resp.errors.length>0)?false:true;if(!resp.pass){resp.parseErrors=function(){var errs='';this.errors.each(function(err){errs+='<li>'+err+'</li>';});return'<h2>The following errors were detected:</h2><ol>'+errs+'</ol>';}}else{resp.JSON=formEl.serialize(true);}
return resp;}
function playVideo(vid){var videoPlayer='<div class="vidPlayer"> \
  <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="320" height="265" id="Flexco_videoPlayer" align="middle"> \
  <param name="allowScriptAccess" value="sameDomain" /> \
  <param name="allowFullScreen" value="true" /> \
  <param name="movie" value="mediabase/Flexco_videoPlayer.swf" /> \
  <param name="flashvars" value="myURL='+vid.path+'" /> \
  <param name="quality" value="high" /> \
  <param name="bgcolor" value="#000000" /> \
  <param name=wmode value="transparent">\
  <embed src="mediabase/Flexco_videoPlayer.swf" flashvars="myURL='+vid.path+'" wmode="transparent" quality="high" bgcolor="#000000" width="320" height="265" name="Flexco_videoPlayer" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> \
  </object> \
  </div>';Dynalicious.openOverlayWin(videoPlayer,{'closeWin':true,'w':'360px','h':'290px'});}
function isHelpful(){var qID=getSelected('questions').id;HELPFUL.push(qID);var ajaxOpts={method:'post',parameters:{'cmd':'answerHelpful','aID':qID},onSuccess:function(resp){resp=resp.responseText.strip().evalJSON();var helpEl=$('answer').down('li.act_helpful');helpEl.insert({'before':'<li class="thanks">Thanks!</li>'});helpEl.hide();}}
new Ajax.Request(ajaxFile,ajaxOpts);}
var pub={init:function(params){Dynalicious.include(cssFile);var el=params.el||window.document.getElementsByTagName("body").item(0);var stdOut='<div class="row" id="browse">\
    <div class="col sect" id="topics">\
     <h2 class="title">Browse Topics:</h2>\
     <div class="content"></div>\
     <div class="actions"></div>\
    </div>\
    <div class="col sect" id="questions" style="display:none;">\
     <h2 class="title"></h2>\
     <div class="content"></div>\
     <div class="actions"><ul><li class="act_submit">Submit a question</li></ul></div>\
    </div>\
   </div>\
   <div id="results" style="display:none;">\
    <div class="sect" id="answer">\
     <h2 class="title">Answer:</h2>\
     <div class="content"></div>\
     <div class="actions"></div>\
    </div>\
    <div class="sect" id="related">\
     <h2 class="title">Related Items:</h2>\
     <div class="content"></div>\
     <div class="options"></div>\
    </div>\
   </div>';$(el).insert({'top':stdOut});Event.observe(el,"mouseout",outEvent.bindAsEventListener(SELF));Event.observe(el,"mouseover",overEvent.bindAsEventListener(SELF));Event.observe(el,"mouseup",upEvent.bindAsEventListener(SELF));var topicID=params.topicID||0;var questionID=params.questionID||0;listTopics(topicID,questionID);},closeWin:function(){Dynalicious.closeOverlayWin();},showFormMsg:function(id,msg){$(id).down('.formMsgBody').update(msg);Effect.BlindDown($(id).down('.formMsg'),{duration:.2});},hideFormMsg:function(id){Effect.BlindUp($(id).down('.formMsg'),{duration:.2});$(id).down('.formMsgBody').update();},shareTopic:function(){var formContainEl=$('shareTopicForm');formContainEl.down('.formMsgBody').update();var formCheck=checkForm('shareTopicForm');if(!formCheck.pass){var formErrors=formCheck.parseErrors();this.showFormMsg('shareTopicForm',formErrors);}else{var formFields=formContainEl.down('.formBody').innerHTML;formContainEl.down('.formBody').update('Sending ...');var ajaxParams=formCheck.JSON;ajaxParams.cmd='shareTopic';var currURL=window.location.href;var qMrkIndex=currURL.lastIndexOf('?');var retURL=(qMrkIndex>-1)?currURL+'&':currURL+'?';ajaxParams.topicURL=retURL+'topicID='+getSelected('topics').id;var ajaxOpts={method:'post',parameters:ajaxParams,onSuccess:function(resp){formContainEl.down('.formBody').update('<p>Topic has been shared.</p><div class="buttons"><ul><li onclick="AskAnswer.closeWin();">close</li></ul></div>');}}
new Ajax.Request(ajaxFile,ajaxOpts);}},submitQuestion:function(){var formContainEl=$('submitQuestionForm');formContainEl.down('.formMsgBody').update();var formCheck=checkForm('submitQuestionForm');if(!formCheck.pass){var formErrors=formCheck.parseErrors();this.showFormMsg('submitQuestionForm',formErrors);}else{var formFields=formContainEl.down('.formBody').innerHTML;formContainEl.down('.formBody').update('Sending ...');var ajaxParams=formCheck.JSON;ajaxParams.cmd='submitQuestion';var currURL=window.location.href;var qMrkIndex=currURL.lastIndexOf('?');var retURL=(qMrkIndex>-1)?currURL+'&':currURL+'?';ajaxParams.topicURL=retURL+'topicID='+getSelected('topics').id;var ajaxOpts={method:'post',parameters:ajaxParams,onSuccess:function(resp){formContainEl.down('.formBody').update('<p>Your question has been submitted to Flexco. Flexco representative will contact you within 2 business days.</p><div class="buttons"><ul><li onclick="AskAnswer.closeWin();">close</li></ul></div>');}}
new Ajax.Request(ajaxFile,ajaxOpts);}},submitInfo:function(type){var fName=type+'Form';var formContainEl=$(fName);formContainEl.down('.formMsgBody').update();var formCheck=checkForm(fName);if(!formCheck.pass){var formErrors=formCheck.parseErrors();this.showFormMsg(fName,formErrors);}else{var formFields=formContainEl.down('.formBody').innerHTML;formContainEl.down('.formBody').update('Sending ...');var ajaxParams=formCheck.JSON;switch(type){case'info':ajaxParams.cmd='needInfo';break;case'question':ajaxParams.cmd='submitQuestion';break;}
var currURL=window.location.href;var qMrkIndex=currURL.lastIndexOf('?');var retURL=(qMrkIndex>-1)?currURL+'&':currURL+'?';ajaxParams.topicURL=retURL+'topicID='+getSelected('topics').id;var ajaxOpts={method:'post',parameters:ajaxParams,onSuccess:function(resp){var resp=resp.responseText.strip().evalJSON();formContainEl.down('.formBody').update('<p>'+resp.msg+'</p><div class="buttons"><ul><li onclick="AskAnswer.closeWin();">close</li></ul></div>');}}
new Ajax.Request(ajaxFile,ajaxOpts);}},refreshStates:function(checkID,selectID){var countryID=($(checkID).value!='')?$(checkID).value:0;if(countryID>0){getStateOpts(countryID,selectID);}else{$(selectID).update('<option value="">Choose a country first</option>');}}}
return pub;}();

