/*
Copyright © Tribal Education Ltd. 

This file has been compressed to make the page loading faster. For working version of this file, please contact Tribal's Digital Learning Studio at digitallearningsupport@tribalgroup.com.
*/
ctad_included("clickstick.js");ctad_require("functions.js");ctad_require("persist.js");var csk;function click_stick_init(form_name,question_name,source_border){var hidden_field=document.forms[form_name][question_name];csk=new Clickstick(hidden_field);if(source_border){csk.source_border=source_border;}
csk.init();}
function click_stick(obj){if(obj.zone_type=="target"){if(!obj.creator.current_source){obj.creator.click(obj);}else{obj.creator.stick(obj);}}else{obj.creator.click(obj);}}
function Clickstick(hidden_field){this.$hidden_field=hidden_field;this.delimiter="^";this.source_border="red 1px dotted";}
Clickstick.prototype.init=function(){this.match_answers=true;this.get_containers();if(this.$hidden_field){this.$hidden_field.ctad=this;}
this.set_current_container(null);};function click_clear(qname)
{user_data=csk.data;if(typeof(theanswers[qname])=="undefined"){alert("function click_clear(frm_name,qname) error: No Answers SUPPORTED! Please arange answers for question "+qname+"!!");return-1;}
var targets=new Object();var sources=new Object();bang=0;for(var i=0;i<csk.$containers.length;i++){if(csk.$containers[i].zone_type=="target"){if(csk.$containers[i].innerHTML.search(/&nbsp;/)>-1){if(user_data){user_data=user_data.replace(user_data.split("^")[bang],"_null");}}
targets[csk.$containers[i].key]=csk.$containers[i];bang++;}else{sources[csk.$containers[i].key]=csk.$containers[i];}}
if(csk.$hidden_field){csk.$hidden_field.value=user_data;csk.$hidden_field.onchange();}
answers=theanswers[qname];c=csk.$containers;if(user_data){if(user_data.search(/_null/)==-1){for(x=0;x<answers.split("^").length;x++){c=targets[x+1];if(answers.split("^")[x]!=user_data.split("^")[x]){c.contains_source=c;if(c.innerHTML.search(/drop_zone.gif/)>-1)continue;sources[user_data.split("^")[x]].contains_source=sources[user_data.split("^")[x]];sources[user_data.split("^")[x]].contains_source.initial_html=c.innerHTML;user_data.split("^")[x]="_null";}}
csk.draw_all();}}}
Clickstick.prototype.get_containers=function(){this.$containers=new Array();var set_color=(!style_in_stylesheet(".null_anchor","color")&&!style_in_stylesheet("a.null_anchor","color"));var anchors=document.getElementsByTagName("a");for(var i=0;i<anchors.length;i++){var ar_match=anchors[i].id.match(/^(.*)_zone_(\d+)$/i);if(ar_match&&(ar_match[1]=="target"||ar_match[1]=="source")){anchors[i].key=parseInt(ar_match[2]);anchors[i].initial_html=anchors[i].innerHTML;anchors[i].creator=this;anchors[i].zone_type=ar_match[1];if(ar_match[1]=="source"){anchors[i].contains_source=anchors[i];}
this.$containers[this.$containers.length]=anchors[i];anchors[i].href="javascript:;";anchors[i].style.display="block";anchors[i].style.padding="2px";anchors[i].className="null_anchor";anchors[i].style.textDecoration="none";}}};Clickstick.prototype.click=function(obj){if(!obj.contains_source){return;}
this.set_current_container(obj);};Clickstick.prototype.stick=function(obj){if(obj.contains_source){obj.contains_source.contains_source=obj.contains_source;}
obj.contains_source=this.current_source;this.current_container.contains_source=null;this.set_current_container(null);this.draw_all();this.update_data();};Clickstick.prototype.set_current_container=function(obj){this.current_container=obj;for(var i=0;i<this.$containers.length;i++){if(this.$containers[i].id.indexOf('source_zone')<0)
{this.$containers[i].style.border="1px solid #000";}
else
{this.$containers[i].style.border="none";}}
if(obj!=null){this.current_source=obj.contains_source;obj.style.border=this.source_border;}else{this.current_source=null;}};Clickstick.prototype.draw_all=function(){for(var i=0;i<this.$containers.length;i++){if(this.$containers[i].contains_source){this.$containers[i].innerHTML=this.$containers[i].contains_source.initial_html;}else{if(this.$containers[i].zone_type=="target"){this.$containers[i].innerHTML=this.$containers[i].initial_html;}else{this.$containers[i].innerHTML="<div>&nbsp;</div>";}}}};Clickstick.prototype.update_data=function(){var ar_data=new Array();for(var i=0;i<this.$containers.length;i++){if(this.$containers[i].zone_type=="target"){if(this.$containers[i].contains_source){ar_data[ar_data.length]=this.$containers[i].contains_source.key;}else{ar_data[ar_data.length]='_null';}}}
this.data=ar_data.join(this.delimiter);if(this.$hidden_field){this.$hidden_field.value=this.data;this.$hidden_field.onchange();}};Clickstick.prototype.reset=function(){this.set_current_container(null);for(var i=0;i<this.$containers.length;i++){if(this.$containers[i].zone_type=="target"){this.$containers[i].contains_source=null;}else{this.$containers[i].contains_source=this.$containers[i];}}
this.draw_all();};Clickstick.prototype.restore_data=function(ar_data){this.reset();var targets=new Object();var sources=new Object();for(var i=0;i<this.$containers.length;i++){if(this.$containers[i].zone_type=="target"){targets[this.$containers[i].key]=this.$containers[i];}else{sources[this.$containers[i].key]=this.$containers[i];}}
for(var i=0;i<ar_data.length;i++){if(!sources[ar_data[i]]){if(ar_data[i]=="_null"){continue;}
ctad_error("invalid value specified :"+ar_data[i]+"\n Probable cause is incorrect answer in qdata.js");continue;}
click_stick(sources[ar_data[i]]);click_stick(targets[i+1]);}};

